Alexander Huck, Jan-Patrick Lehr, S. Kreutzer, Joachim Protze, C. Terboven, C. Bischof, Matthias S. Müller
{"title":"Compiler-aided Type Tracking for Correctness Checking of MPI Applications","authors":"Alexander Huck, Jan-Patrick Lehr, S. Kreutzer, Joachim Protze, C. Terboven, C. Bischof, Matthias S. Müller","doi":"10.1109/Correctness.2018.00011","DOIUrl":"https://doi.org/10.1109/Correctness.2018.00011","url":null,"abstract":"MUST, a dynamic MPI correctness checker, is extended with a type and memory allocation tracking sanitizer called TypeART for C/C++ codes based on the LLVM compiler framework. The sanitizer extracts type information and inserts instrumentation to track memory allocations and deallocations relevant to MPI communication. This allows MUST to check for type compatibility between the type-less communication buffer and the declared MPI datatype at all phases of the MPI communication, namely message assembly, message transfer and message disassembly into the receiving buffer. We evaluate our approach on benchmarks taken from SPEC MPI 2007 and two CORAL mini applications. The results show that our approach typically exhibits acceptable runtime and memory overheads. In particular, the memory overhead was below 20% in all cases.","PeriodicalId":217525,"journal":{"name":"2018 IEEE/ACM 2nd International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"140 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126304527","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}