Skip to content

Commit

Permalink
deploy: 7f0ced3
Browse files Browse the repository at this point in the history
  • Loading branch information
BrendanKKrueger committed Oct 2, 2024
0 parents commit bb9802a
Show file tree
Hide file tree
Showing 1,304 changed files with 174,053 additions and 0 deletions.
Empty file added .nojekyll
Empty file.
4 changes: 4 additions & 0 deletions 1.4.0/.buildinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 0cdad11553a85992ae4254e8f1880795
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file added 1.4.0/.doctrees/environment.pickle
Binary file not shown.
Binary file added 1.4.0/.doctrees/index.doctree
Binary file not shown.
Binary file added 1.4.0/.doctrees/src/building.doctree
Binary file not shown.
Binary file added 1.4.0/.doctrees/src/databox.doctree
Binary file not shown.
Binary file added 1.4.0/.doctrees/src/getting-started.doctree
Binary file not shown.
Binary file added 1.4.0/.doctrees/src/interpolation.doctree
Binary file not shown.
Binary file added 1.4.0/.doctrees/src/sphinx-howto.doctree
Binary file not shown.
Binary file added 1.4.0/_images/convergence.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
58 changes: 58 additions & 0 deletions 1.4.0/_sources/index.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
.. Spiner Documentation master file, created by
sphinx-quickstart on Tue Nov 2 16:56:44 2021.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Spiner: Performance portable routines for generic, tabulated, multi-dimensional data
=====================================================================================

`Spiner`_ is a library for storing, indexing, and interpolating
multidimensional data in a performance-portable way. It's intended to
run on CPUs, GPUs and everything in-between. You can create a table on
a CPU, copy it to a GPU, and interpolate on it in a GPU kernel, for
example.

.. _Spiner: https://github.com/lanl/spiner

Spiner also defines (via hdf5) a file format that bundles data
together with instructions for interpolating it. This means you don't
have to specify anything to start interpolating, simple load the file
and evaluate where you want.

Interpolation is linear. Here's an example of 3D interpolation (2D
slice shown) on a GPU, with second-order convergence:

.. image:: ../../figs/convergence.png

See below for details of how to use spiner in your project and how to
develop for it.

If you use Spiner and need help, submit an issue to the Spiner
repository. If you'd like to contribute, just fork and submit a pull
request. There's a check list in the PR template, and one of the main
Spiner developers will review your PR.

Spiner also relies on `Ports of Call`_ as a simple performance
portability layer. Ports of Call is included as a submodule, and
automatically integrated into the build system.

.. _Ports of Call: https://lanl.github.io/ports-of-call/main/index.html

.. toctree::
:maxdepth: 1
:caption: Contents:

src/building
src/getting-started
src/databox
src/interpolation
src/sphinx-howto

Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

This documentation is approved for unlimited release, LA-UR-22-20363.
92 changes: 92 additions & 0 deletions 1.4.0/_sources/src/building.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
.. _building:

Building and Installation
==========================

``Spiner`` is self-contained and header-only. Clone it as:

.. code-block:: bash
git clone --recursive [email protected]:lanl/spiner.git
Building from source
^^^^^^^^^^^^^^^^^^^^^

To build tests and install:

.. code-block:: bash
mkdir -p spiner/bin
cd sppiner/bin
cmake -DBUILD_TESTING=ON
make -j
make test
make install
Spiner supports a few ``cmake`` configuration options:

* ``BUILD_TESTING`` enables tests
* ``SPINER_USE_HDF5`` enables support for saving and loading tables as `hdf5`_.
* ``SPINER_HDF5_INSTALL_DIR`` tells the build system where `hdf5`_ is located.
* ``SPINER_USE_KOKKOS`` enables `Kokkos`_ as a backend
* ``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.
* ``SPINER_KOKKOS_INSTALL_DIR`` tells the build system where to find pre-compiled `Kokkos`_
* ``SPINER_USE_CUDA`` enables the Kokkos cuda backend
* ``CMAKE_INSTALL_PREFIX`` sets the install location
* ``CMAKE_BUILD_TYPE`` sets the build type
* ``SPINER_FORCE_INTERNAL_PORTS`` forces use of a `ports-of-call`_ submodule rather than a system install

.. _`hdf5`: https://www.hdfgroup.org/solutions/hdf5

.. _`Kokkos`: https://github.com/kokkos/kokkos

.. _`ports-of-call`: https://lanl.github.io/ports-of-call/main/index.html

HDF5 is searched for and configured via the usual `cmake`_ machinery.

.. _`cmake`: https://cmake.org/

A ``format_spiner`` target is also added if ``clang-format`` is found, so
that ``make format_spiner`` will auto-format the repository.

Testing is enabled via `Catch2`_, which is automatically downloaded
during the cmake configure phase if needed.

.. _`Catch2`: https://github.com/catchorg/Catch2

Spack
^^^^^^

.. warning::
The spack build is currently experimental.
Please report problems you have as github issues.

Although the spackage has not yet made it to the main `Spack`_
repositories, we provide a spackage for ``Spiner`` within the
the source repository. If you have spack installed,
simply call

.. _Spack: https://spack.io/

.. code-block:: bash
spack repo add spiner/spack-repo
spack install spiner
The spack repo supports a few variants:

* ``+kokkos`` enables the Kokkos backend
* ``+cuda`` enables the cuda backend. A ``cuda_arch`` must be specified.
* ``+hdf5`` enables HDF5 file support.
* ``+mpi`` enables parallel hdf5 support
* ``+python`` installs python, numpy, and matplotlib support
* ``+doc`` adds tooling for building the docs
* ``+format`` adds support for clang-format

Including Spiner in your Project
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Spiner can be included into a cmake project, either in-tree as a
submodule or after installation via ``find_package``.
The cmake system provides the ``spiner::spiner`` cmake target.
Loading

0 comments on commit bb9802a

Please sign in to comment.