underfilling of a only segment and the doing a PML send and esp a recv on it can
cause flipping hard to find memory errors... This commit was SVN r7169.
Этот коммит содержится в:
родитель
36eddb6609
Коммит
35447d4c32
@ -1 +1,2 @@
|
|||||||
gef
|
gef
|
||||||
|
fagg
|
||||||
|
@ -91,8 +91,16 @@ mca_coll_tuned_bcast_intra_chain ( void *buff, int count,
|
|||||||
} else {
|
} else {
|
||||||
/* segment the message */
|
/* segment the message */
|
||||||
segcount = segsize / typelng;
|
segcount = segsize / typelng;
|
||||||
num_segments = count / segcount;
|
if (segcount > count) { /* we have a single underfilled segment */
|
||||||
if ((count % segcount)!= 0) num_segments++;
|
segcount = count;
|
||||||
|
num_segments = 1;
|
||||||
|
}
|
||||||
|
else { /* multiple segments */
|
||||||
|
num_segments = count / segcount;
|
||||||
|
if ((count % segcount)!= 0) {
|
||||||
|
num_segments++; /* left overs partly fill extra seg at end */
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = ompi_ddt_get_extent (datatype, &lb, &type_extent);
|
err = ompi_ddt_get_extent (datatype, &lb, &type_extent);
|
||||||
@ -534,8 +542,16 @@ mca_coll_tuned_bcast_intra_bintree ( void* buffer,
|
|||||||
} else {
|
} else {
|
||||||
/* segment the message */
|
/* segment the message */
|
||||||
segcount = segsize / type_size;
|
segcount = segsize / type_size;
|
||||||
num_segments = count / segcount;
|
if (segcount > count) { /* we have a single underfilled segment */
|
||||||
if ((count % segcount)!= 0) num_segments++;
|
segcount = count;
|
||||||
|
num_segments = 1;
|
||||||
|
}
|
||||||
|
else { /* multiple segments */
|
||||||
|
num_segments = count / segcount;
|
||||||
|
if ((count % segcount)!= 0) {
|
||||||
|
num_segments++; /* left overs partly fill extra seg at end */
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = ompi_ddt_get_extent (datatype, &lb, &type_extent);
|
err = ompi_ddt_get_extent (datatype, &lb, &type_extent);
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user