Analysis of Threading Libraries for High Performance Computing

作者: Adrian Castello , Rafael Mayo Gual , Sangmin Seo , Pavan Balaji , Enrique S. Quintana-Orti

DOI: 10.1109/TC.2020.2970706

关键词: Programming paradigmConcurrent computingParallel computingComputer scienceApplication programming interfaceThread (computing)POSIX ThreadsSupercomputerConcurrencyInstruction setTheoretical computer scienceHardware and ArchitectureComputational Theory and MathematicsSoftware

摘要: With the appearance of multi-/many core machines, applications and runtime systems have evolved in order to exploit new on-node concurrency brought by software paradigms. POSIX threads (Pthreads) was widely-adopted for that purpose it remains as most used threading solution current hardware. Lightweight thread (LWT) libraries emerged an alternative offering lighter mechanisms tackle massive In this article, we analyze detail representative including Pthread- LWT-based solutions. addition, examine suitability LWTs different use cases, develop a set microbenchmarks consisting OpenMP patterns commonly found parallel codes, compare results using implementations. Moreover, study semantics offered expose similarities among LWT application programming interfaces their advantages over Pthreads. This article exposes outperform solutions based on operating system when tasks nested parallelism are required.

参考文章(21)
L.V. Kale, M. Bhandarkar, N. Jagathesan, S. Krishnan, J. Yelon, Converse: an interoperable framework for parallel programming international conference on parallel processing. pp. 212- 217 ,(1996) , 10.1109/IPPS.1996.508060
Marc Pérache, Hervé Jourdren, Raymond Namyst, MPC: A Unified Parallel Runtime for Clusters of NUMA Machines european conference on parallel processing. ,vol. 5168, pp. 78- 88 ,(2008) , 10.1007/978-3-540-85451-7_9
L. V. Kalé, J. Yelon, T. Knauff, Threads for interoperable parallel programming Languages and Compilers for Parallel Computing. pp. 534- 552 ,(1997) , 10.1007/BFB0017274
Robert D. Blumofe, Christopher F. Joerg, Bradley C. Kuszmaul, Charles E. Leiserson, Keith H. Randall, Yuli Zhou, Cilk: An Efficient Multithreaded Runtime System Journal of Parallel and Distributed Computing. ,vol. 37, pp. 55- 69 ,(1996) , 10.1006/JPDC.1996.0107
Frank Schmager, Nicholas Cameron, James Noble, GoHotDraw Evaluation and Usability of Programming Languages and Tools on - PLATEAU '10. pp. 10- ,(2010) , 10.1145/1937117.1937127
Laxmikant V. Kale, Sanjeev Krishnan, CHARM++ Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications - OOPSLA '93. ,vol. 28, pp. 91- 108 ,(1993) , 10.1145/165854.165874
Kyle B. Wheeler, Richard C. Murphy, Douglas Thain, Qthreads: An API for programming with millions of lightweight threads international parallel and distributed processing symposium. pp. 1- 8 ,(2008) , 10.1109/IPDPS.2008.4536359
Kenjiro Taura, Kunio Tabata, Akinori Yonezawa, StackThreads/MP: integrating futures into calling standards acm sigplan symposium on principles and practice of parallel programming. ,vol. 34, pp. 60- 71 ,(1999) , 10.1145/301104.301110
ALEJANDRO DURAN, EDUARD AYGUADÉ, ROSA M. BADIA, JESÚS LABARTA, LUIS MARTINELL, XAVIER MARTORELL, JUDIT PLANAS, OmpSs: A proposal for programming heterogeneous multi-core architectures Parallel Processing Letters. ,vol. 21, pp. 173- 193 ,(2011) , 10.1142/S0129626411000151
Jun Nakashima, Kenjiro Taura, MassiveThreads: A Thread Library for High Productivity Languages Concurrent Objects and Beyond. pp. 222- 238 ,(2014) , 10.1007/978-3-662-44471-9_10