/fern

Building blocks for scalable high-performance geocomputing

Primary LanguageC++OtherNOASSERTION

Fern

Linux build status macOS build status Windows build status

Software components for scalable geocomputing

Fern is a set of software components targeted at scalable geocomputing. One major component is the Fern.Algorithm library, containing configurable generic algorithms that scale to all processors in a shared memory architecture. As an example of what this might mean to you is that using Fern.Algorithm, you can calculate the slope of a digital elevation model, where:

  • The digital elevation model is stored in your favorite data structure.
  • The resulting slope values are stored in your favorite data structure.
  • You pick the value types of the cells (size of the floating point type in case of the slope algorithm).
  • All CPU cores in your machine are used during the calculations.
  • You get to decide how the algorithm should handle:
    • No-data in the input.
    • Out of domain values in the input.
    • Out of range values in the output.
    • No-data in the output.
  • You don't pay (performance-wise) for features that you don't use.
  • The result is calculated at least as fast as a specifically crafted handwritten algorithm would.

Documentation can be found in the source tree and in our blog.

We have not created an official release yet. Nevertheless, Fern is currently being used in the following projects:

If you are also a Fern user, then please let us know (info@geoneric.eu), and we will add you to the list. Also, in case you have questions, don't hesitate to contact us.