Multi-dimensional Homomorphisms and Their Implementation in OpenCL.

Saved in:
Bibliographic Details
Title: Multi-dimensional Homomorphisms and Their Implementation in OpenCL.
Authors: Rasch, Ari1 a.rasch@uni-muenster.de, Gorlatch, Sergei1 gorlatch@uni-muenster.de
Source: International Journal of Parallel Programming. Feb2018, Vol. 46 Issue 1, p101-119. 19p.
Subjects: OpenCL (Computer program language), Homomorphisms, Graphics processing units, Central processing units, Parallel programming
Abstract: Homomorphisms (traditionally defined on lists) are functions that can be parallelized by the divide-and-conquer paradigm. In this paper, we introduce an extension of the traditional homomorphism concept- multi-dimensional homomorphisms (MDHs)-which capture parallelism on multi-dimensional arrays. We propose md_hom-a new parallel pattern (a.k.a. algorithmic skeleton), based on the MDH concept, to simplify parallel programming for a broad class of applications. The md_hom pattern is general enough to subsume common parallel patterns such as map and reduce, and also more complex functions built by composing and nesting several patterns. We present a generic implementation schema for md_hom in form of an efficient, correct-by-construction OpenCL pseudocode that targets various parallel architectures such as multi-core CPU and graphics processing unit (GPU). We develop our pseudocode schema as parametrized in tuning parameters: these allow to optimize the code for different devices and input sizes by performing an automated search on the parameter space. We evaluate the schematically generated, executable OpenCL code using the example of general matrix-vector multiplication (GEMV)-an important linear algebra routine which has gained more attention recently due to its use in the application area of deep learning-on two parallel architectures-Intel CPU and NVIDIA GPU. Our performance results are competitive and in some cases even better than the hand-tuned GEMV implementations provided by the state-of-the-art libraries Intel MKL and NVIDIA cuBLAS, as well as the auto-tunable OpenCL BLAS library CLBlast. [ABSTRACT FROM AUTHOR]
Copyright of International Journal of Parallel Programming is the property of Springer Nature 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
Full text is not displayed to guests.
FullText Links:
  – Type: pdflink
Text:
  Availability: 1
Header DbId: egs
DbLabel: Engineering Source
An: 127064438
AccessLevel: 6
PubType: Academic Journal
PubTypeId: academicJournal
PreciseRelevancyScore: 0
IllustrationInfo
Items – Name: Title
  Label: Title
  Group: Ti
  Data: Multi-dimensional Homomorphisms and Their Implementation in OpenCL.
– Name: Author
  Label: Authors
  Group: Au
  Data: <searchLink fieldCode="AR" term="%22Rasch%2C+Ari%22">Rasch, Ari</searchLink><relatesTo>1</relatesTo><i> a.rasch@uni-muenster.de</i><br /><searchLink fieldCode="AR" term="%22Gorlatch%2C+Sergei%22">Gorlatch, Sergei</searchLink><relatesTo>1</relatesTo><i> gorlatch@uni-muenster.de</i>
– Name: TitleSource
  Label: Source
  Group: Src
  Data: <searchLink fieldCode="JN" term="%22International+Journal+of+Parallel+Programming%22">International Journal of Parallel Programming</searchLink>. Feb2018, Vol. 46 Issue 1, p101-119. 19p.
– Name: Subject
  Label: Subjects
  Group: Su
  Data: <searchLink fieldCode="DE" term="%22OpenCL+%28Computer+program+language%29%22">OpenCL (Computer program language)</searchLink><br /><searchLink fieldCode="DE" term="%22Homomorphisms%22">Homomorphisms</searchLink><br /><searchLink fieldCode="DE" term="%22Graphics+processing+units%22">Graphics processing units</searchLink><br /><searchLink fieldCode="DE" term="%22Central+processing+units%22">Central processing units</searchLink><br /><searchLink fieldCode="DE" term="%22Parallel+programming%22">Parallel programming</searchLink>
– Name: Abstract
  Label: Abstract
  Group: Ab
  Data: Homomorphisms (traditionally defined on lists) are functions that can be parallelized by the divide-and-conquer paradigm. In this paper, we introduce an extension of the traditional homomorphism concept- multi-dimensional homomorphisms (MDHs)-which capture parallelism on multi-dimensional arrays. We propose md_hom-a new parallel pattern (a.k.a. algorithmic skeleton), based on the MDH concept, to simplify parallel programming for a broad class of applications. The md_hom pattern is general enough to subsume common parallel patterns such as map and reduce, and also more complex functions built by composing and nesting several patterns. We present a generic implementation schema for md_hom in form of an efficient, correct-by-construction OpenCL pseudocode that targets various parallel architectures such as multi-core CPU and graphics processing unit (GPU). We develop our pseudocode schema as parametrized in tuning parameters: these allow to optimize the code for different devices and input sizes by performing an automated search on the parameter space. We evaluate the schematically generated, executable OpenCL code using the example of general matrix-vector multiplication (GEMV)-an important linear algebra routine which has gained more attention recently due to its use in the application area of deep learning-on two parallel architectures-Intel CPU and NVIDIA GPU. Our performance results are competitive and in some cases even better than the hand-tuned GEMV implementations provided by the state-of-the-art libraries Intel MKL and NVIDIA cuBLAS, as well as the auto-tunable OpenCL BLAS library CLBlast. [ABSTRACT FROM AUTHOR]
– Name: AbstractSuppliedCopyright
  Label:
  Group: Ab
  Data: <i>Copyright of International Journal of Parallel Programming is the property of Springer Nature 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=127064438
RecordInfo BibRecord:
  BibEntity:
    Identifiers:
      – Type: doi
        Value: 10.1007/s10766-017-0508-z
    Languages:
      – Code: eng
        Text: English
    PhysicalDescription:
      Pagination:
        PageCount: 19
        StartPage: 101
    Subjects:
      – SubjectFull: OpenCL (Computer program language)
        Type: general
      – SubjectFull: Homomorphisms
        Type: general
      – SubjectFull: Graphics processing units
        Type: general
      – SubjectFull: Central processing units
        Type: general
      – SubjectFull: Parallel programming
        Type: general
    Titles:
      – TitleFull: Multi-dimensional Homomorphisms and Their Implementation in OpenCL.
        Type: main
  BibRelationships:
    HasContributorRelationships:
      – PersonEntity:
          Name:
            NameFull: Rasch, Ari
      – PersonEntity:
          Name:
            NameFull: Gorlatch, Sergei
    IsPartOfRelationships:
      – BibEntity:
          Dates:
            – D: 01
              M: 02
              Text: Feb2018
              Type: published
              Y: 2018
          Identifiers:
            – Type: issn-print
              Value: 08857458
          Numbering:
            – Type: volume
              Value: 46
            – Type: issue
              Value: 1
          Titles:
            – TitleFull: International Journal of Parallel Programming
              Type: main
ResultId 1