Load Balancing Scientific Applications
Abstract
The largest supercomputers have millions of independent processors, and concurrency levels are rapidly increasing. For ideal efficiency, developers of the simulations that run on these machines must ensure that computational work is evenly balanced among processors. Assigning work evenly is challenging because many large modern parallel codes simulate behavior of physical systems that evolve over time, and their workloads change over time. Furthermore, the cost of imbalanced load increases with scale because most large-scale scientific simulations today use a Single Program Multiple Data (SPMD) parallel programming model, and an increasing number of processors will wait for the slowest one at the synchronization points. To address load imbalance, many large-scale parallel applications use dynamic load balance algorithms to redistribute work evenly. The research objective of this dissertation is to develop methods to decide when and how to load balance the application, and to balance it effectively and affordably. We measure and evaluate the computational load of the application, and develop strategies to decide when and how to correct the imbalance. Depending on the simulation, a fast, local load balance algorithm may be suitable, or a more sophisticated and expensive algorithm may be required. We developed a model for comparison of loadmore »
- Authors:
-
- Texas A & M Univ., College Station, TX (United States)
- Publication Date:
- Research Org.:
- Lawrence Livermore National Lab. (LLNL), Livermore, CA (United States)
- Sponsoring Org.:
- USDOE
- OSTI Identifier:
- 1178404
- Report Number(s):
- LLNL-TH-663256
- DOE Contract Number:
- AC52-07NA27344
- Resource Type:
- Thesis/Dissertation
- Country of Publication:
- United States
- Language:
- English
- Subject:
- 97 MATHEMATICS, COMPUTING, AND INFORMATION SCIENCE
Citation Formats
Pearce, Olga Tkachyshyn. Load Balancing Scientific Applications. United States: N. p., 2014.
Web. doi:10.2172/1178404.
Pearce, Olga Tkachyshyn. Load Balancing Scientific Applications. United States. https://doi.org/10.2172/1178404
Pearce, Olga Tkachyshyn. 2014.
"Load Balancing Scientific Applications". United States. https://doi.org/10.2172/1178404. https://www.osti.gov/servlets/purl/1178404.
@article{osti_1178404,
title = {Load Balancing Scientific Applications},
author = {Pearce, Olga Tkachyshyn},
abstractNote = {The largest supercomputers have millions of independent processors, and concurrency levels are rapidly increasing. For ideal efficiency, developers of the simulations that run on these machines must ensure that computational work is evenly balanced among processors. Assigning work evenly is challenging because many large modern parallel codes simulate behavior of physical systems that evolve over time, and their workloads change over time. Furthermore, the cost of imbalanced load increases with scale because most large-scale scientific simulations today use a Single Program Multiple Data (SPMD) parallel programming model, and an increasing number of processors will wait for the slowest one at the synchronization points. To address load imbalance, many large-scale parallel applications use dynamic load balance algorithms to redistribute work evenly. The research objective of this dissertation is to develop methods to decide when and how to load balance the application, and to balance it effectively and affordably. We measure and evaluate the computational load of the application, and develop strategies to decide when and how to correct the imbalance. Depending on the simulation, a fast, local load balance algorithm may be suitable, or a more sophisticated and expensive algorithm may be required. We developed a model for comparison of load balance algorithms for a specific state of the simulation that enables the selection of a balancing algorithm that will minimize overall runtime.},
doi = {10.2172/1178404},
url = {https://www.osti.gov/biblio/1178404},
journal = {},
number = ,
volume = ,
place = {United States},
year = {Mon Dec 01 00:00:00 EST 2014},
month = {Mon Dec 01 00:00:00 EST 2014}
}