1
1

- support for MPI_IN_PLACE during gather ops

- fix ABI check and message

This commit was SVN r23840.
Этот коммит содержится в:
Mike Dubman 2010-10-06 16:27:45 +00:00
родитель cc627f7770
Коммит f525245498
2 изменённых файлов: 12 добавлений и 2 удалений

Просмотреть файл

@ -141,8 +141,8 @@ int mca_coll_fca_get_fca_lib(struct ompi_communicator_t *comm)
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)) { if (fca_ver != FCA_API_VER(FCA_API_ABI_MAJOR,FCA_API_ABI_MINOR)) {
FCA_ERROR("Unsupported FCA version: %s Please upgrade FCA to at least v%d.%d", FCA_ERROR("Unsupported FCA version: %s, please update FCA to v%d.%d",
mca_coll_fca_component.fca_ops.get_version_string(), mca_coll_fca_component.fca_ops.get_version_string(),
FCA_API_ABI_MAJOR, FCA_API_ABI_MAJOR,
FCA_API_ABI_MINOR); FCA_API_ABI_MINOR);
@ -206,6 +206,8 @@ static void mca_coll_fca_close_fca_lib(void)
mca_coll_fca_component.fca_lib_handle = NULL; mca_coll_fca_component.fca_lib_handle = NULL;
} }
static int fca_register(void) static int fca_register(void)
{ {
FCA_VERBOSE(2, "==>"); FCA_VERBOSE(2, "==>");

Просмотреть файл

@ -273,6 +273,14 @@ int mca_coll_fca_allgather(void *sbuf, int scount, struct ompi_datatype_t *sdtyp
spec.sbuf = sbuf; spec.sbuf = sbuf;
spec.rbuf = rbuf; spec.rbuf = rbuf;
if (MPI_IN_PLACE == spec.sbuf) {
FCA_VERBOSE(10, "Using MPI_IN_PLACE for sbuf");
spec.sbuf = spec.rbuf;
} else if (MPI_IN_PLACE == spec.rbuf) {
FCA_VERBOSE(10, "Using MPI_IN_PLACE for rbuf");
spec.rbuf = spec.sbuf;
}
spec.size = mca_coll_fca_get_buf_size(sdtype, scount, scount); spec.size = mca_coll_fca_get_buf_size(sdtype, scount, scount);
if (spec.size < 0 || spec.size > fca_module->fca_comm_caps.max_payload || if (spec.size < 0 || spec.size > fca_module->fca_comm_caps.max_payload ||