27#ifndef _H_GRB_EXEC_BASE
28#define _H_GRB_EXEC_BASE
96 template< enum EXEC_MODE mode, enum Backend backend >
141 const size_t process_id = 0,
142 const size_t nprocs = 1,
143 const std::string hostname =
"localhost",
144 const std::string port =
"0"
148 (void) hostname; (void) port;
150#ifndef _GRB_NO_EXCEPTIONS
153 throw std::invalid_argument(
"Total number of user processes must be "
154 "strictly larger than zero." );
156 if( process_id >= nprocs ) {
157 throw std::invalid_argument(
"Process ID must be strictly smaller than "
158 "total number of user processes." );
209 template<
typename T,
typename U >
211 void ( *alp_program )(
const T &, U & ),
214 const bool broadcast =
false
251 template<
typename U >
253 void ( *alp_program )(
const void *,
const size_t, U & ),
254 const void * data_in,
255 const size_t in_size,
257 const bool broadcast =
false
This file contains a register of all backends that are either implemented, under implementation,...
A group of user processes that together execute ALP programs.
Definition: exec.hpp:97
Launcher(const size_t process_id=0, const size_t nprocs=1, const std::string hostname="localhost", const std::string port="0")
Constructs a new grb::Launcher.
Definition: exec.hpp:140
RC exec(void(*alp_program)(const void *, const size_t, U &), const void *data_in, const size_t in_size, U &data_out, const bool broadcast=false) const
Executes a given ALP program using the user processes encapsulated by this launcher group.
Definition: exec.hpp:252
static RC finalize()
Releases all ALP resources.
Definition: exec.hpp:322
RC exec(void(*alp_program)(const T &, U &), const T &data_in, U &data_out, const bool broadcast=false) const
Executes a given ALP program using the user processes encapsulated by this launcher group.
Definition: exec.hpp:210
The ALP/GraphBLAS namespace.
Definition: graphblas.hpp:452
EXEC_MODE
The various ways in which the grb::Launcher can be used to execute an ALP program.
Definition: exec.hpp:56
@ AUTOMATIC
Automatic mode.
Definition: exec.hpp:62
@ MANUAL
Manual mode.
Definition: exec.hpp:69
@ FROM_MPI
When running from an MPI program.
Definition: exec.hpp:76
RC
Return codes of ALP primitives.
Definition: rc.hpp:47
@ PANIC
Generic fatal error code.
Definition: rc.hpp:68
Defines the ALP error codes.