ALP User Documentation 0.7.0
Algebraic Programming User Documentation
Static Public Member Functions | List of all members
IMPLEMENTATION< backend > Class Template Reference

Collects a series of implementation choices corresponding to some given backend. More...

#include <config.hpp>

Static Public Member Functions

static constexpr ALLOC_MODE defaultAllocMode ()
 Defines how private memory regions are allocated. More...
 
static constexpr ALLOC_MODE sharedAllocMode ()
 Defines how shared memory regions are allocated. More...
 

Detailed Description

template<grb::Backend backend = default_backend>
class grb::config::IMPLEMENTATION< backend >

Collects a series of implementation choices corresponding to some given backend.

These implementation choices are useful for compositional backends; i.e., backends that rely on a nested sub-backend for functionality. To facilitate composability, backends are required to provide the functions specified herein.

Note
An example are the grb::BSP1D and grb::hybrid backends, that both share the exact same code, relying on either the grb::reference or the grb::reference_omp backend, respectively.
The user documentation does not list all required fields; for a complete overview, see the developer documentation instead.

The default class declaration is declared empty to ensure no one backend implicitly relies on global defaults. Every backend therefore must specialise this class and implement the specified functions.

Warning
Portable ALP user code does not rely on the implementation details gathered in this class.
Note
For properties of a backend that may (also) affect ALP user code, see grb::Properties.

The user documentation only documents the settings that could be useful to modify.

Warning
Modifying the documented functions should be done with care.
Any such modifications typically requires rebuilding the ALP library itself.
Note
For viewing all implementation choices, please see the developer documentation.

The documentation for this class was generated from the following file: