BOAST: A metaprogramming framework to produce portable and efficient computing kernels for HPC applications

in Paper

The journal article I co-authored with B. Videau within the Mont-Blanc project is now published in The International Journal of High Performance Computing Applications.

The part I wrote are related to the porting of Specfem3D to OpenCL, and testing non-regression using debugging traces.

  • 5.3 Porting SPECFEM3D application kernels: From CUDA to OpenCL using BOAST
  • 4.3 Non-regression testing using trace debugging

Mont-Blanc

The portability of real high-performance computing (HPC) applications on new platforms is an open and very delicate problem. Especially, the performance portability of the underlying computing kernels is problematic as they need to be tuned for each and every platform the application encounters. This article presents BOAST, a metaprogramming framework dedicated to computing kernels. BOAST allows the description of a kernel and its possible optimizations using a domain-specific language. BOAST runtime will then compare the different versions’performance as well as verify their exactness. BOAST is applied to three use cases: a Laplace kernel in OpenCL and two HPC applications BigDFT (electronic density computation) and SPECFEM3D (seismic and wave propagation).

Continue Reading

Interactive Runtime Verification - When Interactive Debugging Meets Runtime Verification

in Paper

The article I co-authored with R. Jakse got accepted at the 28th ISSRE conference. It will take place in Toulouse, France, on October 23-26th, 2017.

ISSRE

Monitoring is the study of a system at runtime, looking for input and output events to discover, check or enforce behavioral properties. Interactive debugging is the study of a system at runtime in order to discover and understand its bugs and fix them, inspecting interactively its internal state.

Interactive Runtime Verification (i-RV) combines monitoring and interactive debugging. We define an efficient and convenient way to check behavioral properties automatically on a program using a debugger. We aim at helping bug discovery while keeping the classical debugging techniques and interactivity, which allow understanding and fixing bugs.

Working on ExaNoDe and ExaNeSt projects at Virtual Open Systems

Since April 1st, 2017, I joined Virtual Open Systems SME, in Grenoble, France.

Virtual Open Systems

Virtual Open Systems is an innovative, agile and dynamic start-up company operating in linux, android, SMP virtualization and cloud computing software solutions. The company delivers most efficient software architectures products and services for heterogeneous embedded multi-core platforms that increase value to customers, helps them lower costs and reduce time to market while improving control, security and meeting new business requirements. The company’s core business is on virtualization solutions and virtualization custom extensions for complex heterogeneous multi-core SoC spanning from embedded to HPC, including the exascale. Our team consists of talented engineers with strong technical skills on KVM virtualization and Linux.

My work is focused on ExaNoDe and ExaNeSt, two European collaborative projects aiming at investigating high-performance, heterogeneous System-on-a-Chip (SoC) towards Exascale computing.

ExaNoDe ExaNeSt

In these projects, Virtual Open Systems is responsible for the Qemu virtualization layer, and in particular the creation of VM snapshots and checkpoints, as well as the virtualization of compute accelerators.

Team seminar 2017

in Presentation

As part of our annual team seminar, I’ve updated the GDB.py tutorial from the Rencontre de la Communauté Française de Compilation:

or

  • Presentation slides PDF
  • Exercise sheet MD
  • The exercise files TGZ

Understanding, Scripting and Extending GDB

Aussois 2017

The talk was divided in three parts:

  • GDB Under the Hood: an introduction to GDB internals
  • Your turn: Programming GDB in Python: discover GDB.py with simple examples/commands to run in the CLI
  • Your turn: New GDB Functionnalities: extend GDB with new commands and try them. I provide the command template, you fill the gaps
Continue Reading

Rencontre de la Communauté Française de Compilation

in Presentation

Last week I did an interactive presentation/tutorial in the 11th Rencontre de la Communauté Française de Compilation, in Aussois, France. It was entitled:

Understanding, Scripting and Extending GDB

JCF conference

The talk was divided in three parts:

  • GDB Under the Hood
  • Programming GDB in Python
  • Your turn

The first half is an introduction to GDB internals, and the second is an interactive tutorial that helps you writing new GDB commands in Python.

Continue Reading