OpenMPI  0.1.1
ess.h File Reference

The OpenRTE Environment-Specific Services. More...

#include "orte_config.h"
#include "orte/types.h"
#include "opal/mca/mca.h"
#include "opal/mca/paffinity/paffinity.h"
#include "orte/util/proc_info.h"

Go to the source code of this file.

Data Structures

struct  orte_ess_base_module_1_0_0_t
 
struct  orte_ess_base_component_2_0_0_t
 

Macros

#define ORTE_ESS_BASE_VERSION_2_0_0
 

Typedefs

typedef int(* orte_ess_base_module_finalize_fn_t )(void)
 
typedef void(* orte_ess_base_module_abort_fn_t )(int status, bool report) __opal_attribute_noreturn_funcptr__
 Abort the current application. More...
 
typedef opal_paffinity_locality_t(* orte_ess_base_module_get_proc_locality_fn_t )(orte_process_name_t *proc)
 Get the locality flag of the specified process. More...
 
typedef orte_vpid_t(* orte_ess_base_module_proc_get_daemon_fn_t )(orte_process_name_t *proc)
 Get the vpid of the daemon who hosts the specified proc. More...
 
typedef char *(* orte_ess_base_module_proc_get_hostname_fn_t )(orte_process_name_t *proc)
 Get the hostname where a proc resides. More...
 
typedef orte_local_rank_t(* orte_ess_base_module_proc_get_local_rank_fn_t )(orte_process_name_t *proc)
 Get the local rank of a remote process.
 
typedef orte_node_rank_t(* orte_ess_base_module_proc_get_node_rank_fn_t )(orte_process_name_t *proc)
 Get the node rank of a remote process.
 
typedef int(* orte_ess_base_module_proc_get_epoch_fn_t )(orte_process_name_t *proc)
 Update the epoch. More...
 
typedef int(* orte_ess_base_module_update_pidmap_fn_t )(opal_byte_object_t *bo)
 Update the pidmap. More...
 
typedef int(* orte_ess_base_module_update_nidmap_fn_t )(opal_byte_object_t *bo)
 Update a nidmap. More...
 
typedef int(* orte_ess_base_module_ft_event_fn_t )(int state)
 Handle fault tolerance updates. More...
 
typedef struct
orte_ess_base_module_1_0_0_t 
orte_ess_base_module_1_0_0_t
 
typedef struct
orte_ess_base_module_1_0_0_t 
orte_ess_base_module_t
 
typedef struct
orte_ess_base_component_2_0_0_t 
orte_ess_base_component_2_0_0_t
 
typedef struct
orte_ess_base_component_2_0_0_t 
orte_ess_base_component_t
 

Variables

BEGIN_C_DECLS typedef int(* orte_ess_base_module_init_fn_t )(void)
 
ORTE_DECLSPEC
orte_ess_base_module_t 
orte_ess
 

Detailed Description

The OpenRTE Environment-Specific Services.

Macro Definition Documentation

#define ORTE_ESS_BASE_VERSION_2_0_0
Value:
MCA_BASE_VERSION_2_0_0, \
"ess", 2, 0, 0

Typedef Documentation

typedef void(* orte_ess_base_module_abort_fn_t)(int status, bool report) __opal_attribute_noreturn_funcptr__

Abort the current application.

Aborts currently running application, NOTE: We do NOT call the regular C-library "abort" function, even though that would have alerted us to the fact that this is an abnormal termination, because it would automatically cause a core file to be generated. The "report" flag indicates if the function should create an appropriate file to alert the local orted that termination was abnormal.

typedef int(* orte_ess_base_module_ft_event_fn_t)(int state)

Handle fault tolerance updates.

Parameters
[in]stateFault tolerance state update
Return values
ORTE_SUCCESSThe operation completed successfully
ORTE_ERRORAn unspecifed error occurred
typedef opal_paffinity_locality_t(* orte_ess_base_module_get_proc_locality_fn_t)(orte_process_name_t *proc)

Get the locality flag of the specified process.

MPI procs need to know whether a proc shares a common socket, board, node, computing unit, or cluster. This function provides a means for an MPI proc to query the locality of another proc.

typedef orte_vpid_t(* orte_ess_base_module_proc_get_daemon_fn_t)(orte_process_name_t *proc)

Get the vpid of the daemon who hosts the specified proc.

In order to route messages to the correct place, the RML and routed modules need to know the vpid of the daemon that hosts the intended recipient. This API accesses the pidmap/nidmap to retrieve that info

typedef int(* orte_ess_base_module_proc_get_epoch_fn_t)(orte_process_name_t *proc)

Update the epoch.

The epochs of the processes are stored in the process_name struct, but this will get the most up to date version stored within the orte_proc_t struct. Obviously the epoch of the proc that is passed in will be ignored.

typedef char*(* orte_ess_base_module_proc_get_hostname_fn_t)(orte_process_name_t *proc)

Get the hostname where a proc resides.

MPI procs need to know the hostname where a specified proc resides. Different environments provide that info in different ways - e.g., they may provide a callable utility to return the answer, or download a map of information into each process. This API provides a means for each environment to do the "right thing".

NOTE: To avoid memory waste, this function returns a pointer to a static storage. IT MUST NOT BE FREED!

typedef int(* orte_ess_base_module_update_nidmap_fn_t)(opal_byte_object_t *bo)

Update a nidmap.

When a job is dynamically launched via comm_spawn, the pre-existing daemons need to update their knowledge of the node map that contains info on what daemon resides on which nodes

typedef int(* orte_ess_base_module_update_pidmap_fn_t)(opal_byte_object_t *bo)

Update the pidmap.

When a job is dynamically launched via comm_spawn, the pre-existing daemons need to update their knowledge of the process map within the job so they can properly do things like route messages. This API allows daemons - and anyone else who wants to - to add a pidmap for a new job