Skip to content
Jonah Miller edited this page May 26, 2021 · 2 revisions

What are Spiner and Ports-of-Call? What are they good for?

Spiner is a performance portable library for accessing and interpolating on tabulated data. Spiner is based on a few important design decisions:

  • Interpolation methods are intrinsically tied to the data layout and structure on which the interpolation is performed. Therefore, a data file should contain information about how to interpolate. Spiner couples interpolation methods to data on disk and in memory.
  • One size does not fit all---Interpolation methods should be extensible.
  • It's not enough to run on CPUs. Interpolation will be required on GPUs and unknown emerging architectures.
  • Performance matters.
  • The burden on a host code that includes Spiner should be minimal. As few a dependencies as possible, with as little additional complexity in the build system as possible.

Spiner is the interpolation tool. Ports-of-Call is a sub-tool within spiner that helps enable the portability aspect.

Clone this wiki locally