Combining Symbolic Execution and Model Checking to Verify MPI Programs
Message passing is the standard paradigm of programming in high-performance computing. However, verifying Message Passing Interface (MPI) programs is challenging, due to the complex program features (such as non-determinism and non-blocking operations). In this work, we present MPI symbolic verifier...
Gespeichert in:
Hauptverfasser: | , , , , , , , |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
container_end_page | |
---|---|
container_issue | |
container_start_page | |
container_title | |
container_volume | |
creator | Yu, Hengbiao Chen, Zhenbang Fu, Xianjin Wang, Ji Su, Zhendong Sun, Jun Huang, Chun Dong, Wei |
description | Message passing is the standard paradigm of programming in high-performance
computing. However, verifying Message Passing Interface (MPI) programs is
challenging, due to the complex program features (such as non-determinism and
non-blocking operations). In this work, we present MPI symbolic verifier
(MPI-SV), the first symbolic execution based tool for automatically verifying
MPI programs with non-blocking operations. MPI-SV combines symbolic execution
and model checking in a synergistic way to tackle the challenges in MPI program
verification. The synergy improves the scalability and enlarges the scope of
verifiable properties. We have implemented MPI-SV (footnote:
https://mpi-sv.github.io) and evaluated it with 111 real-world MPI verification
tasks. The pure symbolic execution-based technique successfully verifies 61 out
of the 111 tasks (55\%) within one hour, while in comparison, MPI-SV verifies
100 tasks (90\%). On average, compared with pure symbolic execution, MPI-SV
achieves 19x speedups on verifying the satisfaction of the critical property
and 5x speedups on finding violations. |
doi_str_mv | 10.48550/arxiv.1803.06300 |
format | Article |
fullrecord | <record><control><sourceid>arxiv_GOX</sourceid><recordid>TN_cdi_arxiv_primary_1803_06300</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>1803_06300</sourcerecordid><originalsourceid>FETCH-LOGICAL-a670-6ccc2461a6ab2ad0568a03fd28a4ac0b9b25ba1c1a2a49fe76936ef05ccec36d3</originalsourceid><addsrcrecordid>eNotz7FOwzAUhWEvDKjwAEz4BRKu7dhNRhS1UKkVlahYo-tru1gkMXILat4etXQ6y68jfYw9CCirWmt4wnyKv6WoQZVgFMAtW7ZpsHGM456_T4NNfSS-OHn6OcY0chwd3yTne95-evo6V8fEP3yOYeKb7Ypvc9pnHA537CZgf_D3152x3XKxa1-L9dvLqn1eF2jmUBgikpURaNBKdKBNjaCCkzVWSGAbK7VFQQIlVk3wc9Mo4wNoIk_KODVjj_-3F0j3neOAeerOoO4CUn_IlEYp</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>Combining Symbolic Execution and Model Checking to Verify MPI Programs</title><source>arXiv.org</source><creator>Yu, Hengbiao ; Chen, Zhenbang ; Fu, Xianjin ; Wang, Ji ; Su, Zhendong ; Sun, Jun ; Huang, Chun ; Dong, Wei</creator><creatorcontrib>Yu, Hengbiao ; Chen, Zhenbang ; Fu, Xianjin ; Wang, Ji ; Su, Zhendong ; Sun, Jun ; Huang, Chun ; Dong, Wei</creatorcontrib><description>Message passing is the standard paradigm of programming in high-performance
computing. However, verifying Message Passing Interface (MPI) programs is
challenging, due to the complex program features (such as non-determinism and
non-blocking operations). In this work, we present MPI symbolic verifier
(MPI-SV), the first symbolic execution based tool for automatically verifying
MPI programs with non-blocking operations. MPI-SV combines symbolic execution
and model checking in a synergistic way to tackle the challenges in MPI program
verification. The synergy improves the scalability and enlarges the scope of
verifiable properties. We have implemented MPI-SV (footnote:
https://mpi-sv.github.io) and evaluated it with 111 real-world MPI verification
tasks. The pure symbolic execution-based technique successfully verifies 61 out
of the 111 tasks (55\%) within one hour, while in comparison, MPI-SV verifies
100 tasks (90\%). On average, compared with pure symbolic execution, MPI-SV
achieves 19x speedups on verifying the satisfaction of the critical property
and 5x speedups on finding violations.</description><identifier>DOI: 10.48550/arxiv.1803.06300</identifier><language>eng</language><subject>Computer Science - Programming Languages</subject><creationdate>2018-03</creationdate><rights>http://arxiv.org/licenses/nonexclusive-distrib/1.0</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>228,230,776,881</link.rule.ids><linktorsrc>$$Uhttps://arxiv.org/abs/1803.06300$$EView_record_in_Cornell_University$$FView_record_in_$$GCornell_University$$Hfree_for_read</linktorsrc><backlink>$$Uhttps://doi.org/10.48550/arXiv.1803.06300$$DView paper in arXiv$$Hfree_for_read</backlink></links><search><creatorcontrib>Yu, Hengbiao</creatorcontrib><creatorcontrib>Chen, Zhenbang</creatorcontrib><creatorcontrib>Fu, Xianjin</creatorcontrib><creatorcontrib>Wang, Ji</creatorcontrib><creatorcontrib>Su, Zhendong</creatorcontrib><creatorcontrib>Sun, Jun</creatorcontrib><creatorcontrib>Huang, Chun</creatorcontrib><creatorcontrib>Dong, Wei</creatorcontrib><title>Combining Symbolic Execution and Model Checking to Verify MPI Programs</title><description>Message passing is the standard paradigm of programming in high-performance
computing. However, verifying Message Passing Interface (MPI) programs is
challenging, due to the complex program features (such as non-determinism and
non-blocking operations). In this work, we present MPI symbolic verifier
(MPI-SV), the first symbolic execution based tool for automatically verifying
MPI programs with non-blocking operations. MPI-SV combines symbolic execution
and model checking in a synergistic way to tackle the challenges in MPI program
verification. The synergy improves the scalability and enlarges the scope of
verifiable properties. We have implemented MPI-SV (footnote:
https://mpi-sv.github.io) and evaluated it with 111 real-world MPI verification
tasks. The pure symbolic execution-based technique successfully verifies 61 out
of the 111 tasks (55\%) within one hour, while in comparison, MPI-SV verifies
100 tasks (90\%). On average, compared with pure symbolic execution, MPI-SV
achieves 19x speedups on verifying the satisfaction of the critical property
and 5x speedups on finding violations.</description><subject>Computer Science - Programming Languages</subject><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2018</creationdate><recordtype>article</recordtype><sourceid>GOX</sourceid><recordid>eNotz7FOwzAUhWEvDKjwAEz4BRKu7dhNRhS1UKkVlahYo-tru1gkMXILat4etXQ6y68jfYw9CCirWmt4wnyKv6WoQZVgFMAtW7ZpsHGM456_T4NNfSS-OHn6OcY0chwd3yTne95-evo6V8fEP3yOYeKb7Ypvc9pnHA537CZgf_D3152x3XKxa1-L9dvLqn1eF2jmUBgikpURaNBKdKBNjaCCkzVWSGAbK7VFQQIlVk3wc9Mo4wNoIk_KODVjj_-3F0j3neOAeerOoO4CUn_IlEYp</recordid><startdate>20180316</startdate><enddate>20180316</enddate><creator>Yu, Hengbiao</creator><creator>Chen, Zhenbang</creator><creator>Fu, Xianjin</creator><creator>Wang, Ji</creator><creator>Su, Zhendong</creator><creator>Sun, Jun</creator><creator>Huang, Chun</creator><creator>Dong, Wei</creator><scope>AKY</scope><scope>GOX</scope></search><sort><creationdate>20180316</creationdate><title>Combining Symbolic Execution and Model Checking to Verify MPI Programs</title><author>Yu, Hengbiao ; Chen, Zhenbang ; Fu, Xianjin ; Wang, Ji ; Su, Zhendong ; Sun, Jun ; Huang, Chun ; Dong, Wei</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a670-6ccc2461a6ab2ad0568a03fd28a4ac0b9b25ba1c1a2a49fe76936ef05ccec36d3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2018</creationdate><topic>Computer Science - Programming Languages</topic><toplevel>online_resources</toplevel><creatorcontrib>Yu, Hengbiao</creatorcontrib><creatorcontrib>Chen, Zhenbang</creatorcontrib><creatorcontrib>Fu, Xianjin</creatorcontrib><creatorcontrib>Wang, Ji</creatorcontrib><creatorcontrib>Su, Zhendong</creatorcontrib><creatorcontrib>Sun, Jun</creatorcontrib><creatorcontrib>Huang, Chun</creatorcontrib><creatorcontrib>Dong, Wei</creatorcontrib><collection>arXiv Computer Science</collection><collection>arXiv.org</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Yu, Hengbiao</au><au>Chen, Zhenbang</au><au>Fu, Xianjin</au><au>Wang, Ji</au><au>Su, Zhendong</au><au>Sun, Jun</au><au>Huang, Chun</au><au>Dong, Wei</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Combining Symbolic Execution and Model Checking to Verify MPI Programs</atitle><date>2018-03-16</date><risdate>2018</risdate><abstract>Message passing is the standard paradigm of programming in high-performance
computing. However, verifying Message Passing Interface (MPI) programs is
challenging, due to the complex program features (such as non-determinism and
non-blocking operations). In this work, we present MPI symbolic verifier
(MPI-SV), the first symbolic execution based tool for automatically verifying
MPI programs with non-blocking operations. MPI-SV combines symbolic execution
and model checking in a synergistic way to tackle the challenges in MPI program
verification. The synergy improves the scalability and enlarges the scope of
verifiable properties. We have implemented MPI-SV (footnote:
https://mpi-sv.github.io) and evaluated it with 111 real-world MPI verification
tasks. The pure symbolic execution-based technique successfully verifies 61 out
of the 111 tasks (55\%) within one hour, while in comparison, MPI-SV verifies
100 tasks (90\%). On average, compared with pure symbolic execution, MPI-SV
achieves 19x speedups on verifying the satisfaction of the critical property
and 5x speedups on finding violations.</abstract><doi>10.48550/arxiv.1803.06300</doi><oa>free_for_read</oa></addata></record> |
fulltext | fulltext_linktorsrc |
identifier | DOI: 10.48550/arxiv.1803.06300 |
ispartof | |
issn | |
language | eng |
recordid | cdi_arxiv_primary_1803_06300 |
source | arXiv.org |
subjects | Computer Science - Programming Languages |
title | Combining Symbolic Execution and Model Checking to Verify MPI Programs |
url | https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-21T11%3A08%3A44IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-arxiv_GOX&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Combining%20Symbolic%20Execution%20and%20Model%20Checking%20to%20Verify%20MPI%20Programs&rft.au=Yu,%20Hengbiao&rft.date=2018-03-16&rft_id=info:doi/10.48550/arxiv.1803.06300&rft_dat=%3Carxiv_GOX%3E1803_06300%3C/arxiv_GOX%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true |