2008-02-28 04:57:57 +03:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
|
|
|
|
* University Research and Technology
|
|
|
|
* Corporation. All rights reserved.
|
|
|
|
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
|
|
* of Tennessee Research Foundation. All rights
|
|
|
|
* reserved.
|
|
|
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
|
|
* University of Stuttgart. All rights reserved.
|
|
|
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
|
|
|
* All rights reserved.
|
|
|
|
* $COPYRIGHT$
|
|
|
|
*
|
|
|
|
* Additional copyrights may follow
|
|
|
|
*
|
|
|
|
* $HEADER$
|
|
|
|
*/
|
|
|
|
#ifndef OMPI_MCA_DPM_BASE_H
|
|
|
|
#define OMPI_MCA_DPM_BASE_H
|
|
|
|
|
|
|
|
#include "ompi_config.h"
|
|
|
|
#include "ompi/constants.h"
|
|
|
|
|
|
|
|
#include "ompi/mca/dpm/dpm.h"
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Global functions for MCA overall DPM
|
|
|
|
*/
|
|
|
|
|
|
|
|
BEGIN_C_DECLS
|
|
|
|
|
|
|
|
struct ompi_dpm_base_disconnect_obj {
|
|
|
|
ompi_communicator_t *comm;
|
|
|
|
int size;
|
|
|
|
struct ompi_request_t **reqs;
|
|
|
|
int buf;
|
|
|
|
};
|
|
|
|
typedef struct ompi_dpm_base_disconnect_obj ompi_dpm_base_disconnect_obj;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Initialize the DPM MCA framework
|
|
|
|
*
|
|
|
|
* @retval OMPI_SUCCESS Upon success
|
|
|
|
* @retval OMPI_ERROR Upon failures
|
|
|
|
*
|
|
|
|
* This function is invoked during ompi_init();
|
|
|
|
*/
|
|
|
|
OMPI_DECLSPEC int ompi_dpm_base_open(void);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Select an available component.
|
|
|
|
*
|
|
|
|
* @retval OMPI_SUCCESS Upon Success
|
|
|
|
* @retval OMPI_NOT_FOUND If no component can be selected
|
|
|
|
* @retval OMPI_ERROR Upon other failure
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
OMPI_DECLSPEC int ompi_dpm_base_select(void);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Finalize the DPM MCA framework
|
|
|
|
*
|
|
|
|
* @retval OMPI_SUCCESS Upon success
|
|
|
|
* @retval OMPI_ERROR Upon failures
|
|
|
|
*
|
|
|
|
* This function is invoked during ompi_finalize();
|
|
|
|
*/
|
|
|
|
OMPI_DECLSPEC int ompi_dpm_base_close(void);
|
|
|
|
|
2008-06-18 07:15:56 +04:00
|
|
|
#if !ORTE_DISABLE_FULL_SUPPORT
|
|
|
|
|
2008-02-28 04:57:57 +03:00
|
|
|
/* Internal support functions */
|
|
|
|
OMPI_DECLSPEC char* ompi_dpm_base_dyn_init (void);
|
|
|
|
OMPI_DECLSPEC int ompi_dpm_base_dyn_finalize (void);
|
|
|
|
OMPI_DECLSPEC void ompi_dpm_base_mark_dyncomm (ompi_communicator_t *comm);
|
|
|
|
OMPI_DECLSPEC ompi_dpm_base_disconnect_obj *ompi_dpm_base_disconnect_init ( ompi_communicator_t *comm);
|
|
|
|
OMPI_DECLSPEC void ompi_dpm_base_disconnect_waitall (int count, ompi_dpm_base_disconnect_obj **objs);
|
|
|
|
|
2008-06-18 07:15:56 +04:00
|
|
|
#endif
|
|
|
|
|
|
|
|
/* NULL component functions */
|
|
|
|
OMPI_DECLSPEC int ompi_dpm_base_null_connect_accept (ompi_communicator_t *comm, int root,
|
|
|
|
char *port_string, bool send_first,
|
|
|
|
ompi_communicator_t **newcomm);
|
|
|
|
OMPI_DECLSPEC void ompi_dpm_base_null_disconnect(ompi_communicator_t *comm);
|
|
|
|
OMPI_DECLSPEC int ompi_dpm_base_null_spawn(int count, char **array_of_commands,
|
|
|
|
char ***array_of_argv,
|
|
|
|
int *array_of_maxprocs,
|
|
|
|
MPI_Info *array_of_info,
|
|
|
|
char *port_name);
|
|
|
|
OMPI_DECLSPEC int ompi_dpm_base_null_dyn_init(void);
|
|
|
|
OMPI_DECLSPEC int ompi_dpm_base_null_dyn_finalize (void);
|
|
|
|
OMPI_DECLSPEC void ompi_dpm_base_null_mark_dyncomm (ompi_communicator_t *comm);
|
|
|
|
OMPI_DECLSPEC int ompi_dpm_base_null_open_port(char *port_name, orte_rml_tag_t given_tag);
|
|
|
|
OMPI_DECLSPEC char* ompi_dpm_base_null_parse_port (char *port_name, orte_rml_tag_t *tag);
|
|
|
|
OMPI_DECLSPEC int ompi_dpm_base_null_close_port(char *port_name);
|
2008-02-28 04:57:57 +03:00
|
|
|
|
|
|
|
/* useful globals */
|
|
|
|
OMPI_DECLSPEC extern int ompi_dpm_base_output;
|
|
|
|
OMPI_DECLSPEC extern opal_list_t ompi_dpm_base_components_available;
|
|
|
|
OMPI_DECLSPEC extern ompi_dpm_base_component_t ompi_dpm_base_selected_component;
|
|
|
|
OMPI_DECLSPEC extern ompi_dpm_base_module_t ompi_dpm;
|
|
|
|
|
|
|
|
END_C_DECLS
|
|
|
|
|
|
|
|
#endif /* OMPI_MCA_DPM_BASE_H */
|