Advanced search
1 file | 638.28 KB Add to list

Rapid software prototyping for heterogeneous and distributed platforms

Author
Organization
Project
Abstract
The software needs of scientists and engineers are growing and their programs are becoming more compute-heavy and problem-specific. This has led to an influx of non-expert programmers, who need to use and program high-performance computing platforms. With the continued stagnation of single-threaded performance, using hardware accelerators such as GPUs or FPGAs is necessary. Adapting software to these compute platforms is a difficult task, especially for non-expert programmers, leading to applications being unable to take advantage of new hardware or requiring extensive rewrites. We propose a programming model that allows non-experts to benefit from high-performance computing, while enabling expert programmers to take full advantage of the underlying hardware. In this model, programs are generically typed, the location of the data is encoded in the type system, and multiple dispatch is used to select functionality based on the type of the data. This enables rapid prototyping, retargeting and reuse of existing software, while allowing for hardware specific optimization if required. Our approach allows development to happen in one source language enabling domain experts and performance engineers to jointly develop a program, without the overhead, friction, and challenges associated with developing in multiple programming languages for the same project. We demonstrate the viability and the core principles of this programming model in Julia using realistic examples, showing the potential of this approach for rapid prototyping, and its applicability for real-life engineering. We focus on usability for non-expert programmers and demonstrate that the potential of the underlying hardware can be fully exploited.
Keywords
Julia, Generic programming, Heterogeneous systems, CUDA, Distributed computing

Downloads

  • julia engineering.pdf
    • full text
    • |
    • open access
    • |
    • PDF
    • |
    • 638.28 KB

Citation

Please use this url to cite or link to this publication:

MLA
Besard, Tim, et al. “Rapid Software Prototyping for Heterogeneous and Distributed Platforms.” ADVANCES IN ENGINEERING SOFTWARE, vol. 132, Elsevier, 2019, pp. 29–46, doi:10.1016/j.advengsoft.2019.02.002.
APA
Besard, T., Churavy, V., Edelman, A., & De Sutter, B. (2019). Rapid software prototyping for heterogeneous and distributed platforms. ADVANCES IN ENGINEERING SOFTWARE, 132, 29–46. https://doi.org/10.1016/j.advengsoft.2019.02.002
Chicago author-date
Besard, Tim, Valentin Churavy, Alan Edelman, and Bjorn De Sutter. 2019. “Rapid Software Prototyping for Heterogeneous and Distributed Platforms.” ADVANCES IN ENGINEERING SOFTWARE 132: 29–46. https://doi.org/10.1016/j.advengsoft.2019.02.002.
Chicago author-date (all authors)
Besard, Tim, Valentin Churavy, Alan Edelman, and Bjorn De Sutter. 2019. “Rapid Software Prototyping for Heterogeneous and Distributed Platforms.” ADVANCES IN ENGINEERING SOFTWARE 132: 29–46. doi:10.1016/j.advengsoft.2019.02.002.
Vancouver
1.
Besard T, Churavy V, Edelman A, De Sutter B. Rapid software prototyping for heterogeneous and distributed platforms. ADVANCES IN ENGINEERING SOFTWARE. 2019;132:29–46.
IEEE
[1]
T. Besard, V. Churavy, A. Edelman, and B. De Sutter, “Rapid software prototyping for heterogeneous and distributed platforms,” ADVANCES IN ENGINEERING SOFTWARE, vol. 132, pp. 29–46, 2019.
@article{8607751,
  abstract     = {The software needs of scientists and engineers are growing and their programs are becoming more compute-heavy and problem-specific. This has led to an influx of non-expert programmers, who need to use and program high-performance computing platforms.
With the continued stagnation of single-threaded performance, using hardware accelerators such as GPUs or FPGAs is necessary. Adapting software to these compute platforms is a difficult task, especially for non-expert programmers, leading to applications being unable to take advantage of new hardware or requiring extensive rewrites.
We propose a programming model that allows non-experts to benefit from high-performance computing, while enabling expert programmers to take full advantage of the underlying hardware. In this model, programs are generically typed, the location of the data is encoded in the type system, and multiple dispatch is used to select functionality based on the type of the data. This enables rapid prototyping, retargeting and reuse of existing software, while allowing for hardware specific optimization if required.
Our approach allows development to happen in one source language enabling domain experts and performance engineers to jointly develop a program, without the overhead, friction, and challenges associated with developing in multiple programming languages for the same project.
We demonstrate the viability and the core principles of this programming model in Julia using realistic examples, showing the potential of this approach for rapid prototyping, and its applicability for real-life engineering. We focus on usability for non-expert programmers and demonstrate that the potential of the underlying hardware can be fully exploited.},
  author       = {Besard, Tim and Churavy, Valentin and Edelman, Alan and De Sutter, Bjorn},
  issn         = {0965-9978},
  journal      = {ADVANCES IN ENGINEERING SOFTWARE},
  keywords     = {Julia,Generic programming,Heterogeneous systems,CUDA,Distributed computing},
  language     = {eng},
  pages        = {29--46},
  publisher    = {Elsevier},
  title        = {Rapid software prototyping for heterogeneous and distributed platforms},
  url          = {http://dx.doi.org/10.1016/j.advengsoft.2019.02.002},
  volume       = {132},
  year         = {2019},
}

Altmetric
View in Altmetric
Web of Science
Times cited: