|
void MCBSP_FUNCTION_PREFIX() | begin (const bsp_pid_t P) |
|
void MCBSP_FUNCTION_PREFIX() | end (void) |
|
void MCBSP_FUNCTION_PREFIX() | init (void(*spmd)(void), int argc, char **argv) |
|
void MCBSP_FUNCTION_PREFIX() | abort (const char *const error_message,...) |
|
void MCBSP_FUNCTION_PREFIX() | vabort (const char *const error_message, va_list args) |
|
bsp_pid_t MCBSP_FUNCTION_PREFIX() | nprocs (void) |
|
bsp_pid_t MCBSP_FUNCTION_PREFIX() | pid (void) |
|
double MCBSP_FUNCTION_PREFIX() | time (void) |
|
void MCBSP_FUNCTION_PREFIX() | sync (void) |
|
void MCBSP_FUNCTION_PREFIX() | push_reg (void *const address, const bsp_size_t size) |
|
void MCBSP_FUNCTION_PREFIX() | pop_reg (void *const address) |
|
void MCBSP_FUNCTION_PREFIX() | put (const bsp_pid_t pid, const void *const source, const void *const destination, const bsp_size_t offset, const bsp_size_t size) |
|
void MCBSP_FUNCTION_PREFIX() | get (const bsp_pid_t pid, const void *const source, const bsp_size_t offset, void *const destination, const bsp_size_t size) |
|
void MCBSP_FUNCTION_PREFIX() | direct_get (const bsp_pid_t pid, const void *const source, const bsp_size_t offset, void *const destination, const bsp_size_t size) |
|
void MCBSP_FUNCTION_PREFIX() | set_tagsize (bsp_size_t *const size) |
|
void MCBSP_FUNCTION_PREFIX() | send (const bsp_pid_t pid, const void *const tag, const void *const payload, const bsp_size_t size) |
|
void MCBSP_FUNCTION_PREFIX() | qsize (bsp_nprocs_t *const packets, bsp_size_t *const accumulated_size) |
|
void MCBSP_FUNCTION_PREFIX() | get_tag (bsp_size_t *const status, void *const tag) |
|
void MCBSP_FUNCTION_PREFIX() | move (void *const payload, const bsp_size_t max_copy_size) |
|
bsp_size_t MCBSP_FUNCTION_PREFIX() | hpmove (void **const p_tag, void **const p_payload) |
|
void MCBSP_FUNCTION_PREFIX() | hpput (const bsp_pid_t pid, const void *const source, const void *const destination, const bsp_size_t offset, const bsp_size_t size) |
|
void MCBSP_FUNCTION_PREFIX() | hpget (const bsp_pid_t pid, const void *const source, const bsp_size_t offset, void *const destination, const bsp_size_t size) |
|
void MCBSP_FUNCTION_PREFIX() | hpsend (const bsp_pid_t pid, const void *const tag, const void *const payload, const bsp_size_t size) |
|
static void | bsp_begin (const bsp_pid_t P) |
| The first statement in an SPMD program. More...
|
|
static void | bsp_end (void) |
| Terminates an SPMD program. More...
|
|
static void | bsp_init (void(*spmd)(void), int argc, char **argv) |
| Prepares for parallel SPMD execution of a given program. More...
|
|
static void | bsp_abort (const char *const error_message,...) |
| Aborts an SPMD program. More...
|
|
static void | bsp_vabort (const char *const error_message, va_list args) |
| Alternative bsp_abort call. More...
|
|
static bsp_pid_t | bsp_nprocs (void) |
| Returns the number of available processors or processes, depending on whether we are inside or outside an BSP SPMD section. More...
|
|
static bsp_pid_t | bsp_pid (void) |
| Returns a unique BSP process identifier. More...
|
|
static double | bsp_time (void) |
| Indicates the elapsed time in this SPMD run. More...
|
|
static void | bsp_sync (void) |
| Signals the end of a superstep and starts global synchronisation. More...
|
|
static void | bsp_push_reg (void *const address, const bsp_size_t size) |
| Registers a memory area for communication. More...
|
|
static void | bsp_pop_reg (void *const address) |
| De-registers a pushed registration. More...
|
|
static void | bsp_put (const bsp_pid_t pid, const void *const source, const void *const destination, const bsp_size_t offset, const bsp_size_t size) |
| Put data in a remote memory location. More...
|
|
static void | bsp_get (const bsp_pid_t pid, const void *const source, const bsp_size_t offset, void *const destination, const bsp_size_t size) |
| Get data from a remote memory location. More...
|
|
static void | bsp_direct_get (const bsp_pid_t pid, const void *const source, const bsp_size_t offset, void *const destination, const bsp_size_t size) |
| Get data from a remote memory location. More...
|
|
static void | bsp_set_tagsize (bsp_size_t *const size) |
| Sets the tag size of inter-thread messages. More...
|
|
static void | bsp_send (const bsp_pid_t pid, const void *const tag, const void *const payload, const bsp_size_t size) |
| Sends a message to a remote thread. More...
|
|
static void | bsp_hpsend (const bsp_pid_t pid, const void *const tag, const void *const payload, const bsp_size_t size) |
| This is a non-buffering and non-blocking send request. More...
|
|
static void | bsp_qsize (bsp_nprocs_t *const packets, bsp_size_t *const accumulated_size) |
| Queries the size of the incoming BSMP queue. More...
|
|
static void | bsp_get_tag (bsp_size_t *const status, void *const tag) |
| Retrieves the tag of the first message in the queue of incoming messages. More...
|
|
static void | bsp_move (void *const payload, const bsp_size_t max_copy_size) |
| Retrieves the payload from the first message in the queue of incoming messages, and removes that message. More...
|
|
static bsp_size_t | bsp_hpmove (void **const p_tag, void **const p_payload) |
| Unbuffered retrieval of the payload of the first message in the incoming message queue. More...
|
|
static void | bsp_hpput (const bsp_pid_t pid, const void *const source, const void *const destination, const bsp_size_t offset, const bsp_size_t size) |
| Put data in a remote memory location. More...
|
|
static void | bsp_hpget (const bsp_pid_t pid, const void *const source, const bsp_size_t offset, void *const destination, const bsp_size_t size) |
| Get data from a remote memory location. More...
|
|
Defines the MulticoreBSP primitives and includes the necessary standard headers. The linkage is defined by the various macros that can be set before including this header:
-
MCBSP_ENABLE_HP_DIRECTIVES (enables hpsend, hpget, and hpput)
-
MCBSP_ENABLE_FAKE_HP_DIRECTIVES (aliases hpsend to send, hpget to get, and hpput to put)
-
MCBSP_COMPATIBILITY_MODE (reverts to the original BSPlib specification by Hill et al.)
-
MCBSP_ALLOW_MULTIPLE_REGS (allows multiple push_regs of the same registration key)
Enabled by default are MCBSP_ENABLE_HP_DIRECTIVES and MCBSP_ALLOW_MULTIPLE_REGS. Note that:
- MCBSP_ENABLE_HP_DIRECTIVES and MCBSP_ENABLE_FAKE_HP_DIRECTIVES are mutually exclusive.
- MCBSP_COMPATIBILITY_MODE implies MCBSP_ALLOW_MULTIPLE_REGS.