OpenMPI  0.1.1
base.h File Reference

RML Framework maintenence interface. More...

#include "orte_config.h"
#include "opal/mca/mca.h"
#include "orte/mca/rml/rml.h"
#include "opal/dss/dss_types.h"

Go to the source code of this file.

Macros

#define RML_SELECT_WRAPPER_PRIORITY   -128
 

Functions

BEGIN_C_DECLS ORTE_DECLSPEC int orte_rml_base_open (void)
 Open the RML framework. More...
 
ORTE_DECLSPEC int orte_rml_base_select (void)
 Select an active RML component. More...
 
ORTE_DECLSPEC int orte_rml_base_close (void)
 Close the RML framework. More...
 
ORTE_DECLSPEC int orte_rml_base_comm_start (void)
 Post receive to get updates regarding contact information. More...
 
ORTE_DECLSPEC int orte_rml_base_comm_stop (void)
 Stop receiving contact information updates. More...
 
int orte_rml_base_null_send (struct orte_process_name_t *peer, struct iovec *msg, int count, int tag, int flags)
 
int orte_rml_base_null_send_nb (struct orte_process_name_t *peer, struct iovec *msg, int count, orte_rml_tag_t tag, int flags, orte_rml_callback_fn_t cbfunc, void *cbdata)
 
int orte_rml_base_null_send_buffer (struct orte_process_name_t *peer, struct opal_buffer_t *buffer, orte_rml_tag_t tag, int flags)
 
int orte_rml_base_null_send_buffer_nb (struct orte_process_name_t *peer, struct opal_buffer_t *buffer, orte_rml_tag_t tag, int flags, orte_rml_buffer_callback_fn_t cbfunc, void *cbdata)
 
int orte_rml_base_null_recv (struct orte_process_name_t *peer, struct iovec *msg, int count, orte_rml_tag_t tag, int flags)
 
int orte_rml_base_null_recv_nb (struct orte_process_name_t *peer, struct iovec *msg, int count, orte_rml_tag_t tag, int flags, orte_rml_callback_fn_t cbfunc, void *cbdata)
 
int orte_rml_base_null_recv_buffer (struct orte_process_name_t *peer, struct opal_buffer_t *buf, orte_rml_tag_t tag, int flags)
 
int orte_rml_base_null_recv_buffer_nb (struct orte_process_name_t *peer, orte_rml_tag_t tag, int flags, orte_rml_buffer_callback_fn_t cbfunc, void *cbdata)
 
int orte_rml_base_null_recv_cancel (orte_process_name_t *peer, orte_rml_tag_t tag)
 

Variables

ORTE_DECLSPEC int orte_rml_base_output
 Output stream for RML debugging. More...
 
ORTE_DECLSPEC opal_list_t orte_rml_base_components
 List of components that are available to the RML. More...
 
ORTE_DECLSPEC
orte_rml_component_t
orte_rml_component
 Component structure for the selected RML component. More...
 

Detailed Description

RML Framework maintenence interface.

Interface for starting / stopping / controlling the RML framework, as well as support for modifying RML datatypes.

Note
The only RML datatype exposed to the user is the RML tag. This will always be an integral value, so the only datatype support really required is the internal DSS functions for packing / unpacking / comparing tags. The user should never need to deal with these.

Function Documentation

ORTE_DECLSPEC int orte_rml_base_close ( void  )

Close the RML framework.

Close the RML framework, releasing all resources associated with the framework interface. Also closes the active component used during the application.

Return values
ORTE_SUCCESSFramework successfully shut down

References OBJ_DESTRUCT, and orte_rml_base_output.

ORTE_DECLSPEC int orte_rml_base_comm_start ( void  )

Post receive to get updates regarding contact information.

Post a non-blocking receive (likely during orte_init()) to receive updated contact information from the HNP when it becomes available. This should be called in any process that needs such updates, and the receive will continue to get update callbacks until orte_rml_base_comm_stop() is called.

Return values
ORTE_SUCCESSReceive successfully started
ORTE_ERRORAn unknown error occurred

References orte_rml, ORTE_RML_NON_PERSISTENT, and orte_rml_module_t::recv_buffer_nb.

ORTE_DECLSPEC int orte_rml_base_comm_stop ( void  )

Stop receiving contact information updates.

Shut down the receive posted during orte_rml_base_comm_start(), likely during orte_finalize().

Return values
ORTE_SUCCESSReceive succesffully cancelled.

References orte_rml, and orte_rml_module_t::recv_cancel.

BEGIN_C_DECLS ORTE_DECLSPEC int orte_rml_base_open ( void  )

Open the RML framework.

Open the RML framework. Loads all available RML components and runs their open functions.

Return values
ORTE_SUCCESSComponents successfully loaded
ORTE_ERRORAn unknown error occurred

References mca_base_param_reg_string_name(), OBJ_CONSTRUCT, opal_output_open(), and orte_rml_base_output.

Referenced by orte_ess_base_orted_setup().

ORTE_DECLSPEC int orte_rml_base_select ( void  )

Select an active RML component.

Select an RML component from the list of frameworks that were opened during orte_rml_base_open(). The orte_rml_base_select() function will fill in the orte_rml structure so that all functions in the interface exist. Note that there are still calling restrictions at that point (see the documentation for orte_rml_component_init_fn_t).

All components that are not selected will be closed during this call.

Return values
ORTE_SUCCESSComponents successfully selected
ORTE_ERRORAn unknown error occurred

References orte_rml_module_t::finalize, mca_base_param_reg_string_name(), mca_base_component_2_0_0_t::mca_component_name, mca_base_component_2_0_0_t::mca_type_name, OBJ_RELEASE, opal_list_get_end(), opal_list_get_first(), opal_list_get_next, opal_list_remove_item(), opal_output_verbose(), and orte_rml_base_output.

Referenced by orte_ess_base_orted_setup().

Variable Documentation

ORTE_DECLSPEC opal_list_t orte_rml_base_components

List of components that are available to the RML.

List of components that are currently available to the RML framework. Useable between calls to orte_rml_base_open() and orte_rml_base_close().

Note
This list should not be used by code outside the RML base.
ORTE_DECLSPEC int orte_rml_base_output

Output stream for RML debugging.

Output stream for the opal_output() code intended for RML output. It will be have its verbosity set according to the MCA parameter rml_base_verbose. Useable between call to orte_rml_base_open() and orte_rml_base_close().

Referenced by orte_rml_base_close(), orte_rml_base_open(), orte_rml_base_select(), and orte_rml_base_update_contact_info().

ORTE_DECLSPEC orte_rml_component_t* orte_rml_component

Component structure for the selected RML component.

Component structure pointer for the currently selected RML component. Useable between calls to orte_rml_base_select() and orte_rml_base_close().

Note
This pointer should not be used outside the RML base. It is available outside the RML base only for the F/T component.