OpenMPI
0.1.1
|
Interface into the MPI portion of the Open MPI Run Time Environment. More...
Go to the source code of this file.
Macros | |
#define | OMPI_THREADLEVEL_SINGLE_BF 0x00000001 |
Bitflags to be used for the modex exchange for the various thread levels. More... | |
#define | OMPI_THREADLEVEL_FUNNELED_BF 0x00000002 |
#define | OMPI_THREADLEVEL_SERIALIZED_BF 0x00000004 |
#define | OMPI_THREADLEVEL_MULTIPLE_BF 0x00000008 |
#define | OMPI_THREADLEVEL_SET_BITFLAG(threadlevelin, threadlevelout) |
#define | OMPI_THREADLEVEL_IS_MULTIPLE(threadlevel) (threadlevel & OMPI_THREADLEVEL_MULTIPLE_BF) |
Functions | |
OMPI_DECLSPEC void | ompi_warn_fork (void) |
int | ompi_mpi_init (int argc, char **argv, int requested, int *provided) |
Initialize the Open MPI MPI environment. More... | |
int | ompi_mpi_finalize (void) |
Finalize the Open MPI MPI environment. More... | |
OMPI_DECLSPEC int | ompi_mpi_abort (struct ompi_communicator_t *comm, int errcode, bool kill_remote_of_intercomm) |
Abort the processes of comm. | |
int | ompi_init_preconnect_mpi (void) |
Do a preconnect of MPI connections (i.e., force connections to be made if they will be made). | |
Variables | |
OMPI_DECLSPEC bool | ompi_mpi_init_started |
Did mpi start to initialize? | |
OMPI_DECLSPEC bool | ompi_mpi_initialized |
Is mpi initialized? | |
OMPI_DECLSPEC bool | ompi_mpi_finalized |
Has mpi been finalized? | |
OMPI_DECLSPEC bool | ompi_mpi_thread_multiple |
Do we have multiple threads? | |
OMPI_DECLSPEC int | ompi_mpi_thread_requested |
Thread level requested to MPI_Init_thread() | |
OMPI_DECLSPEC int | ompi_mpi_thread_provided |
Thread level provided by Open MPI. | |
OMPI_DECLSPEC struct opal_thread_t * | ompi_mpi_main_thread |
Identifier of the main thread. | |
OMPI_DECLSPEC bool | ompi_warn_on_fork |
Do we want to be warned on fork or not? | |
OMPI_DECLSPEC opal_list_t | ompi_registered_datareps |
In ompi_mpi_init: a list of all memory associated with calling MPI_REGISTER_DATAREP so that we can free it during MPI_FINALIZE. More... | |
opal_hash_table_t | ompi_mpi_f90_integer_hashtable |
In ompi_mpi_init: the lists of Fortran 90 mathing datatypes. More... | |
opal_hash_table_t | ompi_mpi_f90_real_hashtable |
opal_hash_table_t | ompi_mpi_f90_complex_hashtable |
OMPI_DECLSPEC const char | ompi_version_string [] |
version string of ompi | |
Interface into the MPI portion of the Open MPI Run Time Environment.
#define OMPI_THREADLEVEL_SET_BITFLAG | ( | threadlevelin, | |
threadlevelout | |||
) |
#define OMPI_THREADLEVEL_SINGLE_BF 0x00000001 |
Bitflags to be used for the modex exchange for the various thread levels.
Required to support heterogeneous environments
int ompi_mpi_finalize | ( | void | ) |
Finalize the Open MPI MPI environment.
Should be called after all MPI functionality is complete (usually during MPI_FINALIZE).
References ompi_communicator_t::c_keyhash, COMM_ATTR, mca_base_param_reg_int_name(), mca_coll_base_close(), mca_io_base_close(), mca_io_base_components_available_valid, mca_io_base_components_opened_valid, orte_proc_info_t::nodename, OBJ_DESTRUCT, OBJ_RELEASE, ompi_attr_delete_all(), ompi_attr_finalize(), ompi_errcode_intern_finalize(), ompi_errhandler_finalize(), ompi_group_finalize(), ompi_mpi_errcode_finalize(), ompi_mpi_f90_integer_hashtable, ompi_mpi_finalized, ompi_op_finalize(), ompi_proc_finalize(), ompi_registered_datareps, ompi_request_finalize(), opal_finalize_util(), opal_list_remove_first(), opal_output(), opal_progress_event_users_increment(), opal_progress_set_event_flag(), orte_finalize(), ORTE_PROC_MY_NAME, orte_process_info, orte_show_help(), and orte_proc_info_t::pid.
int ompi_mpi_init | ( | int | argc, |
char ** | argv, | ||
int | requested, | ||
int * | provided | ||
) |
Initialize the Open MPI MPI environment.
argc | argc, typically from main() (IN) |
argv | argv, typically from main() (IN) |
requested | Thread support that is requested (IN) |
provided | Thread support that is provided (OUT) |
Intialize all support code needed for MPI applications. This function should only be called by MPI applications (including singletons). If this function is called, ompi_init() and ompi_rte_init() should not be called.
It is permissable to pass in (0, NULL) for (argc, argv).
These values are monotonic; MPI_THREAD_SINGLE < MPI_THREAD_FUNNELED < MPI_THREAD_SERIALIZED < MPI_THREAD_MULTIPLE. If possible, the call will return provided = required. Failing this, the call will return the least supported level such that provided > required. Finally, if the user requirement cannot be satisfied, then the call will return in provided the highest supported level.
References hwloc_obj::attr, hwloc_obj_attr_u::hwloc_cache_attr_s::depth, hwloc_bitmap_alloc(), hwloc_bitmap_compare(), hwloc_bitmap_free(), hwloc_bitmap_list_snprintf(), hwloc_bitmap_zero(), HWLOC_CPUBIND_PROCESS, hwloc_get_cpubind(), hwloc_get_root_obj(), HWLOC_OBJ_CACHE, HWLOC_OBJ_CORE, HWLOC_OBJ_NODE, HWLOC_OBJ_PU, HWLOC_OBJ_SOCKET, hwloc_set_cpubind(), hwloc_topology_get_support(), mca_allocator_base_open(), mca_base_param_find(), mca_base_param_lookup_int(), mca_base_param_reg_int_name(), mca_base_param_reg_string_name(), mca_base_param_set_string(), mca_coll_base_comm_select(), mca_coll_base_find_available(), mca_coll_base_open(), mca_mpool_base_init(), mca_mpool_base_open(), mca_rcache_base_open(), orte_proc_info_t::nodename, OBJ_CONSTRUCT, ompi_attr_init(), ompi_errcode_intern_init(), ompi_errhandler_init(), ompi_errhandler_runtime_callback(), ompi_group_init(), ompi_init_preconnect_mpi(), ompi_modex_send_string(), ompi_mpi_errcode_init(), ompi_mpi_init_started, ompi_mpi_initialized, ompi_mpi_thread_multiple, ompi_mpi_thread_provided, ompi_mpi_thread_requested, ompi_op_base_find_available(), ompi_op_base_open(), ompi_op_init(), ompi_osc_base_open(), ompi_proc_complete_init(), ompi_proc_init(), ompi_proc_world(), ompi_request_init(), ompi_wait_for_debugger(), opal_hash_table_init(), opal_init_util(), opal_output(), opal_progress_event_users_decrement(), opal_progress_set_event_flag(), opal_progress_set_event_poll_rate(), opal_progress_set_yield_when_idle(), opal_set_using_threads(), orte_init(), ORTE_PROC_MY_NAME, orte_process_info, orte_show_help(), hwloc_obj::parent, orte_proc_info_t::pid, hwloc_topology_cpubind_support::set_thisproc_cpubind, and hwloc_obj::type.
opal_hash_table_t ompi_mpi_f90_integer_hashtable |
In ompi_mpi_init: the lists of Fortran 90 mathing datatypes.
We need these lists and hashtables in order to satisfy the new requirements introduced in MPI 2-1 Sect. 10.2.5, MPI_TYPE_CREATE_F90_xxxx, page 295, line 47.
Referenced by ompi_mpi_finalize().
OMPI_DECLSPEC opal_list_t ompi_registered_datareps |
In ompi_mpi_init: a list of all memory associated with calling MPI_REGISTER_DATAREP so that we can free it during MPI_FINALIZE.
Referenced by ompi_mpi_finalize().