An Optimal Algorithm for Extreme Scale Job Launching - Goehner, Joshua D.; Groves, Taylor L.; Arnold, Dorian C.; Ahn, Dong H.; Lee, Gregory L. (IEEE ... International Conference on Trust, Security and Privacy in Computing and Communications (Online), 2013)
All distributed software systems execute a bootstrapping phase upon instantiation. During this phase, the composite processes of the system are deployed onto a set of computational nodes and initialization information is disseminated amongst these processes. However, with the growing trend toward high-end systems with very large numbers of compute cores, the bootstrapping phase increasingly is becoming a bottleneck. This presents significant challenges to several key elements of extreme-scale machines: the usefulness of interactive run-time tools and the efficiency of newly emerging computational models such as many-task computing and uncertainty quantification runs are increasingly subject to the inefficient bootstrapping problem. In this paper, we propose a novel algorithm that determines an optimal bootstrapping strategy. Our algorithm is based on a process launch performance model and finds the optimal strategy given a specified set of nodes. We prove that our process launching strategy is optimal with empirical comparisons with other standard strategies. Lastly, we show that our algorithm can decrease bootstrapping time in a real software system by up to 50%.