Automatic Code Generation for Iterative Multi-dimensional Stencil Computations
Génération automatique de programmes pour des calcul multi-dimensionnels de type stencil
Abstract
We present a source-to-source auto-generating framework that enables a
large programmer community to easily and safely implement parallel
stencil codes within the framework of Ordered Read-Write Locks
(ORWL). It meets the specific needs of the application at a high level
of abstraction. ORWL is an inter-task synchronization model for
iterative data-oriented parallel and distributed algorithms that uses
strict FIFO ordering for the access to all resources. It guarantees
equity, liveness and efficiency for a wide range of applications. The
main hurdle for using ORWL lies in its initialization phase, where the
programmer has to specify the access scheme between tasks and
resources and the initial positions of the tasks in the FIFOs. We
provide a user-friendly interface based on a Domain-Specific Language
(DSL) that captures domain semantics and automatically generates ORWL
parallel high-performance stencil code. We conducted experiments that
proved the validity of our approach, as well as the efficiency and
scalability of the generated code.
Nous présentons un outil de génération automatique source-à source de
code qui permet à une grande communauté de programmeurs d'implémenter
des codes stencils dans le cadre des verous ordonnés de
lecture-écriture (ORWL), et ceci de façon facile et sûre. L'outil
proposé remplit les besoins spécifiques pour permettre un niveau
d'abstraction élevé. ORWL est un modèle de synchronisation entre
tâches pour des calculs itératifs qui sont centrés sur les données. Il
utilise un ordonnocement strict imposé par des files d'attentes qui
sont associées à toutes les resources. Ainsi, il garantit l'égalité,
la vivacité et l'efficacité pour une large catégorie d'applications.
L'obstacle majeur pour l'utilisation d'ORWL est sa phase
d'initialisation, où le programmeur doit spécifier le schéma d'accès
entre tâches et resources, ainsi que les positions initiales des
tâches dans les files d'attente. Nous fournissons une interface
conviviale, basée sur un langage dédié (DSL) qui capte la sémantique
spécifique au domaine et génère du code stencil parallèle de haute
performance. Nous avons effectué des expériences qui prouvent la
validité de notre approche, ainsi que l'efficacité et l'extensibilité
du code généré.
Origin | Files produced by the author(s) |
---|
Loading...