Abstract
The growth in size of networked high performance computers along with novel accelerator-based node architectures has further emphasized the importance of communication efficiency in high performance computing. The world’s largest high performance computers are usually operated as shared user facilities due to the costs of acquisition and operation. Applications are scheduled for execution in a shared environment and are placed on nodes that are not necessarily contiguous on the interconnect. Furthermore, the placement of tasks on the nodes allocated by the scheduler is sub-optimal, leading to performance loss and variability. Here, we investigate the impact of task placement on the performance of two massively parallel application codes on the Titan supercomputer, a turbulent combustion flow solver (S3D) and a molecular dynamics code (LAMMPS). Benchmark studies show a significant deviation from ideal weak scaling and variability in performance. The inter-task communication distance was determined to be one of the significant contributors to the performance degradation and variability. A genetic algorithm-based parallel optimization technique was used to optimize the task ordering. This technique provides an improved placement of the tasks on the nodes, taking into account the application’s communication topology and the system interconnect topology. Application benchmarks after task reordering through genetic algorithm show a significant improvement in performance and reduction in variability, thereby enabling the applications to achieve better time to solution and scalability on Titan during production.
Original language | English |
---|---|
Pages (from-to) | 4763-4783 |
Number of pages | 21 |
Journal | Concurrency and Computation: Practice and Experience |
Volume | 27 |
Issue number | 17 |
DOIs | |
State | Published - Dec 10 2015 |
Bibliographical note
Publisher Copyright:© 2015 John Wiley & Sons, Ltd.
Keywords
- Communication Topology
- Genetic algorithm
- Optimization
- Performance variability
- Task mapping