| POOMA: A C++ Toolkit for High-Performance Parallel Scientific Computing | ||
|---|---|---|
| Prev | Appendix C. UML Class Diagrams | Next |
In this section, we present UML class diagrams for the classes used when declaring distributed computation. We use abbreviations in parameter lists:
Table C-1. Abbreviations
| abbreviation | meaning |
|---|---|
| CM | ContextMapper |
| DT | DistributedTag |
| GL | GuardLayers |
| Iv | Interval |
| List_t | std::vector of pointers to Nodes of Domains |
| PatchList_t | std::vector of Interval<Dim>s |
| RT | ReplicatedTag |
| SpTlLa | SparseTileLayout |
Partitions specify how a domain will be split into patches, or pieces. Figure C-21 introduces the abstract "Partition" class. The class exists only conceptually, not appearing in any source code. Instead four classes, appearing in subsequent diagrams, realize it. Even though users rarely use any of their member functions, the diagrams list them. All files are relative to the src/Partition subdirectory.
Guard layers surround domains and patches to ease programming and decrease communication. We list more member functions than most users require. All files are relative to the src/Layout subdirectory.
A layout maps a domain index to processors and memory used to compute the associated value. There is no base class so we just present the class diagrams. We list only member functions related to construction, destruction, and printing since those are the functions that almost all users use. All files are relative to the src/Layout subdirectory.
Context mappers map domain patches to contexts. Effectively, they map pieces of a domain to processors. Even though users rarely use any of their member functions, the diagrams list them. The type List_t abbreviates an std::vector of pointers to Nodes of Domains. GL abbreviates GuardLayers. All files are relative to the src/Partition subdirectory.