TY - GEN
T1 - Parsl
T2 - 28th ACM International Symposium on High-Performance Parallel and Distributed Computing, HPDC 2019
AU - Babuji, Yadu
AU - Woodard, Anna
AU - Li, Zhuozhao
AU - Katz, Daniel S.
AU - Clifford, Ben
AU - Kumar, Rohan
AU - Lacinski, Lukasz
AU - Chard, Ryan
AU - Wozniak, Justin M.
AU - Foster, Ian
AU - Wilde, Michael
AU - Chard, Kyle
N1 - Publisher Copyright:
© 2019 Association for Computing Machinery.
PY - 2019/6/17
Y1 - 2019/6/17
N2 - High-level programming languages such as Python are increasingly used to provide intuitive interfaces to libraries written in lower-level languages and for assembling applications from various components. This migration towards orchestration rather than implementation, coupled with the growing need for parallel computing (e.g., due to big data and the end of Moore's law), necessitates rethinking how parallelism is expressed in programs. Here, we present Parsl, a parallel scripting library that augments Python with simple, scalable, and flexible constructs for encoding parallelism. These constructs allow Parsl to construct a dynamic dependency graph of components that it can then execute efficiently on one or many processors. Parsl is designed for scalability, with an extensible set of executors tailored to different use cases, such as low-latency, high-throughput, or extreme-scale execution. We show, via experiments on the Blue Waters supercomputer, that Parsl executors can allow Python scripts to execute components with as little as 5 ms of overhead, scale to more than 250 000 workers across more than 8000 nodes, and process upward of 1200 tasks per second. Other Parsl features simplify the construction and execution of composite programs by supporting elastic provisioning and scaling of infrastructure, fault-tolerant execution, and integrated wide-area data management. We show that these capabilities satisfy the needs of many-task, interactive, online, and machine learning applications in fields such as biology, cosmology, and materials science.
AB - High-level programming languages such as Python are increasingly used to provide intuitive interfaces to libraries written in lower-level languages and for assembling applications from various components. This migration towards orchestration rather than implementation, coupled with the growing need for parallel computing (e.g., due to big data and the end of Moore's law), necessitates rethinking how parallelism is expressed in programs. Here, we present Parsl, a parallel scripting library that augments Python with simple, scalable, and flexible constructs for encoding parallelism. These constructs allow Parsl to construct a dynamic dependency graph of components that it can then execute efficiently on one or many processors. Parsl is designed for scalability, with an extensible set of executors tailored to different use cases, such as low-latency, high-throughput, or extreme-scale execution. We show, via experiments on the Blue Waters supercomputer, that Parsl executors can allow Python scripts to execute components with as little as 5 ms of overhead, scale to more than 250 000 workers across more than 8000 nodes, and process upward of 1200 tasks per second. Other Parsl features simplify the construction and execution of composite programs by supporting elastic provisioning and scaling of infrastructure, fault-tolerant execution, and integrated wide-area data management. We show that these capabilities satisfy the needs of many-task, interactive, online, and machine learning applications in fields such as biology, cosmology, and materials science.
KW - Parallel programming
KW - Parsl
KW - Python
UR - http://www.scopus.com/inward/record.url?scp=85069157373&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85069157373&partnerID=8YFLogxK
U2 - 10.1145/3307681.3325400
DO - 10.1145/3307681.3325400
M3 - Conference contribution
AN - SCOPUS:85069157373
T3 - HPDC 2019- Proceedings of the 28th International Symposium on High-Performance Parallel and Distributed Computing
SP - 25
EP - 36
BT - HPDC 2019- Proceedings of the 28th International Symposium on High-Performance Parallel and Distributed Computing
PB - Association for Computing Machinery
Y2 - 22 June 2019 through 29 June 2019
ER -