Compilation of a specialized functional language for massively parallel computers

  • Authors:
  • Pascal Fradet;Julien Mallet

  • Affiliations:
  • IRISA, Campus de Beaulieu, 35042 Rennes, France (e-mail: fradet@irisa.fr, mallet@irisa.fr);IRISA, Campus de Beaulieu, 35042 Rennes, France (e-mail: fradet@irisa.fr, mallet@irisa.fr)

  • Venue:
  • Journal of Functional Programming
  • Year:
  • 2000

Quantified Score

Hi-index 0.01

Visualization

Abstract

We propose a parallel specialized language that ensures portable and cost-predictable implementations on parallel computers. The language is basically a first-order, recursion-less, strict functional language equipped with a collection of higher-order functions or skeletons. These skeletons apply on (nested) vectors and can be grouped into four classes: computation, reorganization, communication and mask skeletons. The compilation process is described as a series of transformations and analyses leading to SPMD-like functional programs which can be directly translated into real parallel code. The language restrictions enforce a programming discipline whose benefit is to allow a static, symbolic and accurate cost analysis. The parallel cost takes into account both load balancing and communications, and can be statically evaluated even when the actual size of vectors or the number of processors are unknown. It is used to automatically select the best data distribution among a set of standard distributions. Interestingly, this work can be seen as a cross-fertilization between techniques developed within the FORTRAN parallelization, skeleton and functional programming communities.