Advanced Thread Synchronization for Multithreaded MPI Implementations

被引:10
|
作者
Hoang-Vu Dang [1 ]
Seo, Sangmin [2 ]
Amer, Abdelhalim [2 ]
Balaji, Pavan [2 ]
机构
[1] Univ Illinois, Dept Comp Sci, Urbana, IL 61801 USA
[2] Argonne Natl Lab, Math & Comp Sci Div, 9700 S Cass Ave, Argonne, IL 60439 USA
来源
2017 17TH IEEE/ACM INTERNATIONAL SYMPOSIUM ON CLUSTER, CLOUD AND GRID COMPUTING (CCGRID) | 2017年
基金
美国国家科学基金会;
关键词
MPI; threads; OpenMP; thread safety; lock; mutex; synchronization;
D O I
10.1109/CCGRID.2017.65
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Concurrent multithreaded access to the Message Passing Interface (MPI) is gaining importance to support emerging hybrid MPI applications. The interoperability between threads and MPI, however, is complex and renders efficient implementations nontrivial. Prior studies showed that threads waiting for communication progress (waiting threads) often interfere with others (active threads) and degrade their progress. This situation occurs when both classes of threads compete for the same MPI resource and ownership passing to waiting threads does not guarantee communication to advance. The best-known practical solution prioritizes active threads and adapts first-infirst-out arbitration within each class. This approach, however, suffers from residual wasted resource acquisitions (waste) and ignores data locality, thus resulting in poor scalability. In this work, we propose thread synchronization improvements to eliminate waste while preserving data locality in a production MPI implementation. First, we leverage MPI knowledge and a fast synchronization method to eliminate waste and accelerate progress. Second, we rely on a cooperative progress model that dynamically elects and restricts a single waiting thread to drive a communication context for improved data locality. Third, we prioritize active threads and synchronize them with a localitypreserving lock that is hierarchical and exploits unbounded bias for high throughput. Results show significant improvement in synthetic microbenchmarks and two MPI+OpenMP applications.
引用
收藏
页码:314 / 324
页数:11
相关论文
共 50 条
  • [21] Revealing the performance of MPI RMA implementations
    Gropp, William D.
    Thakur, Rajeev
    RECENT ADVANCES IN PARALLEL VIRTUAL MACHINE AND MESSAGE PASSING INTERFACE, 2007, 4757 : 272 - 280
  • [22] Some New Approaches to MPI Implementations and a Possible Path to MPI Evolution
    Xiong, Yuqing
    2018 11TH INTERNATIONAL CONGRESS ON IMAGE AND SIGNAL PROCESSING, BIOMEDICAL ENGINEERING AND INFORMATICS (CISP-BMEI 2018), 2018,
  • [23] Hybrid MPI-OpenMP versus MPI Implementations: A Case Study
    Mangual, Osvaldo
    Teixeira, Marvi
    Lopez-Roig, Reynaldo
    Nevarez-Ayala, Felix Javier
    2014 ASEE ANNUAL CONFERENCE, 2014,
  • [24] Test suite for evaluating performance of multithreaded MPI communication
    Thakur, Rajeev
    Gropp, William
    PARALLEL COMPUTING, 2009, 35 (12) : 608 - 617
  • [25] MPI Thread-Level Checking for MPI plus OpenMP Applications
    Saillard, Emmanuelle
    Carribault, Patrick
    Barthou, Denis
    EURO-PAR 2015: PARALLEL PROCESSING, 2015, 9233 : 31 - 42
  • [26] Thread-associative memory for multicore and multithreaded computing
    Wang, Shuo
    Wang, Lei
    ISLPED '06: PROCEEDINGS OF THE 2006 INTERNATIONAL SYMPOSIUM ON LOW POWER ELECTRONICS AND DESIGN, 2006, : 139 - 142
  • [27] Thread Assignment in Multicore/Multithreaded Processors: A Statistical Approach
    Radojkovic, Petar
    Carpenter, Paul M.
    Moreto, Miguel
    Cakarevic, Vladimir
    Verdu, Javier
    Pajuelo, Alex
    Cazorla, Francisco J.
    Nemirovsky, Mario
    Valero, Mateo
    IEEE TRANSACTIONS ON COMPUTERS, 2016, 65 (01) : 256 - 269
  • [28] Round Robin Thread Selection Optimization in Multithreaded Processors
    Carroll, Shane
    Lin, Wei-Ming
    PARALLEL PROCESSING LETTERS, 2019, 29 (01)
  • [29] Testing Multithreaded Programs via Thread Speed Control
    Chen, Dongjie
    Jiang, Yanyan
    Xu, Chang
    Ma, Xiaoxing
    Lu, Jian
    ESEC/FSE'18: PROCEEDINGS OF THE 2018 26TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2018, : 15 - 25
  • [30] A thread monitoring system for multithreaded Java']Java programs
    Moon, Sewon
    Chang, Byeong-Mo
    ACM SIGPLAN NOTICES, 2006, 41 (05) : 21 - 29