openfam::fam::fam_get_option
Get the value for a pre-defined option in the FAM library.
Synopsis
const void *fam_get_option(char *optionName);
Description
This method can be used to retrieve values of state variables
maintained within OpenFAM or set using the options argument to
fam_initialize()
. The supported names (and returned types) are
implementation specific.
Input Arguments
Name | Description |
---|---|
optionName | Name of the option to be retrieved. |
Name | Description | Return type | Default Value |
---|---|---|---|
"VERSION" | Version of the current implementation of the OpenFAM API. | char* | "3.0" |
"DEFAULT_REGION_NAME" | The default Region name used with in the program. | char* | "default" |
"CIS_SERVER" | Client Interface Server set by the application. | char* | "127.0.0.1" |
"GRPC_PORT" | Grpc port used by Client Interface Server. | char* | "8787" |
"LIBFABRIC_PROVIDER" | Libfabric provider type set by the application. | char* | "sockets" |
"FAM_THREAD_MODEL" | Thread model used by the application. | char* | "FAM_THREAD_SERIALIZE" |
"CIS_INTERFACE_TYPE" | Interface Type for CIS Server. | char* | "FAM_THREAD_SERIALIZE" |
"OPENFAM_MODEL" | OpenFAM allocator model used by the application. | char* | "memory_server" |
"FAM_CONTEXT_MODEL" | Fam context model used by the application. | char* | "FAM_CONTEXT_DEFAULT" |
"PE_COUNT" | Number of PEs running the application program. | int* | 1 |
"PE_ID" | PE id of the current program. | int* | 0 |
"RUNTIME" | Runtime environment used by the application. | char* | "PMIX" |
"NUM_CONSUMER" | Number of consumer threads running in shared memory allocator. | char* | "1" |
"FAM_DEFAULT_MEMORY_TYPE" | Memory type used for region creation and allocation. (Volatile/Persistent) | char* | "VOLATILE" |
"IF_DEVICE" | Device Name to be used for data path operations with remote memory servers. | char* | "cxi0" for cxi devices and "ib0" for Infiniband devices. |
Note: The following options are not supported in current
implementation and should not be used, even though they have default values.
"DEFAULT_REGION_NAME"
and "FAM_CONTEXT_MODEL"
Return Values
A pointer to the value of the option. Throws Fam_Exception
on
error.
Fam Error Numbers
Error | Description |
---|---|
FAM_ERR_INVALID | If optionName not found. |
Notes
None.
Example
#include <stdlib.h> #include <stdio.h> #include <string.h> #include <fam/fam.h> #include <fam/fam_exception.h> using namespace std; using namespace openfam; int main(void) { fam *myFam = new fam(); // ... initialization code here try { // assume that library version is one of the supported options const char * libraryVersion = (const char *)myFam->fam_get_option(strdup("VERSION")); printf("%s\n", libraryVersion); } catch (Fam_Exception& e) { printf("FAM API failed: %s\n", e.fam_error_msg()); myFam->fam_abort(-1); // abort the program return -1; } // ... finalization code here }