- added initial i/f functions
This commit was SVN r144.
Этот коммит содержится в:
родитель
273ed3ebf5
Коммит
eee3abd2f9
@ -12,63 +12,85 @@
|
||||
|
||||
|
||||
/*
|
||||
* Types for each API function pointer.
|
||||
*
|
||||
* JMS: This is an example -- there will need to be a query function,
|
||||
* but I have no idea what the arguments will be.
|
||||
* PML module functions
|
||||
*/
|
||||
|
||||
typedef int (*mca_pml_query_fn_t)(int *priority, int *thread_min,
|
||||
int *thread_max);
|
||||
|
||||
/*
|
||||
* Action functions
|
||||
*
|
||||
* JMS: Again, this is an example.
|
||||
*/
|
||||
|
||||
typedef int (*mci_pml_addprocs_fn_t)(lam_proc_t **procs, int nprocs);
|
||||
typedef const struct mca_pml_actions_1_0_0 *
|
||||
(*mca_pml_init_1_0_0_fn_t)(struct _proc **procs, int nprocs,
|
||||
int *max_tag, int *max_cid);
|
||||
typedef int (*mca_pml_query_fn_t)(int *priority);
|
||||
typedef struct mca_pml_1_0_0 * (*mca_pml_init_1_0_0_fn_t)(
|
||||
struct lam_proc **procs,
|
||||
int nprocs,
|
||||
int *max_tag,
|
||||
int *max_cid
|
||||
);
|
||||
|
||||
|
||||
/*
|
||||
* Struct used to pass pml MCA information from the each pml instance
|
||||
* back to the MCA framework.
|
||||
* PML interface functions
|
||||
*/
|
||||
|
||||
typedef struct mca_pml_1_0_0 {
|
||||
typedef enum {
|
||||
MCA_PTM_REQUEST_TYPE_RECV,
|
||||
MCA_PTM_REQUEST_TYPE_SEND_STANDARD,
|
||||
MCA_PTM_REQUEST_TYPE_SEND_BUFFERED,
|
||||
MCA_PTM_REQUEST_TYPE_SEND_SYNCHRONOUS,
|
||||
MCA_PTM_REQUEST_TYPE_SEND_READY
|
||||
} mca_pml_request_type_t;
|
||||
|
||||
|
||||
typedef int (*mca_pml_progress_fn_t)(lam_time_t);
|
||||
|
||||
typedef int (*mca_pml_isend_fn_t)(
|
||||
void *buf,
|
||||
size_t size,
|
||||
lam_datatype_t *datatype,
|
||||
int dest,
|
||||
int tag,
|
||||
lam_communicator_t* comm,
|
||||
mca_pml_request_type_t req_type,
|
||||
lam_request_t **request
|
||||
);
|
||||
|
||||
typedef int (*mci_pma_addprocs_fn_t)(lam_proc_t **procs, int nprocs);
|
||||
|
||||
|
||||
/*
|
||||
* PML module definition.
|
||||
*/
|
||||
|
||||
typedef struct mca_pml_module_1_0_0 {
|
||||
mca_1_0_0_t mp_meta_info;
|
||||
|
||||
/* pml API function pointers */
|
||||
|
||||
mca_pml_query_fn_t mp_query;
|
||||
mca_pml_init_1_0_0_fn_t mp_init;
|
||||
} mca_pml_module_1_0_0_t;
|
||||
|
||||
|
||||
/*
|
||||
* Struct that represents the common state and interface functions
|
||||
* provided by a PML.
|
||||
*/
|
||||
|
||||
typedef struct mca_pml_1_0_0 {
|
||||
|
||||
mca_pml_addprocs_fn_t pml_addprocs;
|
||||
mca_pml_isend_fn_t pml_isend;
|
||||
mca_pml_progress_fn_t pml_progress;
|
||||
|
||||
} mca_pml_1_0_0_t;
|
||||
|
||||
typedef struct mca_pml_actions_1_0_0 {
|
||||
|
||||
/* pml API action function pointers */
|
||||
|
||||
mca_pml_addprocs_fn_t mpa_addprocs;
|
||||
|
||||
/* Flags */
|
||||
|
||||
bool mp_tv_queue_support;
|
||||
} mca_pml_actions_1_0_0_t;
|
||||
|
||||
|
||||
/*
|
||||
* Set the default type to use version 1.1.0 of the SSI RPI struct
|
||||
* Set the default type to use version 1.1.0 of the PML
|
||||
*/
|
||||
|
||||
typedef mca_pml_module_1_1_0_t mca_pml_t;
|
||||
typedef mca_pml_1_1_0_t mca_pml_t;
|
||||
typedef mca_pml_actions_1_1_0_t mca_pml_actions_t;
|
||||
|
||||
|
||||
/*
|
||||
* Global functions for MCA: overall pml open and close
|
||||
* Global functions for MCA: overall PML open and close
|
||||
*/
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
@ -86,8 +108,8 @@ extern "C" {
|
||||
* Public variables
|
||||
*/
|
||||
|
||||
extern lam_list_t *lam_ssi_rpi_base_opened;
|
||||
extern lam_list_t *lam_ssi_rpi_base_available;
|
||||
extern lam_list_t *mca_base_opened;
|
||||
extern lam_list_t *mca_base_available;
|
||||
|
||||
/*
|
||||
* Global instance of array of pointers to lam_ssi_rpi_t. Will
|
||||
|
@ -12,63 +12,62 @@
|
||||
|
||||
|
||||
/*
|
||||
* Types for each API function pointer.
|
||||
*
|
||||
* JMS: This is an example -- there will need to be a query function,
|
||||
* but I have no idea what the arguments will be.
|
||||
* PTL module functions.
|
||||
*/
|
||||
|
||||
typedef int (*mca_ptl_query_fn_t)(int *priority, int *thread_min,
|
||||
int *thread_max);
|
||||
|
||||
typedef int (*mca_ptl_query_fn_t)(int *priority, int *thread_min, int *thread_max);
|
||||
typedef struct mca_ptl_1_0_0* (*mca_ptl_init_1_0_0_fn_t)();
|
||||
|
||||
/*
|
||||
* Action functions
|
||||
*
|
||||
* JMS: Again, this is an example.
|
||||
* PTL action functions.
|
||||
*/
|
||||
|
||||
typedef int (*mci_ptl_addprocs_fn_t)(lam_proc_t **procs, int nprocs);
|
||||
typedef const struct mca_ptl_actions_1_0_0 *
|
||||
(*mca_ptl_init_1_0_0_fn_t)(struct _proc **procs, int nprocs,
|
||||
int *max_tag, int *max_cid);
|
||||
|
||||
typedef int (*mca_ptl_fragment_fn_t)(mca_ptl_send_request_t*, size_t);
|
||||
typedef int (*mca_ptl_progress_fn_t)(mca_time_t);
|
||||
|
||||
/*
|
||||
* Struct used to pass ptl MCA information from the each ptl instance
|
||||
* back to the MCA framework.
|
||||
* Struct used to pass PTL module information from the each PTL
|
||||
* instance back to the MCA framework.
|
||||
*/
|
||||
|
||||
typedef struct mca_ptl_module_1_0_0 {
|
||||
mca_1_0_0_t mp_meta_info;
|
||||
mca_ptl_query_fn_t mp_query;
|
||||
mca_ptl_init_1_0_0_fn_t mp_init;
|
||||
} mca_ptl_module_1_0_0_t;
|
||||
|
||||
/*
|
||||
* Struct that represents the common state and interface functions
|
||||
* provided by a PTL.
|
||||
*/
|
||||
|
||||
typedef struct mca_ptl_1_0_0 {
|
||||
mca_1_0_0_t mp_meta_info;
|
||||
|
||||
/* ptl API function pointers */
|
||||
/* PTL common attributes */
|
||||
size_t ptl_frag_first_size; /* maximum size of first fragment */
|
||||
size_t ptl_frag_min_size; /* threshold below which the CDI will not fragment */
|
||||
size_t ptl_frag_max_size; /* maximum fragment size supported by the CDI */
|
||||
uint32_t ptl_endpoint_latency; /* relative/absolute measure of latency */
|
||||
uint64_t ptl_endpoint_bandwidth; /* bandwidth (bytes/sec) supported by each endpoint */
|
||||
size_t ptl_endpoint_count; /* number endpoints supported by this CDI */
|
||||
|
||||
/* PTL function table */
|
||||
mca_ptl_fragment_fn_t ptl_fragment;
|
||||
mca_ptl_progress_fn_t ptl_progress;
|
||||
|
||||
mca_ptl_query_fn_t mp_query;
|
||||
mca_ptl_init_1_0_0_fn_t mp_init;
|
||||
} mca_ptl_1_0_0_t;
|
||||
|
||||
typedef struct mca_ptl_actions_1_0_0 {
|
||||
|
||||
/* ptl API action function pointers */
|
||||
|
||||
mca_ptl_addprocs_fn_t mpa_addprocs;
|
||||
|
||||
/* Flags */
|
||||
|
||||
bool mp_tv_queue_support;
|
||||
} mca_ptl_actions_1_0_0_t;
|
||||
|
||||
|
||||
/*
|
||||
* Set the default type to use version 1.1.0 of the SSI RPI struct
|
||||
* Set the default type to use version 1.1.0 of the PTL
|
||||
*/
|
||||
|
||||
typedef mca_ptl_module_1_1_0_t mca_ptl_module_t;
|
||||
typedef mca_ptl_1_1_0_t mca_ptl_t;
|
||||
typedef mca_ptl_actions_1_1_0_t mca_ptl_actions_t;
|
||||
|
||||
|
||||
/*
|
||||
* Global functions for MCA: overall ptl open and close
|
||||
* Global functions for MCA: overall PTL open and close
|
||||
*/
|
||||
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
@ -86,11 +85,11 @@ extern "C" {
|
||||
* Public variables
|
||||
*/
|
||||
|
||||
extern lam_list_t *lam_ssi_rpi_base_opened;
|
||||
extern lam_list_t *lam_ssi_rpi_base_available;
|
||||
extern lam_list_t *mca_base_opened;
|
||||
extern lam_list_t *mca_base_available;
|
||||
|
||||
/*
|
||||
* Global instance of array of pointers to lam_ssi_rpi_t. Will
|
||||
* Global instance of array of pointers to mca_t. Will
|
||||
* effectively be filled in by configure.
|
||||
*/
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user