mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: direct support for broadcast of bitSet
- the internal data are contiguous so can broadcast size and internals directly without an intermediate stream. ENH: split out broadcast time for profilingPstream information STYLE: minor Pstream cleanup - UPstream::commsType_ from protected to private, since it already has inlined noexcept getters/setters that should be used. - don't pass unused/unneed tag into low-level MPI reduction templates. Document where tags are not needed - had Pstream::broadcast instead of UPstream::broadcast in internals
This commit is contained in:
committed by
Andrew Heather
parent
341d9c402d
commit
e11fde900c
@ -34,6 +34,7 @@ Description
|
||||
#include "List.H"
|
||||
#include "argList.H"
|
||||
#include "Time.H"
|
||||
#include "bitSet.H"
|
||||
#include "vector.H"
|
||||
#include "IPstream.H"
|
||||
#include "OPstream.H"
|
||||
@ -74,6 +75,16 @@ void testBroadcast(List<T>& values)
|
||||
}
|
||||
|
||||
|
||||
void testBroadcast(bitSet& values)
|
||||
{
|
||||
Pout<< "pre-broadcast: "
|
||||
<< values.size() << ": " << flatOutput(values.values()) << endl;
|
||||
Pstream::broadcast(values);
|
||||
Pout<< "post-broadcast: "
|
||||
<< values.size() << ": " << flatOutput(values.values()) << endl;
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
@ -149,6 +160,22 @@ int main(int argc, char *argv[])
|
||||
testBroadcast(values);
|
||||
}
|
||||
|
||||
{
|
||||
bitSet values;
|
||||
if (Pstream::master())
|
||||
{
|
||||
values.set(labelList({1, 4, 8}));
|
||||
values.resize(10);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Just something different
|
||||
values.set(labelList({0, 2}));
|
||||
values.resize(5);
|
||||
}
|
||||
testBroadcast(values);
|
||||
}
|
||||
|
||||
Info<< "End\n" << endl;
|
||||
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user