首页 > 最新文献

2022 IEEE/ACM Sixth International Workshop on Software Correctness for HPC Applications (Correctness)最新文献

英文 中文
Leveraging the Dynamic Program Structure Tree to Detect Data Races in OpenMP Programs 利用动态程序结构树来检测OpenMP程序中的数据竞争
Lechen Yu, Feiyang Jin, Joachim Protze, Vivek Sarkar
OpenMP provides a rich set of constructs to support multiple paradigms of parallelization, e.g., single program multiple data (SPMD) and task parallelism. Integrating these disparate paradigms in a single execution model increases the complexity of OpenMP, making OpenMP programs prone to concurrency bugs such as data races. Inspired by the task-oriented execution model in the OpenMP spec, we extended SPD3, a data race detection algorithm designed for async-finish task parallelism to support OpenMP programs. We found that by extending SPD3's key data structure, the Dynamic Program Structure Tree (DPST), SPD3 can support the majority of OpenMP constructs. We have implemented a prototype, TSan-spd3, on top of Google's ThreadSanitizer (TSan). To conduct an apples-to-apples comparison with Archer, the state-of-the-art dynamic race detector for OpenMP programs, we compared TSan-spd3 with an Archer implementation that executes on the same version of TSan. In addition, we evaluated Archer in two modes, the default mode using the original TSan and the accelerated mode enabling the use of SIMD instructions in TSan. The evaluation was conducted on nine benchmarks from the BOTS and SPEC OMP2012 benchmark suites. The evaluation results show that in eight out of nine benchmarks TSan-spd3 achieved similar overhead with Archer, while TSan-spd3 can identify more potential races than Archer.
OpenMP提供了一组丰富的结构来支持多种并行化范例,例如,单程序多数据(SPMD)和任务并行。将这些不同的范例集成到单个执行模型中会增加OpenMP的复杂性,使OpenMP程序容易出现数据竞争等并发性错误。受OpenMP规范中面向任务的执行模型的启发,我们扩展了SPD3,这是一种为异步完成任务并行设计的数据竞争检测算法,以支持OpenMP程序。我们发现,通过扩展SPD3的关键数据结构,动态程序结构树(DPST), SPD3可以支持大多数OpenMP结构。我们已经在b谷歌的ThreadSanitizer (TSan)之上实现了一个原型TSan-spd3。为了与Archer(用于OpenMP程序的最先进的动态竞争检测器)进行比较,我们将TSan-spd3与在同一版本的TSan上执行的Archer实现进行了比较。此外,我们在两种模式下对Archer进行了评估,一种是使用原始TSan的默认模式,另一种是在TSan中使用SIMD指令的加速模式。评估是在BOTS和SPEC OMP2012基准套件中的9个基准上进行的。评估结果表明,在9个基准测试中,有8个测试中,TSan-spd3的开销与Archer相似,而TSan-spd3可以识别出比Archer更多的潜在竞争。
{"title":"Leveraging the Dynamic Program Structure Tree to Detect Data Races in OpenMP Programs","authors":"Lechen Yu, Feiyang Jin, Joachim Protze, Vivek Sarkar","doi":"10.1109/Correctness56720.2022.00012","DOIUrl":"https://doi.org/10.1109/Correctness56720.2022.00012","url":null,"abstract":"OpenMP provides a rich set of constructs to support multiple paradigms of parallelization, e.g., single program multiple data (SPMD) and task parallelism. Integrating these disparate paradigms in a single execution model increases the complexity of OpenMP, making OpenMP programs prone to concurrency bugs such as data races. Inspired by the task-oriented execution model in the OpenMP spec, we extended SPD3, a data race detection algorithm designed for async-finish task parallelism to support OpenMP programs. We found that by extending SPD3's key data structure, the Dynamic Program Structure Tree (DPST), SPD3 can support the majority of OpenMP constructs. We have implemented a prototype, TSan-spd3, on top of Google's ThreadSanitizer (TSan). To conduct an apples-to-apples comparison with Archer, the state-of-the-art dynamic race detector for OpenMP programs, we compared TSan-spd3 with an Archer implementation that executes on the same version of TSan. In addition, we evaluated Archer in two modes, the default mode using the original TSan and the accelerated mode enabling the use of SIMD instructions in TSan. The evaluation was conducted on nine benchmarks from the BOTS and SPEC OMP2012 benchmark suites. The evaluation results show that in eight out of nine benchmarks TSan-spd3 achieved similar overhead with Archer, while TSan-spd3 can identify more potential races than Archer.","PeriodicalId":211482,"journal":{"name":"2022 IEEE/ACM Sixth International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130256976","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}
引用次数: 1
Static Local Concurrency Errors Detection in MPI-RMA Programs MPI-RMA程序中的静态本地并发错误检测
Emmanuelle Saillard, Marc Sergent, Célia Tassadit Ait Kaci, Denis Barthou
Communications are a critical part of HPC simulations, and one of the main focuses of application developers when scaling on supercomputers. While classical message passing (also called two-sided communications) is the dominant communication paradigm, one-sided communications are often praised to be efficient to overlap communications with computations, but challenging to program. Their usage is then generally abstracted through languages and memory abstractions to ease programming (e.g. PGAS). Therefore, little work has been done to help programmers use intermediate runtime layers, such as MPI-RMA, that is often reserved to expert programmers. Indeed, programming with MPI - RMA presents several challenges that require handling the asynchronous nature of one-sided communications to ensure the proper semantics of the program while ensuring its memory consistency. To help programmers detect memory errors such as race conditions as early as possible, this paper proposes a new static analysis of MPI - RMA codes that shows to the programmer the errors that can be detected at compile time. The detection is based on a novel local concurrency errors detection algorithm that tracks accesses through BFS searches on the Control Flow Graphs of a program. We show on several tests and an MPI-RMA variant of the GUPS benchmark that the static analysis allows to detect such errors on user codes. The error codes are integrated in the MPI Bugs Initiative open-source test suite.
通信是HPC模拟的关键部分,也是应用程序开发人员在超级计算机上扩展时的主要关注点之一。虽然经典的消息传递(也称为双边通信)是主要的通信范式,但单向通信通常被称赞为有效地将通信与计算重叠,但对编程具有挑战性。它们的用法通常通过语言和内存抽象进行抽象,以简化编程(例如PGAS)。因此,帮助程序员使用中间运行时层(如MPI-RMA)的工作很少,这通常是为专业程序员保留的。实际上,使用MPI - RMA编程带来了一些挑战,需要处理单向通信的异步特性,以确保程序的正确语义,同时确保其内存一致性。为了帮助程序员尽早发现内存错误,例如竞态条件,本文提出了一种新的MPI - RMA代码静态分析方法,它向程序员展示了在编译时可以检测到的错误。该检测基于一种新颖的局部并发错误检测算法,该算法通过BFS在程序控制流程图上的搜索来跟踪访问。我们在几个测试和GUPS基准的MPI-RMA变体中展示了静态分析允许检测用户代码上的此类错误。错误代码集成在MPI Bugs Initiative开源测试套件中。
{"title":"Static Local Concurrency Errors Detection in MPI-RMA Programs","authors":"Emmanuelle Saillard, Marc Sergent, Célia Tassadit Ait Kaci, Denis Barthou","doi":"10.1109/Correctness56720.2022.00008","DOIUrl":"https://doi.org/10.1109/Correctness56720.2022.00008","url":null,"abstract":"Communications are a critical part of HPC simulations, and one of the main focuses of application developers when scaling on supercomputers. While classical message passing (also called two-sided communications) is the dominant communication paradigm, one-sided communications are often praised to be efficient to overlap communications with computations, but challenging to program. Their usage is then generally abstracted through languages and memory abstractions to ease programming (e.g. PGAS). Therefore, little work has been done to help programmers use intermediate runtime layers, such as MPI-RMA, that is often reserved to expert programmers. Indeed, programming with MPI - RMA presents several challenges that require handling the asynchronous nature of one-sided communications to ensure the proper semantics of the program while ensuring its memory consistency. To help programmers detect memory errors such as race conditions as early as possible, this paper proposes a new static analysis of MPI - RMA codes that shows to the programmer the errors that can be detected at compile time. The detection is based on a novel local concurrency errors detection algorithm that tracks accesses through BFS searches on the Control Flow Graphs of a program. We show on several tests and an MPI-RMA variant of the GUPS benchmark that the static analysis allows to detect such errors on user codes. The error codes are integrated in the MPI Bugs Initiative open-source test suite.","PeriodicalId":211482,"journal":{"name":"2022 IEEE/ACM Sixth International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125702705","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}
引用次数: 4
MiniKokkos: A Calculus of Portable Parallelism MiniKokkos:可移植并行性的演算
Feiyang Jin, J. Jacobson, Samuel D. Pollard, Vivek Sarkar
Kokkos is a C++ library and ecosystem for writing parallel programs on heterogeneous systems. One of the primary goals of Kokkos is portability: programs in Kokkos are expressed through general parallel constructs which can enable the same code to compile and execute on different parallel architectures. However, there is no known formal model of Kokkos's semantics, which must be generic enough to support current and future CPU and accelerator architectures. As a first step of formalizing Kokkos, We introduce MiniKokkos: a small language capturing the main features of Kokkos, and then prove that MiniKokkos ensures portability across all possible parallel executions. We also provide a case study of how MiniKokkos can help reason about Kokkos programs and help find a bug in the Kokkos implementation.
Kokkos是一个c++库和生态系统,用于在异构系统上编写并行程序。Kokkos的主要目标之一是可移植性:Kokkos中的程序是通过通用的并行结构来表达的,这使得相同的代码可以在不同的并行架构上编译和执行。然而,没有已知的Kokkos语义的正式模型,它必须足够通用以支持当前和未来的CPU和加速器架构。作为形式化Kokkos的第一步,我们介绍MiniKokkos:一种捕获Kokkos主要特性的小语言,然后证明MiniKokkos确保所有可能的并行执行的可移植性。我们还提供了一个案例研究,说明MiniKokkos如何帮助理解Kokkos程序并帮助发现Kokkos实现中的错误。
{"title":"MiniKokkos: A Calculus of Portable Parallelism","authors":"Feiyang Jin, J. Jacobson, Samuel D. Pollard, Vivek Sarkar","doi":"10.1109/Correctness56720.2022.00010","DOIUrl":"https://doi.org/10.1109/Correctness56720.2022.00010","url":null,"abstract":"Kokkos is a C++ library and ecosystem for writing parallel programs on heterogeneous systems. One of the primary goals of Kokkos is portability: programs in Kokkos are expressed through general parallel constructs which can enable the same code to compile and execute on different parallel architectures. However, there is no known formal model of Kokkos's semantics, which must be generic enough to support current and future CPU and accelerator architectures. As a first step of formalizing Kokkos, We introduce MiniKokkos: a small language capturing the main features of Kokkos, and then prove that MiniKokkos ensures portability across all possible parallel executions. We also provide a case study of how MiniKokkos can help reason about Kokkos programs and help find a bug in the Kokkos implementation.","PeriodicalId":211482,"journal":{"name":"2022 IEEE/ACM Sixth International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117332849","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}
引用次数: 1
Towards Verified Rounding Error Analysis for Stationary Iterative Methods 平稳迭代法舍入误差验证分析
Ariel E. Kellison, Mohit Tekriwal, Jean-Baptiste Jeannin, G. Hulette
Iterative methods for solving linear systems serve as a basic building block for computational science. The computational cost of these methods can be significantly influenced by the round-off errors that accumulate as a result of their implementation in finite precision. In the extreme case, round-off errors that occur in practice can completely prevent an implementation from satisfying the accuracy and convergence behavior prescribed by its underlying algorithm. In the exascale era where cost is paramount, a thorough and rigorous analysis of the delay of convergence due to round-off should not be ignored. In this paper, we use a small model problem and the Jacobi iterative method to demonstrate how the Coq proof assistant can be used to formally specify the floating-point behavior of iterative methods, and to rigorously prove the accuracy of these methods.
求解线性系统的迭代方法是计算科学的基本组成部分。这些方法的计算成本可能会受到由于它们在有限精度下实现而累积的舍入误差的显著影响。在极端情况下,实践中出现的舍入错误可能会完全阻止实现满足其底层算法规定的精度和收敛行为。在成本至上的百亿亿次时代,不应忽视对舍入导致的收敛延迟进行彻底而严格的分析。本文利用一个小模型问题和Jacobi迭代方法,证明了Coq证明助手可以形式化地指定迭代方法的浮点行为,并严格证明了这些方法的准确性。
{"title":"Towards Verified Rounding Error Analysis for Stationary Iterative Methods","authors":"Ariel E. Kellison, Mohit Tekriwal, Jean-Baptiste Jeannin, G. Hulette","doi":"10.1109/Correctness56720.2022.00007","DOIUrl":"https://doi.org/10.1109/Correctness56720.2022.00007","url":null,"abstract":"Iterative methods for solving linear systems serve as a basic building block for computational science. The computational cost of these methods can be significantly influenced by the round-off errors that accumulate as a result of their implementation in finite precision. In the extreme case, round-off errors that occur in practice can completely prevent an implementation from satisfying the accuracy and convergence behavior prescribed by its underlying algorithm. In the exascale era where cost is paramount, a thorough and rigorous analysis of the delay of convergence due to round-off should not be ignored. In this paper, we use a small model problem and the Jacobi iterative method to demonstrate how the Coq proof assistant can be used to formally specify the floating-point behavior of iterative methods, and to rigorously prove the accuracy of these methods.","PeriodicalId":211482,"journal":{"name":"2022 IEEE/ACM Sixth International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"138 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114999513","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}
引用次数: 1
Message from the Correctness 2022 Workshop Chairs 来自2022正确性研讨会主席的信息
{"title":"Message from the Correctness 2022 Workshop Chairs","authors":"","doi":"10.1109/correctness56720.2022.00004","DOIUrl":"https://doi.org/10.1109/correctness56720.2022.00004","url":null,"abstract":"","PeriodicalId":211482,"journal":{"name":"2022 IEEE/ACM Sixth International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"183 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133685081","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}
引用次数: 0
On-the-Fly Data Race Detection for MPI RMA Programs with MUST 带MUST的MPI RMA程序的动态数据竞争检测
Simon Schwitanski, Joachim Jenke, Felix Tomski, C. Terboven, Matthias S. Müller
MPI Remote Memory Access (RMA) provides a one-sided communication model for MPI applications. Ensuring consistency between RMA operations with synchronization calls is a key requirement when writing correct RMA codes. Wrong API usage may lead to concurrent modifications of the same memory location without proper synchronization resulting in data races across processes. Due to their non-deterministic nature, such data races are hard to detect. This paper presents MUST-RMA, an on-the-fly data race detector for MPI RMA applications. MUST-RMA uses a race detection model based on happened-before and consistency analysis. It combines the MPI correctness tool MUST with the race detector ThreadSanitizer to detect races across processes in RMA applications. A classification quality study on MUST-RMA with different test cases shows a precision and recall of 0.95. An overhead study on a stencil and a matrix transpose kernel shows runtime slowdowns of 3x to 20x for up to 192 processes.
MPI远程内存访问(RMA)为MPI应用程序提供了一个单侧通信模型。在编写正确的RMA代码时,确保RMA操作与同步调用之间的一致性是一个关键要求。错误的API使用可能导致对相同内存位置的并发修改,而没有适当的同步,从而导致跨进程的数据竞争。由于它们的不确定性,这种数据竞争很难被检测到。本文介绍了一种适用于MPI RMA应用的动态数据竞赛检测器——MUST-RMA。MUST-RMA使用基于事前发生和一致性分析的竞争检测模型。它结合了MPI正确性工具MUST和竞争检测器ThreadSanitizer来检测RMA应用程序中进程间的竞争。使用不同测试用例对MUST-RMA进行分类质量研究,其准确率和召回率均为0.95。对模板和矩阵转置内核的开销研究表明,对于多达192个进程,运行时速度降低了3到20倍。
{"title":"On-the-Fly Data Race Detection for MPI RMA Programs with MUST","authors":"Simon Schwitanski, Joachim Jenke, Felix Tomski, C. Terboven, Matthias S. Müller","doi":"10.1109/Correctness56720.2022.00009","DOIUrl":"https://doi.org/10.1109/Correctness56720.2022.00009","url":null,"abstract":"MPI Remote Memory Access (RMA) provides a one-sided communication model for MPI applications. Ensuring consistency between RMA operations with synchronization calls is a key requirement when writing correct RMA codes. Wrong API usage may lead to concurrent modifications of the same memory location without proper synchronization resulting in data races across processes. Due to their non-deterministic nature, such data races are hard to detect. This paper presents MUST-RMA, an on-the-fly data race detector for MPI RMA applications. MUST-RMA uses a race detection model based on happened-before and consistency analysis. It combines the MPI correctness tool MUST with the race detector ThreadSanitizer to detect races across processes in RMA applications. A classification quality study on MUST-RMA with different test cases shows a precision and recall of 0.95. An overhead study on a stencil and a matrix transpose kernel shows runtime slowdowns of 3x to 20x for up to 192 processes.","PeriodicalId":211482,"journal":{"name":"2022 IEEE/ACM Sixth International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"871 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133293949","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}
引用次数: 1
Correctness 2022 Workshop Organization 2022车间组织
{"title":"Correctness 2022 Workshop Organization","authors":"","doi":"10.1109/correctness56720.2022.00005","DOIUrl":"https://doi.org/10.1109/correctness56720.2022.00005","url":null,"abstract":"","PeriodicalId":211482,"journal":{"name":"2022 IEEE/ACM Sixth International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122180147","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}
引用次数: 0
Early Experience with Transformer-Based Similarity Analysis for DataRaceBench DataRaceBench中基于变压器的相似性分析的早期经验
Winson X. Chen, T. Vanderbruggen, Pei-Hung Lin, C. Liao, M. Emani
DataRaceBench (DRB) is a dedicated benchmark suite to evaluate tools aimed to find data race bugs in OpenMP programs. Using microbenchmarks with or without data races, DRB is able to generate standard quality metrics and provide systematic and quantitative assessments of data race detection tools. However, as the number of microbenchmarks grows, it is challenging to manually identify similar code patterns for DRB, within the context of identifying duplicated kernels or guiding the additions of new kernels. In this paper, we experiment with a transformer-based, deep learning approach to similarity analysis. A state-of-the-art transformer model, CodeBERT, has been adapted to find similar OpenMP code regions. We explore the challenges and the solutions when applying transformer-based similarity analysis to new source codes which are unseen by pre-trained transformers. Using comparative experiments of different variants of similarity analysis, we comment on the strengths and limitations of the transformer-based approach and point out future research directions.
DataRaceBench (DRB)是一个专用的基准套件,用于评估旨在发现OpenMP程序中的数据竞争错误的工具。使用有或没有数据竞争的微基准测试,DRB能够生成标准的质量度量,并提供数据竞争检测工具的系统和定量评估。然而,随着微基准测试数量的增长,在识别重复的内核或指导新内核的添加的上下文中,为DRB手动识别类似的代码模式是具有挑战性的。在本文中,我们尝试了一种基于转换器的深度学习方法来进行相似性分析。一个最先进的变压器模型CodeBERT已经被用来寻找类似的OpenMP代码区域。我们探讨了在将基于变压器的相似性分析应用于预训练变压器看不见的新源代码时所面临的挑战和解决方案。通过不同相似度分析方法的对比实验,对基于变压器的相似度分析方法的优势和局限性进行了评述,并指出了今后的研究方向。
{"title":"Early Experience with Transformer-Based Similarity Analysis for DataRaceBench","authors":"Winson X. Chen, T. Vanderbruggen, Pei-Hung Lin, C. Liao, M. Emani","doi":"10.1109/Correctness56720.2022.00011","DOIUrl":"https://doi.org/10.1109/Correctness56720.2022.00011","url":null,"abstract":"DataRaceBench (DRB) is a dedicated benchmark suite to evaluate tools aimed to find data race bugs in OpenMP programs. Using microbenchmarks with or without data races, DRB is able to generate standard quality metrics and provide systematic and quantitative assessments of data race detection tools. However, as the number of microbenchmarks grows, it is challenging to manually identify similar code patterns for DRB, within the context of identifying duplicated kernels or guiding the additions of new kernels. In this paper, we experiment with a transformer-based, deep learning approach to similarity analysis. A state-of-the-art transformer model, CodeBERT, has been adapted to find similar OpenMP code regions. We explore the challenges and the solutions when applying transformer-based similarity analysis to new source codes which are unseen by pre-trained transformers. Using comparative experiments of different variants of similarity analysis, we comment on the strengths and limitations of the transformer-based approach and point out future research directions.","PeriodicalId":211482,"journal":{"name":"2022 IEEE/ACM Sixth International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115427911","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}
引用次数: 1
Proposed Consistent Exception Handling for the BLAS and LAPACK 建议一致的异常处理BLAS和LAPACK
J. Demmel, J. Dongarra, M. Gates, G. Henry, J. Langou, Xiaoye Li, P. Luszczek, W. Pereira, Jason Riedy, Cindy Rubio-Gonz'alez
Numerical exceptions, which may be caused by overflow, operations like division by 0 or sqrt(−1), or conver-gence failures, are unavoidable in many cases, in particular when software is used on unforeseen and difficult inputs. As more aspects of society become automated e.g., self-driving cars, health monitors, and cyber-physical systems more generally, it is becoming increasingly important to design software that is resilient to exceptions, and that responds to them in a consistent way. Consistency is needed to allow users to build higher-level software that is also resilient and consistent (and so on recursively). In this paper we explore the design space of consistent exception handling for the widely used BLAS and LAPACK linear algebra libraries, pointing out a variety of instances of inconsistent exception handling in the current versions, and propose a new design that balances consistency, complexity, ease of use, and performance. Some compromises are needed, because there are preexisting inconsistencies that are outside our control, including in or between existing vendor BLAS implementations, different programming languages, and even compilers for the same programming language. And user requests from our surveys are quite diverse. We also propose our design as a possible model for other numerical software, and welcome comments on our design choices.
在许多情况下,数字异常是不可避免的,这可能是由溢出、除0或sqrt(- 1)之类的操作或收敛失败引起的,特别是当软件用于不可预见和困难的输入时。随着社会越来越多的方面变得自动化,例如自动驾驶汽车、健康监视器和更普遍的网络物理系统,设计能够适应异常的软件并以一致的方式对它们做出反应变得越来越重要。一致性需要允许用户构建具有弹性和一致性的高级软件(以此类推)。在本文中,我们探讨了广泛使用的BLAS和LAPACK线性代数库的一致性异常处理的设计空间,指出了当前版本中不一致异常处理的各种实例,并提出了一种平衡一致性、复杂性、易用性和性能的新设计。有些妥协是需要的,因为存在我们无法控制的预先存在的不一致性,包括在现有供应商的BLAS实现、不同的编程语言、甚至相同编程语言的编译器中或之间的不一致性。来自我们调查的用户要求是非常多样化的。我们还提出了我们的设计作为其他数值软件的可能模型,并欢迎对我们的设计选择提出意见。
{"title":"Proposed Consistent Exception Handling for the BLAS and LAPACK","authors":"J. Demmel, J. Dongarra, M. Gates, G. Henry, J. Langou, Xiaoye Li, P. Luszczek, W. Pereira, Jason Riedy, Cindy Rubio-Gonz'alez","doi":"10.1109/Correctness56720.2022.00006","DOIUrl":"https://doi.org/10.1109/Correctness56720.2022.00006","url":null,"abstract":"Numerical exceptions, which may be caused by overflow, operations like division by 0 or sqrt(−1), or conver-gence failures, are unavoidable in many cases, in particular when software is used on unforeseen and difficult inputs. As more aspects of society become automated e.g., self-driving cars, health monitors, and cyber-physical systems more generally, it is becoming increasingly important to design software that is resilient to exceptions, and that responds to them in a consistent way. Consistency is needed to allow users to build higher-level software that is also resilient and consistent (and so on recursively). In this paper we explore the design space of consistent exception handling for the widely used BLAS and LAPACK linear algebra libraries, pointing out a variety of instances of inconsistent exception handling in the current versions, and propose a new design that balances consistency, complexity, ease of use, and performance. Some compromises are needed, because there are preexisting inconsistencies that are outside our control, including in or between existing vendor BLAS implementations, different programming languages, and even compilers for the same programming language. And user requests from our surveys are quite diverse. We also propose our design as a possible model for other numerical software, and welcome comments on our design choices.","PeriodicalId":211482,"journal":{"name":"2022 IEEE/ACM Sixth International Workshop on Software Correctness for HPC Applications (Correctness)","volume":"164 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-07-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131887508","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}
引用次数: 3
期刊
2022 IEEE/ACM Sixth International Workshop on Software Correctness for HPC Applications (Correctness)
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1