Vinu Joseph, N. Chalapathi, Aditya Bhaskara, Ganesh Gopalakrishnan, P. Panchekha, Mu Zhang
{"title":"Correctness-preserving Compression of Datasets and Neural Network Models","authors":"Vinu Joseph, N. Chalapathi, Aditya Bhaskara, Ganesh Gopalakrishnan, P. Panchekha, Mu Zhang","doi":"10.1109/Correctness51934.2020.00006","DOIUrl":"https://doi.org/10.1109/Correctness51934.2020.00006","url":null,"abstract":"Neural networks deployed on edge devices must be efficient both in terms of their model size and the amount of data movement they cause when classifying inputs. These efficiencies are typically achieved through model compression: pruning a fully trained network model by zeroing out the weights. Given the overall challenge of neural network correctness, we argue that focusing on correctness preservation may allow the community to make measurable progress. We present a state-of-the-art model compression framework called Condensa around which we have launched correctness preservation studies. After presenting Condensa, we describe our initial efforts at understanding the effect of model compression in semantic terms, going beyond the top n% accuracy that Condensa is currently based on. We also take up the relatively unexplored direction of data compression that may help reduce data movement. We report preliminary results of learning from decompressed data to understand the effects of compression artifacts. Learning without decompressing input data also holds promise in terms of boosting efficiency, and we also report preliminary results in this regard. Our experiments centered around a state-of-the-art model compression framework called Condensa and two data compression algorithms, namely JPEG and ZFP, demonstrate the potential for employing model-and dataset compression without adversely affecting correctness.","PeriodicalId":412609,"journal":{"name":"2020 IEEE/ACM 4th International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132476315","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}
V. M. Nguyen, Emmanuelle Saillard, Julien Jaeger, Denis Barthou, Patrick Carribault
{"title":"PARCOACH Extension for Static MPI Nonblocking and Persistent Communication Validation","authors":"V. M. Nguyen, Emmanuelle Saillard, Julien Jaeger, Denis Barthou, Patrick Carribault","doi":"10.1109/Correctness51934.2020.00009","DOIUrl":"https://doi.org/10.1109/Correctness51934.2020.00009","url":null,"abstract":"The Message Passing Interface (MPI) is a parallel programming model used to exchange data between working units in different nodes of a supercomputer. While MPI blocking operations return when the communication is complete, non-blocking and persistent operations return before the communication is complete, enabling a developer to hide communication latency. However the usage of these latter comes with additional rules the user has to abide to. This is error prone, which makes verification tools valuable for MPI program writers. PARCOACH is a framework that detects MPI collective errors using a static/dynamic analysis. In this paper we present an extension of PARCOACH static analysis to detect misuse of MPI nonblocking and persistent communications. Our new analysis adds the detection of four new error classes related to these types of communications. Its implementation was tested on several MPI micro-benchmarks, and on some CORAL or Mantevo benchmarks on which we observed an acceptable overhead at compile-time.","PeriodicalId":412609,"journal":{"name":"2020 IEEE/ACM 4th International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124280803","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}
Gaurav Verma, Yaying Shi, C. Liao, B. Chapman, Yonghong Yan
{"title":"Enhancing DataRaceBench for Evaluating Data Race Detection Tools","authors":"Gaurav Verma, Yaying Shi, C. Liao, B. Chapman, Yonghong Yan","doi":"10.1109/Correctness51934.2020.00008","DOIUrl":"https://doi.org/10.1109/Correctness51934.2020.00008","url":null,"abstract":"DataRaceBench is a dedicated benchmark suite to evaluate tools aimed to find data race bugs in OpenMP programs. Since its initial release in 2017, DataRaceBench has been widely used by tool developers to find the strengths and limitations of their tools. The results also provide an apple-to-apple comparison of the state-of-the-art of data race detection tools. In this paper, we discuss our latest efforts to enhance DataRaceBench. In particular, we have added support for Fortran language and some of the newest OpenMP 5.0 language features. We have also added new kernels representing new patterns from literature and other benchmarks (e.g., NAS Parallel Benchmark). To reduce duplicated code patterns in the benchmark suite, we have designed a distance-based code similarity analysis, combining both static and dynamic code features. Finally, we dockerize tools and streamline the entire benchmarking process to quickly generate a dashboard showing the state-of-the-art of data race detection of OpenMP programs. The enhanced DataRaceBench is released as v 1.3.0, with 222 newly added benchmarks. 56 of them are in C, and the remaining 166 are in Fortran, reproducing the C programs’ nature. Our experiments show that this new version can spot more limitations of the current data race detection tools, with significantly reduced user efforts needed to run experiments.","PeriodicalId":412609,"journal":{"name":"2020 IEEE/ACM 4th International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"64 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126453663","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}
{"title":"A Statistical Analysis of Error in MPI Reduction Operations","authors":"Samuel D. Pollard, B. Norris","doi":"10.1109/Correctness51934.2020.00011","DOIUrl":"https://doi.org/10.1109/Correctness51934.2020.00011","url":null,"abstract":"This work explores the effects of nonassociativity of floating-point addition on Message Passing Interface (MPI) reduction operations. Previous work indicates floating-point summation error is comprised of two independent factors: error based on the summation algorithm and error based on the summands themselves. We find evidence to suggest, for MPI reductions, the error based on summands has a much greater effect than the error based on the summation algorithm. We begin by sampling from the state space of all possible summation orders for MPI reduction algorithms. Next, we show the effect of different random number distributions on summation error, taking a 1000-digit precision floating-point accumulator as ground truth. Our results show empirical error bounds that are much tighter than existing analytical bounds. Last, we simulate different allreduce algorithms on the high performance computing (HPC) proxy application Nekbone and find that the error is relatively stable across algorithms. Our approach provides HPC application developers with more realistic error bounds of MPI reduction operations. Quantifying the small—but nonzero—discrepancies between reduction algorithms can help developers ensure correctness and aid reproducibility across MPI implementations and cluster topologies.","PeriodicalId":412609,"journal":{"name":"2020 IEEE/ACM 4th International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126716036","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}
Vanessa Job, T. Grové, S. Fogerty, C. Mauney, B. Neuman, Laura Monroe, R. Robey
{"title":"Order Matters: A Case Study on Reducing Floating Point Error in Sums Via Ordering and Grouping","authors":"Vanessa Job, T. Grové, S. Fogerty, C. Mauney, B. Neuman, Laura Monroe, R. Robey","doi":"10.1109/Correctness51934.2020.00007","DOIUrl":"https://doi.org/10.1109/Correctness51934.2020.00007","url":null,"abstract":"Due to accumulated round-off error, mathematically equivalent floating-point summations can yield different computational results. Errors propagated across timesteps can be substantial and can lead to significant inaccuracy in the final results.We focus on sums in an adaptive mesh refinement hydrocode. We reduce error in a moderate length equation by generating proper ordering and grouping of the terms and verify this on a typical numerical simulation. Our techniques show equivalent accuracy to classic methodology like Kahan without the extra overhead.The heuristics presented here could improve accuracy in single and double precision for many codes. With some knowledge and minimal effort, researchers can apply these techniques and see improvement in the accuracy of code at no cost in performance. The same approach may facilitate reduced precision computation.","PeriodicalId":412609,"journal":{"name":"2020 IEEE/ACM 4th International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127498272","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}
{"title":"[Copyright notice]","authors":"","doi":"10.1109/correctness51934.2020.00002","DOIUrl":"https://doi.org/10.1109/correctness51934.2020.00002","url":null,"abstract":"","PeriodicalId":412609,"journal":{"name":"2020 IEEE/ACM 4th International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126174784","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}
Alexander Hück, Joachim Protze, Jan-Patrick Lehr, C. Terboven, C. Bischof, Matthias S. Müller
{"title":"Towards compiler-aided correctness checking of adjoint MPI applications","authors":"Alexander Hück, Joachim Protze, Jan-Patrick Lehr, C. Terboven, C. Bischof, Matthias S. Müller","doi":"10.1109/Correctness51934.2020.00010","DOIUrl":"https://doi.org/10.1109/Correctness51934.2020.00010","url":null,"abstract":"Algorithmic Differentiation (AD) is a set of techniques to calculate derivatives of a computer program. In C++, AD typically requires (i) a type change of the built-in double, and (ii) a replacement of all MPI calls with AD-specific implementations. This poses challenges on MPI correctness tools, such as MUST, a dynamic checker, and TypeART, its memory sanitizer extension. In particular, AD impacts (i) memory layouts of the whole code, (ii) requires more memory allocations tracking by TypeART, and (iii) approximately doubles the MPI type checks of MUST due to an AD-specific communication reversal. To address these challenges, we propose a new callback interface for MUST to reduce the number of intercepted MPI calls, and, also, improve the filtering capabilities of TypeART to reduce tracking of temporary allocations for the derivative computation. We evaluate our approach on an AD-enhanced version of CORAL LULESH. In particular, we reduce stack variable tracking from 32 million to 13 thousand. MUST with TypeART and the callback interface reduces the runtime overhead to that of vanilla MUST.","PeriodicalId":412609,"journal":{"name":"2020 IEEE/ACM 4th International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2020-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132305911","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}
{"title":"Message from the Workshop Chairs","authors":"Richard Li, Yong Liu","doi":"10.1109/correctness51934.2020.00004","DOIUrl":"https://doi.org/10.1109/correctness51934.2020.00004","url":null,"abstract":"","PeriodicalId":412609,"journal":{"name":"2020 IEEE/ACM 4th International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"59 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2018-08-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121333222","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}