Skip to content

Commit 796d72e

Browse files
committed
deploy: c44aa4b
0 parents  commit 796d72e

File tree

1,239 files changed

+163825
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,239 files changed

+163825
-0
lines changed

.nojekyll

Whitespace-only changes.

1.4.0/.buildinfo

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Sphinx build info version 1
2+
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3+
config: a3e09609a1691bc3320d40b15851c1fa
4+
tags: 645f666f9bcd5a90fca523b33c5a78b7

1.4.0/.doctrees/environment.pickle

478 KB
Binary file not shown.

1.4.0/.doctrees/index.doctree

9.32 KB
Binary file not shown.

1.4.0/.doctrees/src/building.doctree

18.5 KB
Binary file not shown.

1.4.0/.doctrees/src/databox.doctree

182 KB
Binary file not shown.
5.53 KB
Binary file not shown.
24.7 KB
Binary file not shown.
17.1 KB
Binary file not shown.

1.4.0/_images/convergence.png

105 KB
Loading

1.4.0/_sources/index.rst.txt

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
.. Spiner Documentation master file, created by
2+
sphinx-quickstart on Tue Nov 2 16:56:44 2021.
3+
You can adapt this file completely to your liking, but it should at least
4+
contain the root `toctree` directive.
5+
6+
Spiner: Performance portable routines for generic, tabulated, multi-dimensional data
7+
=====================================================================================
8+
9+
`Spiner`_ is a library for storing, indexing, and interpolating
10+
multidimensional data in a performance-portable way. It's intended to
11+
run on CPUs, GPUs and everything in-between. You can create a table on
12+
a CPU, copy it to a GPU, and interpolate on it in a GPU kernel, for
13+
example.
14+
15+
.. _Spiner: https://github.com/lanl/spiner
16+
17+
Spiner also defines (via hdf5) a file format that bundles data
18+
together with instructions for interpolating it. This means you don't
19+
have to specify anything to start interpolating, simple load the file
20+
and evaluate where you want.
21+
22+
Interpolation is linear. Here's an example of 3D interpolation (2D
23+
slice shown) on a GPU, with second-order convergence:
24+
25+
.. image:: ../../figs/convergence.png
26+
27+
See below for details of how to use spiner in your project and how to
28+
develop for it.
29+
30+
If you use Spiner and need help, submit an issue to the Spiner
31+
repository. If you'd like to contribute, just fork and submit a pull
32+
request. There's a check list in the PR template, and one of the main
33+
Spiner developers will review your PR.
34+
35+
Spiner also relies on `Ports of Call`_ as a simple performance
36+
portability layer. Ports of Call is included as a submodule, and
37+
automatically integrated into the build system.
38+
39+
.. _Ports of Call: https://lanl.github.io/ports-of-call/main/index.html
40+
41+
.. toctree::
42+
:maxdepth: 1
43+
:caption: Contents:
44+
45+
src/building
46+
src/getting-started
47+
src/databox
48+
src/interpolation
49+
src/sphinx-howto
50+
51+
Indices and tables
52+
==================
53+
54+
* :ref:`genindex`
55+
* :ref:`modindex`
56+
* :ref:`search`
57+
58+
This documentation is approved for unlimited release, LA-UR-22-20363.

1.4.0/_sources/src/building.rst.txt

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
.. _building:
2+
3+
Building and Installation
4+
==========================
5+
6+
``Spiner`` is self-contained and header-only. Clone it as:
7+
8+
.. code-block:: bash
9+
10+
git clone --recursive [email protected]:lanl/spiner.git
11+
12+
13+
Building from source
14+
^^^^^^^^^^^^^^^^^^^^^
15+
16+
To build tests and install:
17+
18+
.. code-block:: bash
19+
20+
mkdir -p spiner/bin
21+
cd sppiner/bin
22+
cmake -DBUILD_TESTING=ON
23+
make -j
24+
make test
25+
make install
26+
27+
Spiner supports a few ``cmake`` configuration options:
28+
29+
* ``BUILD_TESTING`` enables tests
30+
* ``SPINER_USE_HDF5`` enables support for saving and loading tables as `hdf5`_.
31+
* ``SPINER_HDF5_INSTALL_DIR`` tells the build system where `hdf5`_ is located.
32+
* ``SPINER_USE_KOKKOS`` enables `Kokkos`_ as a backend
33+
* ``SPINER_USE_KOKKOS_SRC`` tells the build system to build `Kokkos`_ from source, and where the source directory is located. Note that if you use this option, you cannot install Spiner, only build the tests.
34+
* ``SPINER_KOKKOS_INSTALL_DIR`` tells the build system where to find pre-compiled `Kokkos`_
35+
* ``SPINER_USE_CUDA`` enables the Kokkos cuda backend
36+
* ``CMAKE_INSTALL_PREFIX`` sets the install location
37+
* ``CMAKE_BUILD_TYPE`` sets the build type
38+
* ``SPINER_FORCE_INTERNAL_PORTS`` forces use of a `ports-of-call`_ submodule rather than a system install
39+
40+
.. _`hdf5`: https://www.hdfgroup.org/solutions/hdf5
41+
42+
.. _`Kokkos`: https://github.com/kokkos/kokkos
43+
44+
.. _`ports-of-call`: https://lanl.github.io/ports-of-call/main/index.html
45+
46+
HDF5 is searched for and configured via the usual `cmake`_ machinery.
47+
48+
.. _`cmake`: https://cmake.org/
49+
50+
A ``format_spiner`` target is also added if ``clang-format`` is found, so
51+
that ``make format_spiner`` will auto-format the repository.
52+
53+
Testing is enabled via `Catch2`_, which is automatically downloaded
54+
during the cmake configure phase if needed.
55+
56+
.. _`Catch2`: https://github.com/catchorg/Catch2
57+
58+
Spack
59+
^^^^^^
60+
61+
.. warning::
62+
The spack build is currently experimental.
63+
Please report problems you have as github issues.
64+
65+
Although the spackage has not yet made it to the main `Spack`_
66+
repositories, we provide a spackage for ``Spiner`` within the
67+
the source repository. If you have spack installed,
68+
simply call
69+
70+
.. _Spack: https://spack.io/
71+
72+
.. code-block:: bash
73+
74+
spack repo add spiner/spack-repo
75+
spack install spiner
76+
77+
The spack repo supports a few variants:
78+
79+
* ``+kokkos`` enables the Kokkos backend
80+
* ``+cuda`` enables the cuda backend. A ``cuda_arch`` must be specified.
81+
* ``+hdf5`` enables HDF5 file support.
82+
* ``+mpi`` enables parallel hdf5 support
83+
* ``+python`` installs python, numpy, and matplotlib support
84+
* ``+doc`` adds tooling for building the docs
85+
* ``+format`` adds support for clang-format
86+
87+
Including Spiner in your Project
88+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
89+
90+
Spiner can be included into a cmake project, either in-tree as a
91+
submodule or after installation via ``find_package``.
92+
The cmake system provides the ``spiner::spiner`` cmake target.

0 commit comments

Comments
 (0)