enabling *gather*
This commit was SVN r23773.
Этот коммит содержится в:
родитель
f754bde8eb
Коммит
58aa7fd161
@ -281,13 +281,13 @@ static int fca_register(void)
|
|||||||
mca_base_param_reg_int(c, "enable_allgather",
|
mca_base_param_reg_int(c, "enable_allgather",
|
||||||
"[1|0|] Enable/Disable FCA Allgather support",
|
"[1|0|] Enable/Disable FCA Allgather support",
|
||||||
false, false,
|
false, false,
|
||||||
0,
|
1,
|
||||||
&mca_coll_fca_component.fca_enable_allgather);
|
&mca_coll_fca_component.fca_enable_allgather);
|
||||||
|
|
||||||
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,
|
||||||
0,
|
1,
|
||||||
&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",
|
||||||
|
@ -275,7 +275,8 @@ int mca_coll_fca_allgather(void *sbuf, int scount, struct ompi_datatype_t *sdtyp
|
|||||||
spec.rbuf = rbuf;
|
spec.rbuf = rbuf;
|
||||||
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 ||
|
||||||
|
!FCA_DT_IS_CONTIGUOUS_MEMORY_LAYOUT(rdtype, ompi_comm_size(comm))) {
|
||||||
FCA_VERBOSE(5, "Unsupported allgather operation size %d, using fallback\n",
|
FCA_VERBOSE(5, "Unsupported allgather operation size %d, using fallback\n",
|
||||||
spec.size);
|
spec.size);
|
||||||
goto orig_allgather;
|
goto orig_allgather;
|
||||||
@ -297,7 +298,6 @@ int mca_coll_fca_allgather(void *sbuf, int scount, struct ompi_datatype_t *sdtyp
|
|||||||
orig_allgather:
|
orig_allgather:
|
||||||
return fca_module->previous_allgather(sbuf, scount, sdtype, rbuf, rcount, rdtype,
|
return fca_module->previous_allgather(sbuf, scount, sdtype, rbuf, rcount, rdtype,
|
||||||
comm, fca_module->previous_allgather_module);
|
comm, fca_module->previous_allgather_module);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -320,7 +320,8 @@ int mca_coll_fca_allgatherv(void *sbuf, int scount,
|
|||||||
spec.rbuf = rbuf;
|
spec.rbuf = rbuf;
|
||||||
spec.sendsize = mca_coll_fca_get_buf_size(sdtype, scount, scount);
|
spec.sendsize = mca_coll_fca_get_buf_size(sdtype, scount, scount);
|
||||||
|
|
||||||
if (spec.sendsize < 0 || spec.sendsize > fca_module->fca_comm_caps.max_payload) {
|
if (spec.sendsize < 0 || spec.sendsize > fca_module->fca_comm_caps.max_payload ||
|
||||||
|
!FCA_DT_IS_CONTIGUOUS_MEMORY_LAYOUT(rdtype, ompi_comm_size(comm))) {
|
||||||
FCA_VERBOSE(5, "Unsupported allgatherv operation size %d, using fallback\n",
|
FCA_VERBOSE(5, "Unsupported allgatherv operation size %d, using fallback\n",
|
||||||
spec.sendsize);
|
spec.sendsize);
|
||||||
goto orig_allgatherv;
|
goto orig_allgatherv;
|
||||||
@ -332,8 +333,8 @@ int mca_coll_fca_allgatherv(void *sbuf, int scount,
|
|||||||
/* convert MPI counts which depend on dtype) to FCA sizes (which are in bytes) */
|
/* convert MPI counts which depend on dtype) to FCA sizes (which are in bytes) */
|
||||||
relemsize = mca_coll_fca_get_buf_size(rdtype, 1, comm_size);
|
relemsize = mca_coll_fca_get_buf_size(rdtype, 1, comm_size);
|
||||||
for (i = 0; i < comm_size; ++i) {
|
for (i = 0; i < comm_size; ++i) {
|
||||||
spec.recvsizes[i] *= relemsize;
|
spec.recvsizes[i] = rcounts[i] * relemsize;
|
||||||
spec.displs[i] *= relemsize;
|
spec.displs[i] = disps[i] * relemsize;
|
||||||
}
|
}
|
||||||
|
|
||||||
FCA_VERBOSE(5,"Using FCA Allgatherv");
|
FCA_VERBOSE(5,"Using FCA Allgatherv");
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user