Formal specification and implementation of an automated pattern-based parallel-code generation framework

被引:0
|
作者
Gervasio Pérez
Sergio Yovine
机构
[1] ICC-CONICET and Universidad de Buenos Aires,
关键词
Formal methods; Software design patterns; Parallel programming; Automated code generation;
D O I
暂无
中图分类号
学科分类号
摘要
Programming correct parallel software in a cost-effective way is a challenging task requiring a high degree of expertise. As an attempt to overcoming the pitfalls undermining parallel programming, this paper proposes a pattern-based, formally grounded tool that eases writing parallel code by automatically generating platform-dependent programs from high-level, platform-independent specifications. The tool builds on three pillars: (1) a platform-agnostic parallel programming pattern, called PCR, (2) a formal translation of PCRs into a parallel execution model, namely Concurrent Collections (CnC), and (3) a program rewriting engine that generates code for a concrete runtime implementing CnC. The experimental evaluation carried out gives evidence that code produced from PCRs can deliver performance metrics which are comparable with handwritten code but with assured correctness. The technical contribution of this paper is threefold. First, it discusses a parallel programming pattern, called PCR, consisting of producers, consumers, and reducers which operate concurrently on data sets. To favor correctness, the semantics of PCRs is mathematically defined in terms of the formalism FXML. PCRs are shown to be composable and to seamlessly subsume other well-known parallel programming patterns, thus providing a framework for heterogeneous designs. Second, it formally shows how the PCR pattern can be correctly implemented in terms of a more concrete parallel execution model. Third, it proposes a platform-agnostic C++ template library to express PCRs. It presents a prototype source-to-source compilation tool, based on C++ template rewriting, which automatically generates parallel implementations relying on the Intel CnCC++ library.
引用
收藏
页码:183 / 202
页数:19
相关论文
共 50 条
  • [1] Formal specification and implementation of an automated pattern-based parallel-code generation framework
    Perez, Gervasio
    Yovine, Sergio
    [J]. INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2019, 21 (02) : 183 - 202
  • [2] A Pattern-Based Approach to Formal Specification Construction
    Wang, Xi
    Liu, Shaoying
    Miao, Huaikou
    [J]. SOFTWARE ENGINEERING, BUSINESS CONTINUITY, AND EDUCATION, 2011, 257 : 159 - +
  • [3] Automated pattern-based pointcut generation
    Braem, Mathieu
    Gybels, Kris
    Kellens, Andy
    Vanderperren, Wim
    [J]. SOFTWARE COMPOSITION, 2006, 4089 : 66 - 81
  • [4] PLC Code Generation Based on a Formal Specification Language
    Darvas, Daniel
    Vinuela, Enrique Blanco
    Majzik, Istvan
    [J]. 2016 IEEE 14TH INTERNATIONAL CONFERENCE ON INDUSTRIAL INFORMATICS (INDIN), 2016, : 389 - 396
  • [5] Integrating Pattern-based Formal Requirements Specification in an Industrial Tool-chain
    Filipovikj, Predrag
    Jagerfield, Trevor
    Nyberg, Mattias
    Rodriguez-Navas, Guillermo
    Seceleanu, Cristina
    [J]. PROCEEDINGS 2016 IEEE 40TH ANNUAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE WORKSHOPS (COMPSAC), VOL 2, 2016, : 167 - 173
  • [6] Panda: a Pattern-based Programming System for Automatic Code Generation
    Mazzeranghi, Daniele
    [J]. JOURNAL OF OBJECT TECHNOLOGY, 2008, 7 (04): : 67 - 99
  • [7] Pattern-based specification of crowdsourcing applications
    Bozzon, Alessandro
    Brambilla, Marco
    Ceri, Stefano
    Mauri, Andrea
    Volonterio, Riccardo
    [J]. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2014, 8541 : 218 - 235
  • [8] Pattern-based specification of crowdsourcing applications
    [J]. 1600, Springer Verlag (8541):
  • [9] Pattern-Based Specification of Crowdsourcing Applications
    Bozzon, Alessandro
    Brambilla, Marco
    Ceri, Stefano
    Mauri, Andrea
    Volonterio, Riccardo
    [J]. WEB ENGINEERING, ICWE 2014, 2014, 8541 : 218 - 235
  • [10] A Pattern-Based Framework for Best Practice Implementation of CRM/FRBRoo
    Aalberg, Trond
    Vennesland, Audun
    Farrokhnia, Maliheh
    [J]. NEW TRENDS IN DATABASES AND INFORMATION SYSTEMS (ADBIS 2015), 2015, 539 : 438 - 447