Thread-safety in an MPI implementation: Requirements and analysis
The MPI-2 Standard has carefully specified the interaction between MPI and user-created threads. The goal of this specification is to allow users to write multithreaded MPI programs while also allowing MPI implementations to deliver high performance. However, a simple reading of the thread-safety sp...
Uloženo v:
| Vydáno v: | Parallel computing Ročník 33; číslo 9; s. 595 - 604 |
|---|---|
| Hlavní autoři: | , |
| Médium: | Journal Article |
| Jazyk: | angličtina |
| Vydáno: |
United States
Elsevier B.V
01.09.2007
|
| Témata: | |
| ISSN: | 0167-8191, 1872-7336 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | The MPI-2 Standard has carefully specified the interaction between MPI and user-created threads. The goal of this specification is to allow users to write multithreaded MPI programs while also allowing MPI implementations to deliver high performance. However, a simple reading of the thread-safety specification does not reveal what its implications are for an implementation and what implementers must be aware (and careful) of. In this paper, we describe and analyze what the MPI Standard says about thread-safety and what it implies for an implementation. We classify the MPI functions based on their thread-safety requirements and discuss several issues to consider when implementing thread-safety in MPI. We use the example of generating new context ids (required for creating new communicators) to demonstrate how a simple solution for the single-threaded case does not naturally extend to the multithreaded case and how a naïve thread-safe algorithm can be expensive. We then present an algorithm for generating context ids that works efficiently in both single-threaded and multithreaded cases. |
|---|---|
| AbstractList | The MPI-2 Standard has carefully specified the interaction between MPI and user-created threads. The goal of this specification is to allow users to write multithreaded MPI programs while also allowing MPI implementations to deliver high performance. However, a simple reading of the thread-safety specification does not reveal what its implications are for an implementation and what implementers must be aware (and careful) of. In this paper, we describe and analyze what the MPI Standard says about thread-safety and what it implies for an implementation. We classify the MPI functions based on their thread-safety requirements and discuss several issues to consider when implementing thread-safety in MPI. We use the example of generating new context ids (required for creating new communicators) to demonstrate how a simple solution for the single-threaded case does not naturally extend to the multithreaded case and how a naove thread-safe algorithm can be expensive. We then present an algorithm for generating context ids that works efficiently in both single-threaded and multithreaded cases. The MPI-2 Standard has carefully specified the interaction between MPI and user-created threads. The goal of this specification is to allow users to write multithreaded MPI programs while also allowing MPI implementations to deliver high performance. However, a simple reading of the thread-safety specification does not reveal what its implications are for an implementation and what implementers must be aware (and careful) of. In this paper, we describe and analyze what the MPI Standard says about thread-safety and what it implies for an implementation. We classify the MPI functions based on their thread-safety requirements and discuss several issues to consider when implementing thread-safety in MPI. We use the example of generating new context ids (required for creating new communicators) to demonstrate how a simple solution for the single-threaded case does not naturally extend to the multithreaded case and how a naïve thread-safe algorithm can be expensive. We then present an algorithm for generating context ids that works efficiently in both single-threaded and multithreaded cases. |
| Author | Thakur, Rajeev Gropp, William |
| Author_xml | – sequence: 1 givenname: William surname: Gropp fullname: Gropp, William email: gropp@mcs.anl.gov – sequence: 2 givenname: Rajeev surname: Thakur fullname: Thakur, Rajeev email: thakur@mcs.anl.gov |
| BackLink | https://www.osti.gov/biblio/920216$$D View this record in Osti.gov |
| BookMark | eNqFkN1KAzEQhYMo2FafwJv1AXadJNvdRPCiFH8KFUXqdchmZ2nKNluTVejbm2298kJhhoHhfMOZMyanrnNIyBWFjAItbjbZTnvTZQygzIYCdkJGVJQsLTkvTskoqspUUEnPyTiEDQAUuYARma3WHnWdBt1gv0-sS7RLnl8Xid3uWtyi63VvO3ebvOHHp_WHTYiaOrZu98GGC3LW6Dbg5c-ckPeH-9X8KV2-PC7ms2VquJz2aS1zUUwrUTNuGloZwQRDlGUlsBZMNoimyHPONUAjDSs08KoAkTMJGqkWfEKuj3e70FsVjO3RrE3nHJpeSQaMFlHDjxrjuxA8Nmrn7Vb7vaKghqTURh2SUkNSaihgkZK_qHj88HbvtW3_Ye-OLMbXvyz6wRk6g3UMKxqrO_sn_w2rmodw |
| CitedBy_id | crossref_primary_10_1109_TPDS_2011_308 crossref_primary_10_1007_s10822_010_9373_1 crossref_primary_10_1016_j_parco_2008_12_013 crossref_primary_10_1109_TPDS_2018_2815568 crossref_primary_10_1145_2858788_2688522 crossref_primary_10_1145_3275443 crossref_primary_10_1016_j_micpro_2016_02_006 crossref_primary_10_1016_j_parco_2012_10_002 crossref_primary_10_1002_cpe_5158 crossref_primary_10_1177_1094342009360206 crossref_primary_10_1002_cpe_70158 crossref_primary_10_1088_1742_6596_1399_3_033037 |
| Cites_doi | 10.1007/3-540-48158-3_26 10.1006/jpdc.2000.1674 10.1109/MC.2006.180 10.1007/3-540-45825-5_46 10.1109/MPIDC.1996.534094 10.3167/092012906780646523 10.1109/CCGRID.2006.31 10.1145/377792.377895 |
| ContentType | Journal Article |
| Copyright | 2007 Elsevier B.V. |
| Copyright_xml | – notice: 2007 Elsevier B.V. |
| CorporateAuthor | Argonne National Lab. (ANL), Argonne, IL (United States) |
| CorporateAuthor_xml | – name: Argonne National Lab. (ANL), Argonne, IL (United States) |
| DBID | AAYXX CITATION OTOTI |
| DOI | 10.1016/j.parco.2007.07.002 |
| DatabaseName | CrossRef OSTI.GOV |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 1872-7336 |
| EndPage | 604 |
| ExternalDocumentID | 920216 10_1016_j_parco_2007_07_002 S0167819107000889 |
| GroupedDBID | --K --M -~X .DC .~1 0R~ 123 1B1 1~. 1~5 29O 4.4 457 4G. 5VS 6OB 7-5 71M 8P~ 9JN AACTN AAEDT AAEDW AAIAV AAIKJ AAKOC AALRI AAOAW AAQFI AAQXK AAXUO AAYFN ABBOA ABEFU ABFNM ABJNI ABMAC ABXDB ABYKQ ACDAQ ACGFS ACNNM ACRLP ACZNC ADBBV ADEZE ADJOM ADMUD ADTZH AEBSH AECPX AEKER AENEX AFKWA AFTJW AGHFR AGUBO AGYEJ AHHHB AHJVU AHZHX AIALX AIEXJ AIKHN AITUG AJBFU AJOXV ALMA_UNASSIGNED_HOLDINGS AMFUW AMRAJ AOUOD ASPBG AVWKF AXJTR AZFZN BJAXD BKOJK BLXMC CS3 DU5 EBS EFJIC EFLBG EJD EO8 EO9 EP2 EP3 F5P FDB FEDTE FGOYB FIRID FNPLU FYGXN G-Q G8K GBLVA GBOLZ HLZ HVGLF HZ~ H~9 IHE J1W JJJVA KOM LG9 M41 MO0 N9A O-L O9- OAUVE OZT P-8 P-9 P2P PC. Q38 R2- RIG ROL RPZ SBC SCC SDF SDG SDP SES SEW SPC SPCBC SST SSV SSZ T5K WH7 WUQ XPP ZMT ~G- 9DU AATTM AAXKI AAYWO AAYXX ABDPE ABWVN ACLOT ACRPL ACVFH ADCNI ADNMO AEIPS AEUPX AFJKZ AFPUW AGQPQ AIGII AIIUN AKBMS AKRWK AKYEP ANKPU APXCP CITATION EFKBS ~HD AALMO ABPIF ABPTK OTOTI |
| ID | FETCH-LOGICAL-c395t-d94865b8d23cf1bc8282ee97b8ed829feec64433a00f9c26a03b6084290ae1a83 |
| ISICitedReferencesCount | 24 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000250366000002&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 0167-8191 |
| IngestDate | Thu May 18 18:35:40 EDT 2023 Sat Nov 29 04:06:54 EST 2025 Tue Nov 18 22:41:43 EST 2025 Fri Feb 23 02:30:42 EST 2024 |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | 9 |
| Keywords | Message-passing interface (MPI) MPI implementation Multithreaded programming Thread-safety |
| Language | English |
| License | https://www.elsevier.com/tdm/userlicense/1.0 |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-c395t-d94865b8d23cf1bc8282ee97b8ed829feec64433a00f9c26a03b6084290ae1a83 |
| Notes | USDOE Office of Science (SC) DE-AC02-06CH11357 ANL/MCS/JA-59091 |
| PageCount | 10 |
| ParticipantIDs | osti_scitechconnect_920216 crossref_primary_10_1016_j_parco_2007_07_002 crossref_citationtrail_10_1016_j_parco_2007_07_002 elsevier_sciencedirect_doi_10_1016_j_parco_2007_07_002 |
| PublicationCentury | 2000 |
| PublicationDate | 2007-09-01 |
| PublicationDateYYYYMMDD | 2007-09-01 |
| PublicationDate_xml | – month: 09 year: 2007 text: 2007-09-01 day: 01 |
| PublicationDecade | 2000 |
| PublicationPlace | United States |
| PublicationPlace_xml | – name: United States |
| PublicationTitle | Parallel computing |
| PublicationYear | 2007 |
| Publisher | Elsevier B.V |
| Publisher_xml | – name: Elsevier B.V |
| References | MPICH2. D. Buntinas, G. Mercier, W. Gropp, Design and evaluation of Nemesis, a scalable, low-latency, message-passing communication subsystem, in: Proceedings of Sixth IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGrid 2006), May 2006. E.D. Demaine, A threads-only MPI implementation for the development of parallel programs, in: Proceedings of the 11th International Symposium on High Performance Computing Systems, July 1997, pp. 153–163. R. Thakur, W. Gropp, Test suite for evaluating performance of MPI implementations that support MPI_THREAD_MULTIPLE, Technical Report ANL/MCS-P1418-0507, Mathematics and Computer Science Division, Argonne National Laboratory, May 2007. F. Garcı´a, A. Calderón, J. Carretero, MiMPI: a multithread-safe implementation of MPI, in: Recent Advances in Parallel Virtual Machine and Message-Passing Interface, Proceedings of the Sixth European PVM/MPI Users’ Group Meeting, Lecture Notes in Computer Science 1697, Springer, September 1999, pp. 207–214. M.-S. Wu, S. Aluru, R.A.. Kendall, Mixed mode matrix multiplication, in: Proceedings of the IEEE International Conference on Cluster Computing (Cluster 2002), September 2002, pp. 195–203. . Protopopov, Skjellum (bib12) 2001; 61 S.G. Caglar, G.D. Benson, Qing Huang, C.-W. Chu, USFMPI: a multi-threaded implementation of MPI for Linux clusters, in: Proceedings of the IASTED Conference on Parallel and Distributed Computing and Systems, 2003. Holzmann (bib6) 2003 July 1997. Analysis of thread-safety needs of MPI routines Tomas Plachetka, (Quasi-) thread-safe PVM and (quasi-) thread-safe MPI without active polling, in: Recent Advances in Parallel Virtual Machine and Message-Passing Interface, 9th European PVM/MPI Users’ Group Meeting, Lecture Notes in Computer Science 2474, Springer, September 2002, pp. 296–305. Lee (bib7) 2006; 39 Message-Passing Interface Forum. MPI-2: Extensions to the Message-Passing Interface A. Skjellum, B. Protopopov, S. Hebert, A thread taxonomy for MPI, in: Proceedings of the Second MPI Developers Conference, June 1996, pp. 50–57. H. Tang, T. Yang, Optimizing threaded MPI execution on SMP clusters, in: Proceedings of the 15th ACM International Conference on Supercomputing, June 2001, pp. 381–392. Salman Pervez, Personal communication, 2006. Holzmann (10.1016/j.parco.2007.07.002_bib6) 2003 10.1016/j.parco.2007.07.002_bib16 Protopopov (10.1016/j.parco.2007.07.002_bib12) 2001; 61 10.1016/j.parco.2007.07.002_bib13 10.1016/j.parco.2007.07.002_bib14 10.1016/j.parco.2007.07.002_bib15 10.1016/j.parco.2007.07.002_bib10 10.1016/j.parco.2007.07.002_bib11 10.1016/j.parco.2007.07.002_bib8 Lee (10.1016/j.parco.2007.07.002_bib7) 2006; 39 10.1016/j.parco.2007.07.002_bib9 10.1016/j.parco.2007.07.002_bib3 10.1016/j.parco.2007.07.002_bib4 10.1016/j.parco.2007.07.002_bib5 10.1016/j.parco.2007.07.002_bib1 10.1016/j.parco.2007.07.002_bib2 |
| References_xml | – reference: Tomas Plachetka, (Quasi-) thread-safe PVM and (quasi-) thread-safe MPI without active polling, in: Recent Advances in Parallel Virtual Machine and Message-Passing Interface, 9th European PVM/MPI Users’ Group Meeting, Lecture Notes in Computer Science 2474, Springer, September 2002, pp. 296–305. – reference: A. Skjellum, B. Protopopov, S. Hebert, A thread taxonomy for MPI, in: Proceedings of the Second MPI Developers Conference, June 1996, pp. 50–57. – reference: H. Tang, T. Yang, Optimizing threaded MPI execution on SMP clusters, in: Proceedings of the 15th ACM International Conference on Supercomputing, June 2001, pp. 381–392. – reference: S.G. Caglar, G.D. Benson, Qing Huang, C.-W. Chu, USFMPI: a multi-threaded implementation of MPI for Linux clusters, in: Proceedings of the IASTED Conference on Parallel and Distributed Computing and Systems, 2003. – reference: Analysis of thread-safety needs of MPI routines, – reference: MPICH2. – reference: E.D. Demaine, A threads-only MPI implementation for the development of parallel programs, in: Proceedings of the 11th International Symposium on High Performance Computing Systems, July 1997, pp. 153–163. – reference: M.-S. Wu, S. Aluru, R.A.. Kendall, Mixed mode matrix multiplication, in: Proceedings of the IEEE International Conference on Cluster Computing (Cluster 2002), September 2002, pp. 195–203. – reference: F. Garcı´a, A. Calderón, J. Carretero, MiMPI: a multithread-safe implementation of MPI, in: Recent Advances in Parallel Virtual Machine and Message-Passing Interface, Proceedings of the Sixth European PVM/MPI Users’ Group Meeting, Lecture Notes in Computer Science 1697, Springer, September 1999, pp. 207–214. – volume: 39 start-page: 33 year: 2006 end-page: 42 ident: bib7 article-title: The problem with threads publication-title: Computer – reference: Message-Passing Interface Forum. MPI-2: Extensions to the Message-Passing Interface, – volume: 61 start-page: 449 year: 2001 end-page: 466 ident: bib12 article-title: A multithreaded message-passing interface (MPI) architecture: Performance and program issues publication-title: J. Parall. Distrib. Comput. – year: 2003 ident: bib6 article-title: The Spin Model Checker: Primer and Reference Manual – reference: , July 1997. – reference: . – reference: D. Buntinas, G. Mercier, W. Gropp, Design and evaluation of Nemesis, a scalable, low-latency, message-passing communication subsystem, in: Proceedings of Sixth IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGrid 2006), May 2006. – reference: Salman Pervez, Personal communication, 2006. – reference: R. Thakur, W. Gropp, Test suite for evaluating performance of MPI implementations that support MPI_THREAD_MULTIPLE, Technical Report ANL/MCS-P1418-0507, Mathematics and Computer Science Division, Argonne National Laboratory, May 2007. – ident: 10.1016/j.parco.2007.07.002_bib5 doi: 10.1007/3-540-48158-3_26 – volume: 61 start-page: 449 issue: 4 year: 2001 ident: 10.1016/j.parco.2007.07.002_bib12 article-title: A multithreaded message-passing interface (MPI) architecture: Performance and program issues publication-title: J. Parall. Distrib. Comput. doi: 10.1006/jpdc.2000.1674 – volume: 39 start-page: 33 issue: 5 year: 2006 ident: 10.1016/j.parco.2007.07.002_bib7 article-title: The problem with threads publication-title: Computer doi: 10.1109/MC.2006.180 – ident: 10.1016/j.parco.2007.07.002_bib11 doi: 10.1007/3-540-45825-5_46 – ident: 10.1016/j.parco.2007.07.002_bib15 – year: 2003 ident: 10.1016/j.parco.2007.07.002_bib6 – ident: 10.1016/j.parco.2007.07.002_bib13 doi: 10.1109/MPIDC.1996.534094 – ident: 10.1016/j.parco.2007.07.002_bib16 – ident: 10.1016/j.parco.2007.07.002_bib10 doi: 10.3167/092012906780646523 – ident: 10.1016/j.parco.2007.07.002_bib2 doi: 10.1109/CCGRID.2006.31 – ident: 10.1016/j.parco.2007.07.002_bib9 – ident: 10.1016/j.parco.2007.07.002_bib8 – ident: 10.1016/j.parco.2007.07.002_bib1 – ident: 10.1016/j.parco.2007.07.002_bib4 – ident: 10.1016/j.parco.2007.07.002_bib3 – ident: 10.1016/j.parco.2007.07.002_bib14 doi: 10.1145/377792.377895 |
| SSID | ssj0006480 |
| Score | 1.9556301 |
| Snippet | The MPI-2 Standard has carefully specified the interaction between MPI and user-created threads. The goal of this specification is to allow users to write... |
| SourceID | osti crossref elsevier |
| SourceType | Open Access Repository Enrichment Source Index Database Publisher |
| StartPage | 595 |
| SubjectTerms | 97 ALGORITHMS DATA TRANSMISSION GENERAL AND MISCELLANEOUS//MATHEMATICS, COMPUTING, AND INFORMATION SCIENCE IMPLEMENTATION Message-passing interface (MPI) MPI implementation Multithreaded programming SAFETY SPECIFICATIONS Thread-safety |
| Title | Thread-safety in an MPI implementation: Requirements and analysis |
| URI | https://dx.doi.org/10.1016/j.parco.2007.07.002 https://www.osti.gov/biblio/920216 |
| Volume | 33 |
| WOSCitedRecordID | wos000250366000002&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVESC databaseName: Elsevier SD Freedom Collection Journals 2021 customDbUrl: eissn: 1872-7336 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0006480 issn: 0167-8191 databaseCode: AIEXJ dateStart: 19950101 isFulltext: true titleUrlDefault: https://www.sciencedirect.com providerName: Elsevier |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1ba9swFBZbuoe9rLuy3oYe9rZ62JJtSX0LpWUdWwlrN_JmZFmGpMUJuZT-_J5jSU5CWNkGA2OMsBxH5_icT-LTdwj5WGbgGZAmoyQ1MEGxRkVKlkmUiFhVdQUps5Vr-vVNXF7K4VANfHmreVtOQDSNvL9X0_9qamgDY-PW2b8wd_dQaIBrMDqcwexw_kPDAw6sormukY05QrLxp--DC9wP6anigc_xwyIN2LpNbk601SmUrCPWgZ5huZXblny-XIRM11J2JtO2up1fs1lxTPTN0tG29djau42FBdExp_xq19aOF7cACYEVJ3kuf7igKQWgdO6ETEJUdfIW3nvUWojMXFFNn21zV3x4K5C7NYXx5yn4wMQrTaLYJFvlrY5NeIUvhe8E4StG2tZTssNEpmSP7PQvzoZfu9Scp20pve5PBBmqlvC39VO_gyq9CUTfNRRy_ZK88NMH2ndmf0We2OY12Q2lOaiP1G9If8ML6KihuqHgBXTTC07oug_APRUNPvCW_Dw_uz79EvlqGZHhKltElUplnpWyYtzUSWlgKs2sVaKUtpJM1dYawL6c6ziulWG5jnmZxxLwSKxtoiV_R3rNpLHvCU1tmTKTQyuv0gy-XyY0Dm3Na0A6Kd8jLAxMYbyUPFY0uS0CZ3BctKOJRU5FgUfM9shx12nqlFQevz0PI154MOhAXgEu8njHfbQPdkIZZIN8MeilGKDZfP9fn3pAnq--kUPSW8yW9og8M3eL0Xz2wfvZA28bi54 |
| linkProvider | Elsevier |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Thread-safety+in+an+MPI+implementation%3A+Requirements+and+analysis&rft.jtitle=Parallel+computing&rft.au=Gropp%2C+William&rft.au=Thakur%2C+Rajeev&rft.date=2007-09-01&rft.pub=Elsevier+B.V&rft.issn=0167-8191&rft.eissn=1872-7336&rft.volume=33&rft.issue=9&rft.spage=595&rft.epage=604&rft_id=info:doi/10.1016%2Fj.parco.2007.07.002&rft.externalDocID=S0167819107000889 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0167-8191&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0167-8191&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0167-8191&client=summon |