SST has a
Created by: pnorbert
SST has the same scalability issue that InsituMPI had in Fix scalability bottleneck in InSituMPIReader PR #863
"Currently, the reader receives and deserializes messages from each writer one by one. This design is limiting the scalability in terms of the number of writers per reader. Need to change the behavior to a bulk receive followed by a bulk deserialization."
ffs_marshal.c:
static SstStatusValue WaitForReadRequests(SstStream Stream)
{
struct FFSReaderMarshalBase *Info = Stream->ReaderMarshalData;
for (int i = 0; i < Stream->WriterCohortSize; i++)
{
if (Info->WriterInfo[i].Status == Requested)
{
SstStatusValue Result =
SstWaitForCompletion(Stream, Info->WriterInfo[i].ReadHandle);
if (Result == SstSuccess)
{
Info->WriterInfo[i].Status = Full;
DecodeAndPrepareData(Stream, i);
}
else
{
CP_verbose(Stream, "Wait for remote read completion failed, "
"returning failure\n");
return Result;
}
}
}
CP_verbose(Stream, "All remote memory reads completed\n");
return SstSuccess;
}
Similarly, this needs to be checked for BP marshalling.