StarNEig Library
v0.1.2
A task-based library for solving dense nonsymmetric eigenvalue problems
|
Interface to configure the intra-node execution environment. More...
Functions | |
void | starneig_node_init (int cores, int gpus, starneig_flag_t flags) |
Initializes the intra-node execution environment. More... | |
int | starneig_node_initialized () |
Checks whether the intra-node execution environment is initialized. More... | |
int | starneig_node_get_cores () |
Returns the number of cores (threads) per MPI rank. More... | |
void | starneig_node_set_cores (int cores) |
Changes the number of CPUs cores (threads) to use per MPI rank. More... | |
int | starneig_node_get_gpus () |
Returns the number of GPUs per MPI rank. More... | |
void | starneig_node_set_gpus (int gpus) |
Changes the number of GPUs to use per MPI rank. More... | |
void | starneig_node_finalize () |
Deallocates resources associated with the intra-node configuration. | |
Library initialization flags | |
typedef unsigned | starneig_flag_t |
Library initialization flag data type. | |
#define | STARNEIG_DEFAULT 0x0 |
Default mode. More... | |
#define | STARNEIG_HINT_SM 0x0 |
Shared memory mode. More... | |
#define | STARNEIG_HINT_DM 0x1 |
Distributed memory mode. More... | |
#define | STARNEIG_FXT_DISABLE 0x2 |
No FxT traces mode. More... | |
#define | STARNEIG_AWAKE_WORKERS 0x4 |
Awake worker mode. More... | |
#define | STARNEIG_AWAKE_MPI_WORKER 0x8 |
Awake MPI worker mode. More... | |
#define | STARNEIG_FAST_DM (STARNEIG_HINT_DM | STARNEIG_AWAKE_WORKERS | STARNEIG_AWAKE_MPI_WORKER) |
Fast distributed memory mode. More... | |
#define | STARNEIG_NO_VERBOSE 0x10 |
No verbose mode. More... | |
#define | STARNEIG_NO_MESSAGES (STARNEIG_NO_VERBOSE | 0x20) |
No messages mode. More... | |
Pinned host memory | |
void | starneig_node_enable_pinning () |
Enable CUDA host memory pinning. More... | |
void | starneig_node_disable_pinning () |
Disables CUDA host memory pinning. More... | |
Interface to configure the intra-node execution environment.
#define STARNEIG_DEFAULT 0x0 |
Default mode.
As a default, the library configures itself to shared memory mode.
#define STARNEIG_HINT_SM 0x0 |
Shared memory mode.
Initializes the library for shared memory computation. The library will automatically reconfigure itself for distributed memory computation if necessary
#define STARNEIG_HINT_DM 0x1 |
Distributed memory mode.
Initializes the library for distributed memory computation. The library will automatically reconfigure itself for shared memory computation if necessary
#define STARNEIG_FXT_DISABLE 0x2 |
No FxT traces mode.
Disables FXT traces.
#define STARNEIG_AWAKE_WORKERS 0x4 |
Awake worker mode.
Keeps the StarPU worker threads awake between interface function calls. Improves the performance in certain situations but can interfere with other software.
#define STARNEIG_AWAKE_MPI_WORKER 0x8 |
Awake MPI worker mode.
Keeps the StarPU-MPI communication thread awake between interface function calls. Improves the performance in certain situations but can interfere with other software.
#define STARNEIG_FAST_DM (STARNEIG_HINT_DM | STARNEIG_AWAKE_WORKERS | STARNEIG_AWAKE_MPI_WORKER) |
Fast distributed memory mode.
Keeps the worker threads and StarPU-MPI communication thread awake between interface function calls. Improves the performance in certain situations but can interfere with other software.
#define STARNEIG_NO_VERBOSE 0x10 |
No verbose mode.
Disables all additional verbose messages.
#define STARNEIG_NO_MESSAGES (STARNEIG_NO_VERBOSE | 0x20) |
No messages mode.
Disables all messages (including verbose messages).
void starneig_node_init | ( | int | cores, |
int | gpus, | ||
starneig_flag_t | flags | ||
) |
Initializes the intra-node execution environment.
The interface function initializes StarPU (and cuBLAS) and pauses all worker The cores
argument specifies the total number of used CPU cores. In distributed memory mode, one CPU core is automatically allocated for the StarPU-MPI communication thread. One or more CPU cores are automatically allocated for GPU devices.
[in] | cores | The number of cores (threads) to use per MPI rank. Can be set to -1 in which case the library determines the value. |
[in] | gpus | The number of GPUs to use per MPI rank. Can be set to -1 in which case the library determines the value. |
[in] | flags | Initialization flags. |
int starneig_node_initialized | ( | ) |
Checks whether the intra-node execution environment is initialized.
int starneig_node_get_cores | ( | ) |
Returns the number of cores (threads) per MPI rank.
void starneig_node_set_cores | ( | int | cores | ) |
Changes the number of CPUs cores (threads) to use per MPI rank.
cores | The number of CPUs to use per MPI rank. |
int starneig_node_get_gpus | ( | ) |
Returns the number of GPUs per MPI rank.
void starneig_node_set_gpus | ( | int | gpus | ) |
Changes the number of GPUs to use per MPI rank.
gpus | The number of GPUs to use per MPI rank. |
void starneig_node_enable_pinning | ( | ) |
Enable CUDA host memory pinning.
Should be called before any memory allocations are made.
void starneig_node_disable_pinning | ( | ) |
Disables CUDA host memory pinning.
Should be called before any memory allocations are made.