Rapid software prototyping for heterogeneous and distributed platforms.

Saved in:
Bibliographic Details
Title: Rapid software prototyping for heterogeneous and distributed platforms.
Authors: Besard, Tim1 (AUTHOR) tim.besard@ugent.be, Churavy, Valentin2 (AUTHOR) vchuravy@mit.edu, Edelman, Alan2 (AUTHOR) edelman@mit.edu, Sutter, Bjorn De1 (AUTHOR) bjorn.desutter@ugent.be
Source: Advances in Engineering Software (1992). Jun2019, Vol. 132, p29-46. 18p.
Subjects: Rapid prototyping, Computing platforms, Programming languages, Computer software reusability, Scientists, Performance evaluation, High performance computing
Abstract: Highlights • We present a set of array abstractions and implementations thereof in the CuArrays.jl and DistributedArrays.jl packages that enable rapid development of solutions for real-world engineering problems, and at the same time enable the exploitation of heterogeneous high-performance hardware. • We demonstrate the composability of the abstractions and underlying infrastructure, and show how it facilitates separation of concerns regarding what is computed, where the underlying data is stored, and how communication happens. • We discuss portability issues and argue how the proposed abstractions handle them. • We present a performance evaluation that demonstrates the extent of the composability and the ease with which the potential of heterogeneous hardware can be exploited. 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. [ABSTRACT FROM AUTHOR]
Copyright of Advances in Engineering Software (1992) is the property of Elsevier B.V. and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract. (Copyright applies to all Abstracts.)
Database: Engineering Source
FullText Text:
  Availability: 0
Header DbId: egs
DbLabel: Engineering Source
An: 135959468
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: Rapid software prototyping for heterogeneous and distributed platforms.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Besard%2C+Tim%22">Besard, Tim</searchLink><relatesTo>1</relatesTo> (AUTHOR)<i> tim.besard@ugent.be</i><br /><searchLink fieldCode="AR" term="%22Churavy%2C+Valentin%22">Churavy, Valentin</searchLink><relatesTo>2</relatesTo> (AUTHOR)<i> vchuravy@mit.edu</i><br /><searchLink fieldCode="AR" term="%22Edelman%2C+Alan%22">Edelman, Alan</searchLink><relatesTo>2</relatesTo> (AUTHOR)<i> edelman@mit.edu</i><br /><searchLink fieldCode="AR" term="%22Sutter%2C+Bjorn+De%22">Sutter, Bjorn De</searchLink><relatesTo>1</relatesTo> (AUTHOR)<i> bjorn.desutter@ugent.be</i>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="JN" term="%22Advances+in+Engineering+Software+%281992%29%22">Advances in Engineering Software (1992)</searchLink>. Jun2019, Vol. 132, p29-46. 18p.
– Name: Subject
  Label: Subjects
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22Rapid+prototyping%22">Rapid prototyping</searchLink><br /><searchLink fieldCode="DE" term="%22Computing+platforms%22">Computing platforms</searchLink><br /><searchLink fieldCode="DE" term="%22Programming+languages%22">Programming languages</searchLink><br /><searchLink fieldCode="DE" term="%22Computer+software+reusability%22">Computer software reusability</searchLink><br /><searchLink fieldCode="DE" term="%22Scientists%22">Scientists</searchLink><br /><searchLink fieldCode="DE" term="%22Performance+evaluation%22">Performance evaluation</searchLink><br /><searchLink fieldCode="DE" term="%22High+performance+computing%22">High performance computing</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: Highlights • We present a set of array abstractions and implementations thereof in the CuArrays.jl and DistributedArrays.jl packages that enable rapid development of solutions for real-world engineering problems, and at the same time enable the exploitation of heterogeneous high-performance hardware. • We demonstrate the composability of the abstractions and underlying infrastructure, and show how it facilitates separation of concerns regarding what is computed, where the underlying data is stored, and how communication happens. • We discuss portability issues and argue how the proposed abstractions handle them. • We present a performance evaluation that demonstrates the extent of the composability and the ease with which the potential of heterogeneous hardware can be exploited. 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. [ABSTRACT FROM AUTHOR]
– Name: AbstractSuppliedCopyright
  Label:
  Group: Ab
  Data: <i>Copyright of Advances in Engineering Software (1992) is the property of Elsevier B.V. and its content may not be copied or emailed to multiple sites without the copyright holder's express written permission. Additionally, content may not be used with any artificial intelligence tools or machine learning technologies. However, users may print, download, or email articles for individual use. This abstract may be abridged. No warranty is given about the accuracy of the copy. Users should refer to the original published version of the material for the full abstract.</i> (Copyright applies to all Abstracts.)
PLink https://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=egs&AN=135959468
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1016/j.advengsoft.2019.02.002
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 18
        StartPage: 29
    Subjects:
      – SubjectFull: Rapid prototyping
        Type: general
      – SubjectFull: Computing platforms
        Type: general
      – SubjectFull: Programming languages
        Type: general
      – SubjectFull: Computer software reusability
        Type: general
      – SubjectFull: Scientists
        Type: general
      – SubjectFull: Performance evaluation
        Type: general
      – SubjectFull: High performance computing
        Type: general
    Titles:
      – TitleFull: Rapid software prototyping for heterogeneous and distributed platforms.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Besard, Tim
      – PersonEntity:
          Name:
            NameFull: Churavy, Valentin
      – PersonEntity:
          Name:
            NameFull: Edelman, Alan
      – PersonEntity:
          Name:
            NameFull: Sutter, Bjorn De
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 06
              Text: Jun2019
              Type: published
              Y: 2019
          Identifiers:
            – Type: issn-print
              Value: 09659978
          Numbering:
            – Type: volume
              Value: 132
          Titles:
            – TitleFull: Advances in Engineering Software (1992)
              Type: main
ResultId 1