$extrastylesheet
|
Dakota
Version 6.2
|
Container class for the data associated with a single level of communicator partitioning. More...
Public Member Functions | |
| ParallelLevel () | |
| default constructor | |
| ParallelLevel (const ParallelLevel &pl) | |
| copy constructor | |
| ~ParallelLevel () | |
| destructor | |
| ParallelLevel & | operator= (const ParallelLevel &pl) |
| assignment operator | |
| bool | dedicated_master () const |
| return dedicatedMasterFlag | |
| bool | communicator_split () const |
| return commSplitFlag | |
| bool | server_master () const |
| return serverMasterFlag | |
| bool | message_pass () const |
| return messagePass | |
| bool | idle_partition () const |
| return idlePartition | |
| int | num_servers () const |
| return numServers | |
| int | processors_per_server () const |
| return procsPerServer | |
| int | processor_remainder () const |
| return procRemainder | |
| const MPI_Comm & | server_intra_communicator () const |
| return serverIntraComm | |
| int | server_communicator_rank () const |
| return serverCommRank | |
| int | server_communicator_size () const |
| return serverCommSize | |
| const MPI_Comm & | hub_server_intra_communicator () const |
| return hubServerIntraComm | |
| int | hub_server_communicator_rank () const |
| return hubServerCommRank | |
| int | hub_server_communicator_size () const |
| return hubServerCommSize | |
| const MPI_Comm & | hub_server_inter_communicator () const |
| return hubServerInterComm | |
| MPI_Comm * | hub_server_inter_communicators () const |
| return hubServerInterComms | |
| int | server_id () const |
| return serverId | |
| void | read (MPIUnpackBuffer &s) |
| read a ParallelLevel object from a packed MPI buffer | |
| void | write (MPIPackBuffer &s) const |
| write a ParallelLevel object to a packed MPI buffer | |
| void | clear () |
| deallocate the communicators in this ParallelLevel | |
Private Member Functions | |
| void | assign (const ParallelLevel &pl) |
| assign the attributes of the incoming pl to this object | |
Private Attributes | |
| bool | dedicatedMasterFlag |
| signals dedicated master partitioning | |
| bool | commSplitFlag |
| signals a communicator split was used | |
| bool | serverMasterFlag |
| identifies master server processors | |
| bool | messagePass |
| flag for message passing at this level | |
| bool | idlePartition |
| identifies presence of an idle processor < partition at this level | |
| int | numServers |
| number of servers | |
| int | procsPerServer |
| processors per server | |
| int | procRemainder |
| proc remainder after equal distribution | |
| int | serverId |
| server identifier | |
| MPI_Comm | serverIntraComm |
| intracomm. for each server partition | |
| int | serverCommRank |
| rank in serverIntraComm | |
| int | serverCommSize |
| size of serverIntraComm | |
| MPI_Comm | hubServerIntraComm |
| intracomm for all serverCommRank==0 < w/i next higher level serverIntraComm | |
| int | hubServerCommRank |
| rank in hubServerIntraComm | |
| int | hubServerCommSize |
| size of hubServerIntraComm | |
| MPI_Comm | hubServerInterComm |
| intercomm. between a server & the hub < (on server partitions only) | |
| MPI_Comm * | hubServerInterComms |
| intercomm. array on hub processor | |
Friends | |
| class | ParallelLibrary |
| the ParallelLibrary class has special access priveleges in order to streamline implementation | |
Container class for the data associated with a single level of communicator partitioning.
A list of these levels is contained in ParallelLibrary (ParallelLibrary::parallelLevels), which defines all of the parallelism levels across one or more multilevel parallelism configurations.
| void clear | ( | ) | [inline] |
deallocate the communicators in this ParallelLevel
This appears to be more robust outside of the destructor due to interactions among managed deallocation and default deallocation (e.g., explicitly freeing a communicator and then default deallocating its handle).
References ParallelLevel::commSplitFlag, ParallelLevel::dedicatedMasterFlag, ParallelLevel::hubServerInterComm, ParallelLevel::hubServerInterComms, ParallelLevel::hubServerIntraComm, ParallelLevel::idlePartition, ParallelLevel::numServers, ParallelLevel::serverId, and ParallelLevel::serverIntraComm.
1.7.6.1