-
Notifications
You must be signed in to change notification settings - Fork 8
JJL paper brainstorm
Jonathan Lifflander edited this page Jul 28, 2020
·
11 revisions
- Asynchronous execution of "tasks" mapped dynamically to nodes/ranks
- Built-by-design to be highly interoperable with MPI
- Low-overhead and simple transition between MPI and vt, expected to occur every timestep, both can be active and work together
- Constructs in vt have symmetrical use in MPI (example: vt groups and MPI groups)
- Safe MPI collectives through consensus amidst an asynchronous, dynamic scheduler (novel?)
- Completion and ordering
-
PendingSend
/DependentSendChain
: task graph can expand beyond what is ready-to-run (RT system has lookahead) - Control and data completion are intrinsically bound together through epochs
- Epochs form a graph that groups sets of tasks in the task graph
- Multi-algorithm, lightweight, scalable termination detection of epochs
- Epoch graph re-structuring optimizations; transitive dependency elimination? termination.cc:904
- IntegralSet data structure to compactly store a set of compact ranges of integers
-
- Collective Design
- Many interfaces in vt have collective interfaces to simplify use for MPI users (and reduce rooted overhead)
-
CollectionChainSet
: drive collections of tasks collectively and asynchronously alongside MPI - Collective group creation voting algorithm (novel?) for efficiently building spanning trees across a subset of nodes group_info_collective.cc:258
- Load models
- Python simulator framework (LBAF)
- Algorithm improvements to
GossipLB
- EMPIRE as a use case
- Performance results for some key problems
- Transition between MPI and VT each timestep
- NimbleSM?
- C++14 adherence
- Wide and older compiler support
- Static template registration pattern for safe handler dispatch across memory spaces