MobilityReadingGroup

π-calculus, Session Types research at Imperial College

Protocol-Driven MPI Program Generation
Nicholas NG, Nobuko YOSHIDA
Behavioural Types: from Theory to Tools. p. 329 - 352

This chapter presents Parameterised Scribble (Pabble), an extension of the Scribble language to capture scalable protocols, and a top-down, code generation framework of Message-Passing Interface (MPI) programs. The code generation process begins with defining a Pabble protocol for the topology of the MPI application. An MPI parallel program skeleton is automatically generated from the protocol, which can then be merged with code kernels defining their behaviours. The merging process is fully automated through the use of an aspect-oriented compilation tool. Pabble protocols are parameterised over the number of roles at runtime, and are grounded on theories of parameterised multiparty session types (MPST) where valid Pabble protocols can ensure safety and progress of communication in the generated MPI programs. Using the framework, programmers only need to supply the intended Pabble protocol and provide code kernels to obtain parallelised programs. Since the skeleton generation and the merging process are automatic, the framework not only simplifies the development of MPI programs, the output programs are efficient and scalable MPI applications, that are guaranteed, free from communication mismatch, type errors or deadlocks by construction, improving productivity of programmers.

@article{NY2017,
  author = {Nicholas Ng and Nobuko Yoshida},
  title = {{Protocol-Driven MPI Program Generation}},
  journal = {Behavioural Types: from Theory to Tools},
  pages = {329--352},
  publisher = {River Publishers},
  year = 2017
}
@article{NY2017,
  author = {Nicholas Ng and Nobuko Yoshida},
  title = {{Protocol-Driven MPI Program Generation}},
  journal = {Behavioural Types: from Theory to Tools},
  pages = {329--352},
  publisher = {River Publishers},
  doi = "10.13052/rp-9788793519817",
  year = 2017
}