SAC—A Functional Array Language for Efficient Multi-threaded Execution

被引:0
|
作者
Clemens Grelck
Sven-Bodo Scholz
机构
[1] University of Lübeck,Institute of Software Technology and Programming Languages
[2] University of Hertfordshire,Department of Computer Science
关键词
Compiler optimisation; data parallel programming; multi-threading; Single Assignment C;
D O I
暂无
中图分类号
学科分类号
摘要
We give an in-depth introduction to the design of our functional array programming language SaC, the main aspects of its compilation into host machine code, and its parallelisation based on multi-threading. The language design of SaC aims at combining high-level, compositional array programming with fully automatic resource management for highly productive code development and maintenance. We outline the compilation process that maps SaC programs to computing machinery. Here, our focus is on optimisation techniques that aim at restructuring entire applications from nested compositions of general fine-grained operations into specialised coarse-grained operations. We present our implicit parallelisation technology for shared memory architectures based on multi-threading and discuss further optimisation opportunities on this level of code generation. Both optimisation and parallelisation rigorously exploit the absence of side-effects and the explicit data flow characteristic of a functional setting.
引用
收藏
页码:383 / 427
页数:44
相关论文
共 50 条
  • [1] SAC - A functional array language for efficient multi-threaded execution
    Grelck, Clemens
    Scholz, Sven-Bodo
    [J]. INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2006, 34 (04) : 383 - 427
  • [2] A multi-threaded asynchronous language
    Paulino, H
    Marques, P
    Lopes, L
    Vasconcelos, V
    Silva, F
    [J]. PARALLEL COMPUTING TECHNOLOGIES, PROCEEDINGS, 2003, 2763 : 316 - 323
  • [3] Execution replay and debugging of distributed multi-threaded parallel programs
    de Kergommeaux, JC
    Ronsse, M
    De Bosschere, K
    [J]. COMPUTERS AND ARTIFICIAL INTELLIGENCE, 2000, 19 (06): : 511 - 526
  • [4] LIME: A Framework for Debugging Load Imbalance in Multi-threaded Execution
    Oh, Jungju
    Hughes, Christopher J.
    Venkataramani, Guru
    Prvulovic, Milos
    [J]. 2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2011, : 201 - 210
  • [5] Multi-Threaded control of NAND Flash memory array
    Nubile, Luca
    De Santis, Luca
    Cardinali, Riccardo
    [J]. 2021 IEEE WORKSHOP ON MICROELECTRONICS AND ELECTRON DEVICES (WMED), 2021, : 28 - 31
  • [6] ANALYSIS OF MULTI-THREADED CODE EXECUTION ON SMALL MULTI-CORE ARCHITECTURES
    Sgroi, Kevin J.
    Spetka, Scott E.
    [J]. PROCEEDINGS OF THE ASME INTERNATIONAL DESIGN ENGINEERING TECHNICAL CONFERENCES AND COMPUTERS AND INFORMATION IN ENGINEERING CONFERENCE, DETC 2010, VOL 3, A AND B, 2010, : 807 - 814
  • [7] Improved typings for probabilistic noninterference in a multi-threaded language
    Smith, Geoffrey
    [J]. JOURNAL OF COMPUTER SECURITY, 2006, 14 (06) : 591 - 626
  • [8] Complexity Information Flow in a Multi-threaded Imperative Language
    Marion, Jean-Yves
    Pechoux, Romain
    [J]. THEORY AND APPLICATIONS OF MODELS OF COMPUTATION (TAMC 2014), 2014, 8402 : 124 - 140
  • [9] Multi-threaded Code Generation Tool for Synchronous Language
    Yang, Zhi-Bin
    Yuan, Sheng-Hao
    Xie, Jian
    Zhou, Yong
    Chen, Zhe
    Xue, Lei
    Bodevix, Jean-Paul
    Filali, Mamoun
    [J]. Ruan Jian Xue Bao/Journal of Software, 2019, 30 (07): : 1980 - 2002
  • [10] Symbolic Partial-Order Execution for Testing Multi-Threaded Programs
    Schemmel, Daniel
    Buening, Julian
    Rodriguez, Cesar
    Laprell, David
    Wehrle, Klaus
    [J]. COMPUTER AIDED VERIFICATION (CAV 2020), PT I, 2020, 12224 : 376 - 400