• No results found

Single Assignment C: HP^2 programming for heterogeneous concurrent architectures - SchoHerhGrelERIC10

N/A
N/A
Protected

Academic year: 2021

Share "Single Assignment C: HP^2 programming for heterogeneous concurrent architectures - SchoHerhGrelERIC10"

Copied!
2
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

UvA-DARE is a service provided by the library of the University of Amsterdam (https://dare.uva.nl)

UvA-DARE (Digital Academic Repository)

Single Assignment C: HP^2 programming for heterogeneous concurrent

architectures

Scholz, S.-B.; Herhut, S.; Grelck, C.

Publication date

2010

Document Version

Accepted author manuscript

Published in

Intel European Research and Innovation Conference (ERIC'10), Braunschweig, Germany

Link to publication

Citation for published version (APA):

Scholz, S-B., Herhut, S., & Grelck, C. (2010). Single Assignment C: HP^2 programming for

heterogeneous concurrent architectures. In Intel European Research and Innovation

Conference (ERIC'10), Braunschweig, Germany

General rights

It is not permitted to download or to forward/distribute the text or part of it without the consent of the author(s) and/or copyright holder(s), other than for strictly personal, individual use, unless the work is under an open content license (like Creative Commons).

Disclaimer/Complaints regulations

If you believe that digital publication of certain material infringes any of your rights or (privacy) interests, please let the Library know, stating your reasons. In case of a legitimate complaint, the Library will make the material inaccessible and/or remove it from the website. Please Ask the Library: https://uba.uva.nl/en/contact, or a letter to: Library of the University of Amsterdam, Secretariat, Singel 425, 1012 WP Amsterdam, The Netherlands. You will be contacted as soon as possible.

(2)

Single Assignment C: HP

2

Programming for Heterogeneous

Con-current Architectures

Sven-Bodo Scholz1, Stephan Herhut1, Clemens Grelck2 1 University of Hertfordshire, Hatfield, United Kingdom 2 University of Amsterdam, Amsterdam, The Netherlands

s.scholz@herts.ac.uk

Summary

The range of architectures used in high-performance computing is quickly expanding and at the same time life-times of platforms are decreasing. This shift threatens the return on investment for tuning applications to specific architectures and platforms, which until now was the prevailing development model in high-performance com-puting. As a result, the reusability of software components and the ability to execute existing code efficiently on existing and future architectures come to be key concerns in high-performance computing. This observation lies at the heart of HP2 programming: to combine high-performance with high-productivity. With Single Assignment C and its attending compiler technology, we have developed a programming system that puts HP2 to practice.

1 Single Assignment C

Single Assignment C [1], or SAC for short, is a pro-gramming languages geared towards efficient specifi-cation and execution of numerical applispecifi-cations on concurrent hardware. It was designed from ground up with programmer productivity and runtime efficiency in mind.

To facilitate the former, SAC foots on the familiar syntax of C, extended by an array calculus similar to that of APL and MATLAB. Memory management and data placement is fully implicit in SAC to allow the programmer to concentrate on the task at hand. Achieving the latter is the result of more than a de-cade in compiler research. Array computations in SAC ultimately boil down to a single, potentially par-allel operation similar to the well-known map and re-duce operations. That operation exposes the applica-tion’s implicit concurrency at a fine granular level. Using a variety of transformations, sequences of such operation are mapped efficiently to platforms of vary-ing granularity, from sequential execution on a svary-ingle core to thousands of threads on experimental hard-ware.

Our compiler suite translates SAC to a variety of tar-gets. Combined with a flexible foreign language inter-face, this makes SAC ideally suited as a domain spe-cific language for computationally intensive kernels within larger applications.

2 Evaluation

SAC has been evaluated in a range of projects to as-sess its suitability to quickly port existing

applica-tions, or hot kernels thereof, that were written in in-dustry standard imperative languages like C or For-tran to a range of platforms. A. Shafarenko et al. have shown that an experienced Fortran programmer can quickly become productive in SAC. The resulting portable code even outperforms its Fortran counter-part [2]. Similarly, A. Kudryavtsev et al. report that they observed competitive sequential runtimes and, more importantly, automatic scaling on SMP ma-chines [3]. In the context of OpenModelica, K. Stavåker, et al. have used SAC as a backend for their own compiler, thereby unlocking the power of GPGPU for their tool chain with little investment [4].

Publications

[1] C. Grelck and S.-B. Scholz. SAC: A Functional Array Language for Efficient Multithreaded Execu-tion. Int. J. Parallel Prog, 34(4):383–427, 2006. [2] A. Shafarenko, et al. Implementing a Numerical Solution of the KPI Equation using Single Assign-ment C: Lessons and Experiences. In: IFL’05. Se-lected Papers. LNCS 4015. Springer, 2006.

[3] A. Kudryavtsev, et al. Numerical Simulations of Unsteady Shock Wave Interactions using SAC and Fortran-90. In: PaCT’09. LNCS 5698. Springer, 2009. [4] K. Stavåker, et al. Compilation of Modelica Array Computations into Single Assignment C for Efficient Execution on CUDA-enabled GPU. In: EOOLT’10, Oslo, Norway, 2010.

♦ Supported by research grants FP7/2007/215216 Apple-CORE and FP7/2009/248828 ADVANCE.

Referenties

GERELATEERDE DOCUMENTEN

Atte Jongstra heeft dus niet een volstrekt willekeurig onderwerp gekozen voor zijn tweede roman Groente.. De moestuin waarin zijn - zeer schimmige - verteller en hoofdpersoon

Based on the numerical results in Section 5.4, for moderate sized problems, say n < 20, all heuristics oers tight upper bounds, but our KKT point heuristic is time

Deviations in values of variables due to logic upsets are determined by three factors — (1) the logic upsets occurring within machine words representing variables of a given type,

in een optimaal sociaal leerproces gericht op duurzaamheid leren niet alleen de leden van de kerngroep, maar leert de omgeving mee. De kerngroep moet niet een select groepje van

Zolang het water niet te voedselrijk is en er ondiepe oever­ zones aanwezig zijn met modder is deze soort tevreden. Bij ons is het een soort van

Voordracht gehouden door Drs H. PLEYSIER op de. Jaarvergadering van Wimecos op 3 Januari 1952. De titel van het onderwerp dat onze aandacht vraagt, eist een nadere

val in de tijd wordt voorafgegaan door 'falende verdedigingen', 'onveilige handelingen' van de directe betrokkenen, 'psychologische voorlopers' van deze handelingen, en

Subse- quently, to cause the haplotype blocks of the cell, and concomitantly the copy-number information of these haplotype(s), to emerge, the single-cell SNP BAF values are