fix support for fca 2.2, warning fixes on rhel 6.x
This commit was SVN r26166.
Этот коммит содержится в:
родитель
0322db7cde
Коммит
a45898ea9c
@ -113,18 +113,12 @@ static inline void mca_coll_fca_get_reduce_root(int root_rank, int my_rank,
|
|||||||
spec->is_root = root_rank == my_rank;
|
spec->is_root = root_rank == my_rank;
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif OMPI_FCA_VERSION == 20 || OMPI_FCA_VERSION == 21
|
#elif OMPI_FCA_VERSION == 20 || OMPI_FCA_VERSION == 21 || OMPI_FCA_VERSION == 22
|
||||||
|
|
||||||
#define OMPI_FCA_ALLGATHER 1
|
#define OMPI_FCA_ALLGATHER 1
|
||||||
|
#define OMPI_FCA_ALLGATHERV 1
|
||||||
#define OMPI_FCA_PROGRESS 1
|
#define OMPI_FCA_PROGRESS 1
|
||||||
|
|
||||||
#define FCA_API_ABI_MAJOR 2
|
|
||||||
#if OMPI_FCA_VERSION == 20
|
|
||||||
# define FCA_API_ABI_MINOR 0
|
|
||||||
#else
|
|
||||||
# define FCA_API_ABI_MINOR 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct mca_coll_fca_ops_t {
|
typedef struct mca_coll_fca_ops_t {
|
||||||
|
|
||||||
/* FCA Context operations */
|
/* FCA Context operations */
|
||||||
|
@ -128,7 +128,8 @@ int mca_coll_fca_get_fca_lib(struct ompi_communicator_t *comm)
|
|||||||
{
|
{
|
||||||
struct fca_init_spec *spec;
|
struct fca_init_spec *spec;
|
||||||
int ret;
|
int ret;
|
||||||
unsigned long fca_ver;
|
unsigned long fca_ver, major, minor, detected_ver;
|
||||||
|
char x[3];
|
||||||
|
|
||||||
if (mca_coll_fca_component.fca_lib_handle)
|
if (mca_coll_fca_component.fca_lib_handle)
|
||||||
return OMPI_SUCCESS;
|
return OMPI_SUCCESS;
|
||||||
@ -145,12 +146,19 @@ int mca_coll_fca_get_fca_lib(struct ompi_communicator_t *comm)
|
|||||||
GET_FCA_SYM(get_version);
|
GET_FCA_SYM(get_version);
|
||||||
GET_FCA_SYM(get_version_string);
|
GET_FCA_SYM(get_version_string);
|
||||||
|
|
||||||
|
|
||||||
fca_ver = FCA_API_CLEAR_MICRO(mca_coll_fca_component.fca_ops.get_version());
|
fca_ver = FCA_API_CLEAR_MICRO(mca_coll_fca_component.fca_ops.get_version());
|
||||||
if (fca_ver != FCA_API_VER(FCA_API_ABI_MAJOR,FCA_API_ABI_MINOR)) {
|
major = (fca_ver>>FCA_MAJOR_BIT);
|
||||||
FCA_ERROR("Unsupported FCA version: %s, please update FCA to v%d.%d",
|
minor = (fca_ver>>FCA_MINOR_BIT) & 0xf;
|
||||||
|
sprintf(x, "%ld%ld", major, minor);
|
||||||
|
detected_ver = atol(x);
|
||||||
|
|
||||||
|
FCA_VERBOSE(1, "FCA ABI version: %ld supported: %d", detected_ver, OMPI_FCA_VERSION);
|
||||||
|
|
||||||
|
if (detected_ver != OMPI_FCA_VERSION) {
|
||||||
|
FCA_ERROR("Unsupported FCA version: %s, please update FCA to v%d, now v%ld",
|
||||||
mca_coll_fca_component.fca_ops.get_version_string(),
|
mca_coll_fca_component.fca_ops.get_version_string(),
|
||||||
FCA_API_ABI_MAJOR,
|
OMPI_FCA_VERSION, fca_ver);
|
||||||
FCA_API_ABI_MINOR);
|
|
||||||
return OMPI_ERROR;
|
return OMPI_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -296,7 +304,7 @@ static int fca_register(void)
|
|||||||
mca_base_param_reg_int(c, "enable_allgatherv",
|
mca_base_param_reg_int(c, "enable_allgatherv",
|
||||||
"[1|0|] Enable/Disable FCA Allgatherv support",
|
"[1|0|] Enable/Disable FCA Allgatherv support",
|
||||||
false, false,
|
false, false,
|
||||||
OMPI_FCA_ALLGATHER,
|
OMPI_FCA_ALLGATHERV,
|
||||||
&mca_coll_fca_component.fca_enable_allgatherv);
|
&mca_coll_fca_component.fca_enable_allgatherv);
|
||||||
|
|
||||||
mca_base_param_reg_int(c, "enable_gather",
|
mca_base_param_reg_int(c, "enable_gather",
|
||||||
|
@ -122,8 +122,8 @@ static int __fca_comm_new(mca_coll_fca_module_t *fca_module)
|
|||||||
|
|
||||||
/* Allocate buffer for gathering rank information on rank0 */
|
/* Allocate buffer for gathering rank information on rank0 */
|
||||||
if (fca_module->rank == 0) {
|
if (fca_module->rank == 0) {
|
||||||
FCA_MODULE_VERBOSE(fca_module, 1, "Total rank_info size: %d", all_info_size);
|
|
||||||
all_info_size = 0;
|
all_info_size = 0;
|
||||||
|
FCA_MODULE_VERBOSE(fca_module, 1, "Total rank_info size: %d", all_info_size);
|
||||||
disps = calloc(ompi_comm_size(comm), sizeof *disps);
|
disps = calloc(ompi_comm_size(comm), sizeof *disps);
|
||||||
for (i = 0; i < ompi_comm_size(comm); ++i) {
|
for (i = 0; i < ompi_comm_size(comm); ++i) {
|
||||||
disps[i] = all_info_size;
|
disps[i] = all_info_size;
|
||||||
|
@ -189,7 +189,7 @@ int mca_coll_fca_bcast(void *buff, int count, struct ompi_datatype_t *datatype,
|
|||||||
/* Setup exchange buffer */
|
/* Setup exchange buffer */
|
||||||
spec.root = root;
|
spec.root = root;
|
||||||
if (mca_coll_fca_array_size(datatype, count, &gap, &size)) {
|
if (mca_coll_fca_array_size(datatype, count, &gap, &size)) {
|
||||||
spec.buf = buff + gap;
|
spec.buf = (char*)buff + gap;
|
||||||
} else {
|
} else {
|
||||||
mca_coll_fca_convertor_create(&conv, datatype, count, buff,
|
mca_coll_fca_convertor_create(&conv, datatype, count, buff,
|
||||||
(root == fca_module->rank)
|
(root == fca_module->rank)
|
||||||
@ -336,7 +336,7 @@ static size_t __setup_gather_sendbuf(void *sbuf, void *inplace_sbuf, int scount,
|
|||||||
size_t gap, ssize;
|
size_t gap, ssize;
|
||||||
|
|
||||||
if (mca_coll_fca_array_size(sdtype, scount, &gap, &ssize)) {
|
if (mca_coll_fca_array_size(sdtype, scount, &gap, &ssize)) {
|
||||||
*real_sendbuf = ((MPI_IN_PLACE == sbuf) ? inplace_sbuf : sbuf) + gap;
|
*real_sendbuf = (char*)((MPI_IN_PLACE == sbuf) ? inplace_sbuf : sbuf) + gap;
|
||||||
} else {
|
} else {
|
||||||
FCA_VERBOSE(5, "Packing send buffer");
|
FCA_VERBOSE(5, "Packing send buffer");
|
||||||
if (MPI_IN_PLACE == sbuf) {
|
if (MPI_IN_PLACE == sbuf) {
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user