Protocol-based verification of MPI programs

Detalhes bibliográficos
Autor(a) principal: Marques, Eduardo R. B.
Data de Publicação: 2014
Outros Autores: Martins, Francisco, Vasconcelos, Vasco T., Santos, César, Ng, Nicholas, Yoshida, Nobuko
Tipo de documento: Relatório
Idioma: eng
Título da fonte: Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
Texto Completo: http://hdl.handle.net/10451/14267
Resumo: We present a methodology for the verification of Message Passing Interface (MPI) programs written in C. The aim is to statically verify programs against protocol specifications, enforcing properties such as fidelity and absence of deadlocks. We make use of a protocol language based on a dependent type system for message-passing parallel programs. % For the verification of a program against a given protocol, the protocol is first translated into a representation read by VCC, a software verifier for the~C programming language. % The program is then annotated with specific assertions that, together with a pre-established set of contracts for MPI primitives, guide the verifier to either prove or disprove the program's conformance to the protocol. We successfully verified MPI programs in a running time that is independent of the number of processes or other input parameters. This contrasts with other techniques, notably model checking and symbolic execution, that suffer from the state-explosion problem. We experimentally evaluated our approach against TASS, a state-of-the-art tool for MPI program verification.
id RCAP_44188db95b961237127495ec39faa259
oai_identifier_str oai:repositorio.ul.pt:10451/14267
network_acronym_str RCAP
network_name_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository_id_str 7160
spelling Protocol-based verification of MPI programsprotocolparallel programsverificationMPIWe present a methodology for the verification of Message Passing Interface (MPI) programs written in C. The aim is to statically verify programs against protocol specifications, enforcing properties such as fidelity and absence of deadlocks. We make use of a protocol language based on a dependent type system for message-passing parallel programs. % For the verification of a program against a given protocol, the protocol is first translated into a representation read by VCC, a software verifier for the~C programming language. % The program is then annotated with specific assertions that, together with a pre-established set of contracts for MPI primitives, guide the verifier to either prove or disprove the program's conformance to the protocol. We successfully verified MPI programs in a running time that is independent of the number of processes or other input parameters. This contrasts with other techniques, notably model checking and symbolic execution, that suffer from the state-explosion problem. We experimentally evaluated our approach against TASS, a state-of-the-art tool for MPI program verification.Repositório da Universidade de LisboaMarques, Eduardo R. B.Martins, FranciscoVasconcelos, Vasco T.Santos, CésarNg, NicholasYoshida, Nobuko2014-10-23T15:51:08Z2014-10-23T15:51:08Z2014-10-23info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/reportapplication/pdfapplication/pdfhttp://hdl.handle.net/10451/14267enginfo:eu-repo/semantics/openAccessreponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãoinstacron:RCAAP2023-11-08T15:59:58Zoai:repositorio.ul.pt:10451/14267Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireopendoar:71602024-03-19T21:36:04.960054Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informaçãofalse
dc.title.none.fl_str_mv Protocol-based verification of MPI programs
title Protocol-based verification of MPI programs
spellingShingle Protocol-based verification of MPI programs
Marques, Eduardo R. B.
protocol
parallel programs
verification
MPI
title_short Protocol-based verification of MPI programs
title_full Protocol-based verification of MPI programs
title_fullStr Protocol-based verification of MPI programs
title_full_unstemmed Protocol-based verification of MPI programs
title_sort Protocol-based verification of MPI programs
author Marques, Eduardo R. B.
author_facet Marques, Eduardo R. B.
Martins, Francisco
Vasconcelos, Vasco T.
Santos, César
Ng, Nicholas
Yoshida, Nobuko
author_role author
author2 Martins, Francisco
Vasconcelos, Vasco T.
Santos, César
Ng, Nicholas
Yoshida, Nobuko
author2_role author
author
author
author
author
dc.contributor.none.fl_str_mv Repositório da Universidade de Lisboa
dc.contributor.author.fl_str_mv Marques, Eduardo R. B.
Martins, Francisco
Vasconcelos, Vasco T.
Santos, César
Ng, Nicholas
Yoshida, Nobuko
dc.subject.por.fl_str_mv protocol
parallel programs
verification
MPI
topic protocol
parallel programs
verification
MPI
description We present a methodology for the verification of Message Passing Interface (MPI) programs written in C. The aim is to statically verify programs against protocol specifications, enforcing properties such as fidelity and absence of deadlocks. We make use of a protocol language based on a dependent type system for message-passing parallel programs. % For the verification of a program against a given protocol, the protocol is first translated into a representation read by VCC, a software verifier for the~C programming language. % The program is then annotated with specific assertions that, together with a pre-established set of contracts for MPI primitives, guide the verifier to either prove or disprove the program's conformance to the protocol. We successfully verified MPI programs in a running time that is independent of the number of processes or other input parameters. This contrasts with other techniques, notably model checking and symbolic execution, that suffer from the state-explosion problem. We experimentally evaluated our approach against TASS, a state-of-the-art tool for MPI program verification.
publishDate 2014
dc.date.none.fl_str_mv 2014-10-23T15:51:08Z
2014-10-23T15:51:08Z
2014-10-23
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/report
format report
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://hdl.handle.net/10451/14267
url http://hdl.handle.net/10451/14267
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
application/pdf
dc.source.none.fl_str_mv reponame:Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
instname:Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron:RCAAP
instname_str Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
instacron_str RCAAP
institution RCAAP
reponame_str Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
collection Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos)
repository.name.fl_str_mv Repositório Científico de Acesso Aberto de Portugal (Repositórios Cientìficos) - Agência para a Sociedade do Conhecimento (UMIC) - FCT - Sociedade da Informação
repository.mail.fl_str_mv
_version_ 1799134259399622656