renamed/moved p2p headers
This commit was SVN r181.
Этот коммит содержится в:
родитель
90eabbbcbd
Коммит
dfbdcd8c2e
@ -3,3 +3,32 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
include $(top_srcdir)/config/Makefile.options
|
include $(top_srcdir)/config/Makefile.options
|
||||||
|
|
||||||
|
noinst_LTLIBRARIES = libpmlb.la
|
||||||
|
|
||||||
|
# Source code files
|
||||||
|
|
||||||
|
headers = \
|
||||||
|
fragment.h \
|
||||||
|
header.h \
|
||||||
|
recvfrag.h \
|
||||||
|
request.h \
|
||||||
|
sendfrag.h \
|
||||||
|
sendreq.h
|
||||||
|
|
||||||
|
libpmlb_la_SOURCES = \
|
||||||
|
$(headers) \
|
||||||
|
fragment.c \
|
||||||
|
recvfrag.c \
|
||||||
|
request.c \
|
||||||
|
sendfrag.c
|
||||||
|
|
||||||
|
# Conditionally install the header files
|
||||||
|
|
||||||
|
if WANT_INSTALL_HEADERS
|
||||||
|
lamdir = $(includedir)/mfc/mpi/pml/base
|
||||||
|
lam_HEADERS = $(headers)
|
||||||
|
else
|
||||||
|
lamdir = $(includedir)
|
||||||
|
endif
|
||||||
|
|
||||||
|
24
src/mca/mpi/pml/base/pml_base_request.c
Обычный файл
24
src/mca/mpi/pml/base/pml_base_request.c
Обычный файл
@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||||
|
|
||||||
|
#include "mca/mpi/pml/base/request.h"
|
||||||
|
|
||||||
|
lam_class_info_t mca_pml_base_request_cls = {
|
||||||
|
"mca_pml_base_request_t",
|
||||||
|
&lam_request_cls,
|
||||||
|
(class_init_t) mca_pml_base_request_init,
|
||||||
|
(class_destroy_t) mca_pml_base_request_destroy
|
||||||
|
};
|
||||||
|
|
||||||
|
void mca_pml_base_request_init(mca_pml_base_request_t* req)
|
||||||
|
{
|
||||||
|
SUPER_INIT(req, &lam_request_cls);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mca_pml_base_request_destroy(mca_pml_base_request_t* req)
|
||||||
|
{
|
||||||
|
SUPER_DESTROY(req, &lam_request_cls);
|
||||||
|
}
|
||||||
|
|
57
src/mca/mpi/pml/base/pml_base_request.h
Обычный файл
57
src/mca/mpi/pml/base/pml_base_request.h
Обычный файл
@ -0,0 +1,57 @@
|
|||||||
|
/*
|
||||||
|
* $HEADER$
|
||||||
|
*/
|
||||||
|
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
|
||||||
|
|
||||||
|
#ifndef MCA_PML_BASE_REQUEST_H
|
||||||
|
#define MCA_PML_BASE_REQUEST_H
|
||||||
|
|
||||||
|
#include "communicator.h"
|
||||||
|
#include "datatype.h"
|
||||||
|
#include "include/request.h"
|
||||||
|
#include "lam/mem/free_list.h"
|
||||||
|
#include "mca/mpi/pml/pml.h"
|
||||||
|
|
||||||
|
|
||||||
|
extern lam_class_info_t mca_pml_base_request_cls;
|
||||||
|
|
||||||
|
/* MPI request status */
|
||||||
|
typedef enum {
|
||||||
|
LAM_STATUS_INVALID = 1,
|
||||||
|
LAM_STATUS_INITED = 2,
|
||||||
|
LAM_STATUS_INCOMPLETE = 3,
|
||||||
|
LAM_STATUS_COMPLETE = 4,
|
||||||
|
LAM_STATUS_INACTIVE = 5
|
||||||
|
} mca_pml_request_status_t;
|
||||||
|
|
||||||
|
|
||||||
|
/* MPI request */
|
||||||
|
typedef struct {
|
||||||
|
/* base request */
|
||||||
|
lam_request_t super;
|
||||||
|
/* peer process - rank w/in this communicator */
|
||||||
|
int32_t req_peer;
|
||||||
|
/* user defined tag */
|
||||||
|
int32_t req_tag;
|
||||||
|
/* communicator pointer */
|
||||||
|
lam_communicator_t *req_communicator;
|
||||||
|
/* pointer to data type */
|
||||||
|
lam_datatype_t *req_datatype;
|
||||||
|
/* MPI request status */
|
||||||
|
mca_pml_request_status_t req_status;
|
||||||
|
/* type of message - standard,buffered,synchronous,ready,recv */
|
||||||
|
mca_pml_request_type_t req_type;
|
||||||
|
/* persistence indicating if the this is a persistent request */
|
||||||
|
bool req_persistent;
|
||||||
|
/* flag indicating if MPI is done with this request called */
|
||||||
|
bool req_mpi_done;
|
||||||
|
/* flag indicating if the pt-2-pt layer is done with this request */
|
||||||
|
bool req_p2p_layer_done;
|
||||||
|
} mca_pml_base_request_t;
|
||||||
|
|
||||||
|
|
||||||
|
void mca_pml_base_request_init(mca_pml_base_request_t*);
|
||||||
|
void mca_pml_base_request_destroy(mca_pml_base_request_t*);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -5,11 +5,10 @@
|
|||||||
#ifndef LAM_MCA_PML_H
|
#ifndef LAM_MCA_PML_H
|
||||||
#define LAM_MCA_PML_H
|
#define LAM_MCA_PML_H
|
||||||
|
|
||||||
#include "mca/mca.h"
|
|
||||||
#include "proc.h"
|
|
||||||
#include "lam.h"
|
#include "lam.h"
|
||||||
|
#include "proc.h"
|
||||||
#include "lam/lfc/list.h"
|
#include "lam/lfc/list.h"
|
||||||
|
#include "mca/mca.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PML module functions
|
* PML module functions
|
||||||
@ -17,54 +16,66 @@
|
|||||||
|
|
||||||
typedef int (*mca_pml_query_fn_t)(int *priority);
|
typedef int (*mca_pml_query_fn_t)(int *priority);
|
||||||
typedef struct mca_pml_1_0_0 * (*mca_pml_init_1_0_0_fn_t)(
|
typedef struct mca_pml_1_0_0 * (*mca_pml_init_1_0_0_fn_t)(
|
||||||
struct lam_proc **procs,
|
struct lam_proc_t **procs,
|
||||||
int nprocs,
|
int nprocs,
|
||||||
int *max_tag,
|
int *max_tag,
|
||||||
int *max_cid
|
int *max_cid
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* PML types
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef uint64_t mca_pml_sequence_t;
|
||||||
|
typedef uint64_t mca_pml_tstamp_t;
|
||||||
|
typedef lam_dbl_list_t mca_pml_queue_t;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
MCA_PML_REQUEST_TYPE_RECV,
|
||||||
|
MCA_PML_REQUEST_TYPE_SEND_STANDARD,
|
||||||
|
MCA_PML_REQUEST_TYPE_SEND_BUFFERED,
|
||||||
|
MCA_PML_REQUEST_TYPE_SEND_SYNCHRONOUS,
|
||||||
|
MCA_PML_REQUEST_TYPE_SEND_READY
|
||||||
|
} mca_pml_request_type_t;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PML interface functions
|
* PML interface functions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef enum {
|
struct lam_communicator_t;
|
||||||
MCA_PTM_REQUEST_TYPE_RECV,
|
struct lam_datatype_t;
|
||||||
MCA_PTM_REQUEST_TYPE_SEND_STANDARD,
|
struct lam_proc_t;
|
||||||
MCA_PTM_REQUEST_TYPE_SEND_BUFFERED,
|
struct lam_request_t;
|
||||||
MCA_PTM_REQUEST_TYPE_SEND_SYNCHRONOUS,
|
|
||||||
MCA_PTM_REQUEST_TYPE_SEND_READY
|
|
||||||
} mca_pml_request_type_t;
|
|
||||||
|
|
||||||
|
typedef int (*mca_pml_progress_fn_t)(mca_pml_tstamp_t);
|
||||||
typedef int (*mca_pml_progress_fn_t)(lam_time_t);
|
|
||||||
|
|
||||||
typedef int (*mca_pml_isend_fn_t)(
|
typedef int (*mca_pml_isend_fn_t)(
|
||||||
void *buf,
|
void *buf,
|
||||||
size_t size,
|
size_t size,
|
||||||
lam_datatype_t *datatype,
|
struct lam_datatype_t *datatype,
|
||||||
int dest,
|
int dest,
|
||||||
int tag,
|
int tag,
|
||||||
lam_communicator_t* comm,
|
struct lam_communicator_t* comm,
|
||||||
mca_pml_request_type_t req_type,
|
mca_pml_request_type_t req_type,
|
||||||
lam_request_t **request
|
struct lam_request_t **request
|
||||||
);
|
);
|
||||||
|
|
||||||
typedef int (*mci_pma_addprocs_fn_t)(lam_proc_t **procs, int nprocs);
|
typedef int (*mca_pml_addprocs_fn_t)(lam_proc_t **procs, int nprocs);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* PML module definition.
|
* PML module definition.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef struct mca_pml_module_1_0_0 {
|
struct mca_pml_module_1_0_0_t {
|
||||||
mca_1_0_0_t mp_meta_info;
|
|
||||||
|
|
||||||
/* pml API function pointers */
|
mca_1_0_0_t super;
|
||||||
|
mca_pml_query_fn_t pmlm_query;
|
||||||
|
mca_pml_init_1_0_0_fn_t pmlm_init;
|
||||||
|
|
||||||
mca_pml_query_fn_t mp_query;
|
};
|
||||||
mca_pml_init_1_0_0_fn_t mp_init;
|
typedef struct mca_pml_module_1_0_0_t mca_pml_module_1_0_0_t;
|
||||||
} mca_pml_module_1_0_0_t;
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -72,21 +83,22 @@ typedef struct mca_pml_module_1_0_0 {
|
|||||||
* provided by a PML.
|
* provided by a PML.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef struct mca_pml_1_0_0 {
|
struct mca_pml_1_0_0_t {
|
||||||
|
|
||||||
mca_pml_addprocs_fn_t pml_addprocs;
|
mca_pml_addprocs_fn_t pml_addprocs;
|
||||||
mca_pml_isend_fn_t pml_isend;
|
mca_pml_isend_fn_t pml_isend;
|
||||||
mca_pml_progress_fn_t pml_progress;
|
mca_pml_progress_fn_t pml_progress;
|
||||||
|
|
||||||
} mca_pml_1_0_0_t;
|
};
|
||||||
|
typedef struct mca_pml_1_0_0_t mca_pml_1_0_0_t;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set the default type to use version 1.1.0 of the PML
|
* 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 struct mca_pml_module_1_1_0_t mca_pml_module_t;
|
||||||
typedef mca_pml_1_1_0_t mca_pml_t;
|
typedef struct mca_pml_1_1_0_t mca_pml_t;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -108,8 +120,8 @@ extern "C" {
|
|||||||
* Public variables
|
* Public variables
|
||||||
*/
|
*/
|
||||||
|
|
||||||
extern lam_list_t *mca_pml_base_opened;
|
extern lam_dbl_list_t *mca_pml_base_opened;
|
||||||
extern lam_list_t *mca_pml_base_available;
|
extern lam_dbl_list_t *mca_pml_base_available;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Global instance of array of pointers to lam_ssi_rpi_t. Will
|
* Global instance of array of pointers to lam_ssi_rpi_t. Will
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user