迈向更安全的并行STL使用

Benjámin Barth, Richárd Szalay, Z. Porkoláb
{"title":"迈向更安全的并行STL使用","authors":"Benjámin Barth, Richárd Szalay, Z. Porkoláb","doi":"10.1109/Informatics57926.2022.10083416","DOIUrl":null,"url":null,"abstract":"Effective and safe parallel programming is among the biggest challenges of today's software technology. The C++ 17 standard introduced Parallel STL: a set of overloaded functions taking an additional “execution policy” parameter in the Algorithms chapter of the Standard library. During the years since its introduction, a few shortages of Parallel STL have been revealed. While the Standard defines the semantics of the individual algorithms, adherence to their abstract requirements - e.g., absolutely no data races or deadlocks during the evaluation of a predicate or other customisation point - is up to the developer. Experience shows that programmers frequently make mistakes and write erroneous code, which is hard to debug. In this paper, we investigate some of the critical issues of the Parallel STL library and suggest improvements to increase its safety. While a fully automatic detection of erroneous constructs is computationally infeasible to do, we introduce a framework with which the user will be able to indicate - axiomatically, based on absolute trust - that an operation has “safe” properties, e.g., commutativity of certain functors. We implemented a prototype of the proposed framework to demonstrate its usability and effectiveness.","PeriodicalId":101488,"journal":{"name":"2022 IEEE 16th International Scientific Conference on Informatics (Informatics)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-11-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Towards Safer Parallel STL Usage\",\"authors\":\"Benjámin Barth, Richárd Szalay, Z. Porkoláb\",\"doi\":\"10.1109/Informatics57926.2022.10083416\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Effective and safe parallel programming is among the biggest challenges of today's software technology. The C++ 17 standard introduced Parallel STL: a set of overloaded functions taking an additional “execution policy” parameter in the Algorithms chapter of the Standard library. During the years since its introduction, a few shortages of Parallel STL have been revealed. While the Standard defines the semantics of the individual algorithms, adherence to their abstract requirements - e.g., absolutely no data races or deadlocks during the evaluation of a predicate or other customisation point - is up to the developer. Experience shows that programmers frequently make mistakes and write erroneous code, which is hard to debug. In this paper, we investigate some of the critical issues of the Parallel STL library and suggest improvements to increase its safety. While a fully automatic detection of erroneous constructs is computationally infeasible to do, we introduce a framework with which the user will be able to indicate - axiomatically, based on absolute trust - that an operation has “safe” properties, e.g., commutativity of certain functors. We implemented a prototype of the proposed framework to demonstrate its usability and effectiveness.\",\"PeriodicalId\":101488,\"journal\":{\"name\":\"2022 IEEE 16th International Scientific Conference on Informatics (Informatics)\",\"volume\":\"1 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2022-11-23\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2022 IEEE 16th International Scientific Conference on Informatics (Informatics)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/Informatics57926.2022.10083416\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2022 IEEE 16th International Scientific Conference on Informatics (Informatics)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/Informatics57926.2022.10083416","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

摘要

有效和安全的并行编程是当今软件技术面临的最大挑战之一。c++ 17标准引入了并行STL:一组重载函数,在标准库的算法章节中有一个额外的“执行策略”参数。自引入以来的几年里,并行STL的一些不足已经显露出来。虽然标准定义了各个算法的语义,但是否遵守它们的抽象要求——例如,在对谓词或其他自定义点进行评估期间绝对没有数据竞争或死锁——取决于开发人员。经验表明,程序员经常犯错误并编写错误的代码,这很难调试。在本文中,我们研究了并行STL库的一些关键问题,并提出了提高其安全性的改进建议。虽然完全自动检测错误构造在计算上是不可行的,但我们引入了一个框架,用户将能够根据绝对信任(axi公理)指出操作具有“安全”属性,例如某些函子的可交换性。我们实现了该框架的原型,以证明其可用性和有效性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
Towards Safer Parallel STL Usage
Effective and safe parallel programming is among the biggest challenges of today's software technology. The C++ 17 standard introduced Parallel STL: a set of overloaded functions taking an additional “execution policy” parameter in the Algorithms chapter of the Standard library. During the years since its introduction, a few shortages of Parallel STL have been revealed. While the Standard defines the semantics of the individual algorithms, adherence to their abstract requirements - e.g., absolutely no data races or deadlocks during the evaluation of a predicate or other customisation point - is up to the developer. Experience shows that programmers frequently make mistakes and write erroneous code, which is hard to debug. In this paper, we investigate some of the critical issues of the Parallel STL library and suggest improvements to increase its safety. While a fully automatic detection of erroneous constructs is computationally infeasible to do, we introduce a framework with which the user will be able to indicate - axiomatically, based on absolute trust - that an operation has “safe” properties, e.g., commutativity of certain functors. We implemented a prototype of the proposed framework to demonstrate its usability and effectiveness.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Software Engineers' Questions and Answers on Stack Exchange Collision detection and response approaches for computer muscle modelling Supervised learning data preprocessing for short-term traffic flow prediction A 1D CNN-based model for IoT anomaly detection using INT data Image steganography with using QR code
×
引用
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