Musket: A Domain-Specific Language for High-Level Parallel Programming with Algorithmic Skeletons

被引:11
|
作者
Rieger, Christoph [1 ]
Wrede, Fabian [1 ]
Kuchen, Herbert [1 ]
机构
[1] Univ Munster, ERCIS, Munster, Germany
关键词
Domain-Specific Language; Algorithmic Skeletons; High-level Parallel Programming; High Performance Computing;
D O I
10.1145/3297280.3297434
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
Parallel programming for an infrastructure of multi-core or many-core clusters is a challenge for developers without experience in this domain. Developers need to use several libraries such as MPI, OpenMP, and CUDA to efficiently use the hardware which may include additional accelerators such as GPUs. Also, performing low-level optimizations is required in order to reach high performance. One approach to overcome these issues is the concept of Algorithmic Skeletons. These are instances of typical patterns for parallel programming, such as map, fold, and zip, which can simply be composed by an application programmer without taking care of low-level programming aspects. We propose a domain-specific language called Musket that includes algorithmic skeletons as domain abstractions which seamlessly integrate with sequential code while aligning with the C++ programming language for fast learnability. For improved usability, the editing component validates the correctness of models and provides solution hints in the integrated development environment. From the naive program specification, automatic transformations are applied in order to optimize the code for parallel execution. Subsequently, low-level C++ programs are generated which are optimized for multi-core parallelism on a cluster infrastructure. We evaluate the language using benchmark models written in our DSL and compare the execution time and speedup achieved through model preprocessing and code generation. Our experimental results show that the performance of Musket programs can be significantly improved through intermediate optimizations. The DSL approach thus simplifies multi-core application development and enables performance optimizations through model transformations.
引用
收藏
页码:1534 / 1543
页数:10
相关论文
共 50 条
  • [1] Guest Editorial: High-Level Parallel Programming with Algorithmic Skeletons
    Gorlatch, Sergei
    Kuchen, Herbert
    [J]. INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2018, 46 (01) : 1 - 3
  • [2] Guest Editorial: High-Level Parallel Programming with Algorithmic Skeletons
    Sergei Gorlatch
    Herbert Kuchen
    [J]. International Journal of Parallel Programming, 2018, 46 : 1 - 3
  • [3] A domain-specific high-level programming model
    Mansouri, Farouk
    Huet, Sylvain
    Houzet, Dominque
    [J]. CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2016, 28 (03): : 750 - 767
  • [4] Generation of high-performance code based on a domain-specific language for algorithmic skeletons
    Wrede, Fabian
    Rieger, Christoph
    Kuchen, Herbert
    [J]. JOURNAL OF SUPERCOMPUTING, 2020, 76 (07): : 5098 - 5116
  • [5] Generation of high-performance code based on a domain-specific language for algorithmic skeletons
    Fabian Wrede
    Christoph Rieger
    Herbert Kuchen
    [J]. The Journal of Supercomputing, 2020, 76 : 5098 - 5116
  • [6] High-Level Parallel Ant Colony Optimization with Algorithmic Skeletons
    Breno A. de Melo Menezes
    Nina Herrmann
    Herbert Kuchen
    Fernando Buarque de Lima Neto
    [J]. International Journal of Parallel Programming, 2021, 49 : 776 - 801
  • [7] High-Level Parallel Ant Colony Optimization with Algorithmic Skeletons
    de Melo Menezes, Breno A.
    Herrmann, Nina
    Kuchen, Herbert
    Buarque de Lima Neto, Fernando
    [J]. INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2021, 49 (06) : 776 - 801
  • [8] A Domain-Specific Embedded Language for Programming Parallel Architectures
    McGuiness, Jason
    Egan, Colin
    [J]. 2013 12TH INTERNATIONAL SYMPOSIUM ON DISTRIBUTED COMPUTING AND APPLICATIONS TO BUSINESS, ENGINEERING & SCIENCE (DCABES), 2013, : 83 - 88
  • [9] Domain-Specific Augmentations for High-Level Synthesis
    Schmid, Moritz
    Tanase, Alexandru
    Hannig, Frank
    Teich, Juergen
    Bhadouria, Vivek Singh
    Ghoshal, Dibyendu
    [J]. PROCEEDINGS OF THE 2014 IEEE 25TH INTERNATIONAL CONFERENCE ON APPLICATION-SPECIFIC SYSTEMS, ARCHITECTURES AND PROCESSORS (ASAP 2014), 2014, : 173 - 177
  • [10] A high-level domain-specific language for SIEM (design, development and formal verification)
    Nazir, Anam
    Alam, Masoom
    Malik, Saif U. R.
    Akhunzada, Adnan
    Cheema, Muhammad Nadeem
    Khan, Muhammad Khurram
    Ziang, Yang
    Khan, Tanveer
    Khan, Abid
    [J]. CLUSTER COMPUTING-THE JOURNAL OF NETWORKS SOFTWARE TOOLS AND APPLICATIONS, 2017, 20 (03): : 2423 - 2437