Treffer: Provably and Practically Efficient Granularity Control

Title:
Provably and Practically Efficient Granularity Control
Contributors:
Carnegie Mellon University [Pittsburgh] (CMU), Langages de programmation, types, compilation et preuves (GALLIUM), Centre Inria de Paris, Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria), National Research University of Information Technologies, Mechanics and Optics [St. Petersburg] (ITMO), Compilation pour les Architectures MUlti-coeurS (CAMUS), Centre Inria de l'Université de Lorraine, Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-Laboratoire des sciences de l'ingénieur, de l'informatique et de l'imagerie (ICube), École Nationale du Génie de l'Eau et de l'Environnement de Strasbourg (ENGEES)-Université de Strasbourg (UNISTRA)-Hôpitaux Universitaires de Strasbourg (HUS)-Institut National des Sciences Appliquées - Strasbourg (INSA Strasbourg), Institut National des Sciences Appliquées (INSA)-Institut National des Sciences Appliquées (INSA)-Centre National de la Recherche Scientifique (CNRS)-Matériaux et Nanosciences Grand-Est (MNGE), Université de Strasbourg (UNISTRA)-Université de Haute-Alsace (UHA) Mulhouse - Colmar (Université de Haute-Alsace (UHA))-Institut National de la Santé et de la Recherche Médicale (INSERM)-Institut de Chimie - CNRS Chimie (INC-CNRS)-Centre National de la Recherche Scientifique (CNRS)-Université de Strasbourg (UNISTRA)-Université de Haute-Alsace (UHA) Mulhouse - Colmar (Université de Haute-Alsace (UHA))-Institut National de la Santé et de la Recherche Médicale (INSERM)-Institut de Chimie - CNRS Chimie (INC-CNRS)-Centre National de la Recherche Scientifique (CNRS)-Réseau nanophotonique et optique, Université de Strasbourg (UNISTRA)-Université de Haute-Alsace (UHA) Mulhouse - Colmar (Université de Haute-Alsace (UHA))-Centre National de la Recherche Scientifique (CNRS)-Université de Strasbourg (UNISTRA)-Centre National de la Recherche Scientifique (CNRS)-École Nationale du Génie de l'Eau et de l'Environnement de Strasbourg (ENGEES)-Université de Strasbourg (UNISTRA)-Hôpitaux Universitaires de Strasbourg (HUS)-Institut National des Sciences Appliquées - Strasbourg (INSA Strasbourg), Université de Strasbourg (UNISTRA)-Université de Haute-Alsace (UHA) Mulhouse - Colmar (Université de Haute-Alsace (UHA))-Centre National de la Recherche Scientifique (CNRS)-Université de Strasbourg (UNISTRA)-Centre National de la Recherche Scientifique (CNRS), Laboratoire des sciences de l'ingénieur, de l'informatique et de l'imagerie (ICube), Indiana University [Bloomington], Indiana University System, European Project: 308246,ERC-2012-StG_20111012,ERC-2012-StG_20111012,DEEPSEA(2013)
Source:
PPoPP 2019 - Principles and Practice of Parallel Programming, Feb 2019, Washington DC, United States. ⟨10.1145/3293883.3295725⟩
Publisher Information:
CCSD, 2019.
Publication Year:
2019
Collection:
collection:INSERM
collection:CNRS
collection:INRIA
collection:ENGEES
collection:INRIA-ROCQ
collection:GALLIUM
collection:UNIV-STRASBG
collection:INRIA_TEST
collection:LORIA2
collection:INRIA-NANCY-GRAND-EST
collection:INSA-STRASBOURG
collection:TESTALAIN1
collection:UNIV-LORRAINE
collection:INRIA2
collection:INC-CNRS
collection:AGREENIUM
collection:SITE-ALSACE
collection:INSA-GROUPE
collection:TEST2-HALCNRS
collection:INRIA-ETATSUNIS
collection:UNIVOAK
collection:UMR7357
Subject Geographic:
Original Identifier:
HAL: hal-01973285
Document Type:
Konferenz conferenceObject<br />Conference papers
Language:
English
Relation:
info:eu-repo/semantics/altIdentifier/doi/10.1145/3293883.3295725; info:eu-repo/grantAgreement//308246/EU/Parallelism and Beyond: Dynamic Parallel Computation for Efficiency and High Performance/DEEPSEA
DOI:
10.1145/3293883.3295725
Rights:
info:eu-repo/semantics/OpenAccess
Accession Number:
edshal.hal.01973285v2
Database:
HAL

Weitere Informationen

Over the past decade, many programming languages and systems for parallel-computing have been developed, e.g., Fork/Join and Habanero Java, Parallel Haskell, Parallel ML, and X10. Although these systems raise the level of abstraction for writing parallel codes, performance continues to require labor-intensive optimizations for coarsening the granularity of parallel executions. In this paper, we present provably and practically efficient techniques for controlling granularity within the run-time system of the language. Our starting point is "oracle-guided scheduling", a result from the functional-programming community that shows that granularity can be controlled by an "oracle" that can predict the execution time of parallel codes. We give an algorithm for implementing such an oracle and prove that it has the desired theoretical properties under the nested-parallel programming model. We implement the oracle in C++ by extending Cilk and evaluate its practical performance. The results show that our techniques can essentially eliminate hand tuning while closely matching the performance of hand tuned codes.