Skip to content

2022

xDSL at the ExCALIBUR workshop

This week saw the two day ExCALIBUR workshop held at the Met Office where representatives from across the programme met and discussed project-level updates as well as opportunities for collaboration and interaction during the research. There were some very interesting projects presented, and clearly the programme is doing a fantastic job pushing UK science towards exascale and beyond.

As part of this workshop xDSL PI, Tobias Grosser, gave an update about the xDSL project itself and, considering that xDSL has been running for almost a year, this was also an ideal opportunity to take stock of where we are as a project, to reflect on early successes, and refine the strategy going forwards into the next two years. Tobias described the underlying xDSL framework that has been developed in the past 12 months, before highlighting work that has been undertaken to build on this for both the existing PSyclone and Devito DSLs.

The compilers of both these existing DSLs have been enhanced to run on-top of the xDSL stack, with bespoke dialects and transformations provided which are expressed via the IRDL MLIR-DSL. Exploitation of distributed memory parallelism and GPUs is also possible with xDSL, for instance the PSyclone xDSL work already having been demonstrated to run on 32768 cores of ARCHER2 and V100 GPUs. Moving forwards, the integration with xDSL provides numerous opportunities, including the ability to leverage the LLVM ecosystem more widely and easily build upon work being done elsewhere by the community.

DSL PASC mini-symposium

The Platform for Advanced Scientific Computing (PASC) Conference brings together domain scientists, computer scientists, HPC professionals, and vendors to talk about some of the challenges and opportunities we face in HPC. Held annually and located this year in Basel, it will be the first time since 2019 that the conference has been in-person albeit with an additional online component too for those who can not travel.

PASC should be especially interesting this year due to the recent news that the Frontier US machine has broken the exaflop barrier, moving us truely into the exascale era. However a key challenge is being able to exploit such supercomputers, and that is where a lot of the focus of PASC lies. Our interests are obviously around using DSLs to raise the abstraction level, enabling programmers to concentrate on the science of their simulation rather than having to be bogged down with the tricky, low level details of parallelism.

To this end we have organised a mini-symposium around DSLs titled Domain Specific Languages (DSLs) for Revolutionising HPC Code Development: A Panacea or Empty Promises? where we will be bringing together some of the community’s leading players to discuss the role of DSLs and how we should be driving forward this important enabling technology.

There will be three talks and a panel session as part of PASC, where we will start with a talk from Chris Maynard from the Met Office who will be talking about the PSyclone DSL used for climate and weather codes (more details here). This will then be followed by Nicolas Vasilache from Google who will talk about compiler innovations more widely and how recent developments and technology trends are very exciting for this area (more details here). The third talk will be from Daniel Shapero, who is a senior research scientist at the Polar Science Center of the University of Washington, and he will be talking from the user perspective around developing libraries on-top of DSLs (more details here). The session will then conclude with a panel where we will discuss some of the themes raised and challenges identified.

The session is running on Wednesday 29th of June between 2pm and 4pm CEST both in-person and online, if you are interested in attending then you can register for PASC here.

IRDL paper presented at PLDI conference

IRDL is a domain-specific language to define intermediate representations (IRs). This is important because the current state-of-the-art with MLIR is to define a dialect using C++ and MLIR specific constructions which is a complex and time consuming process that required substantial expertise. By contrast IRDL is presented as a set of Python decorators and classes, readily enabling compiler developers to define a dialect and transformations upon this.

Of-course the definition of a DSL for IR construction is not enough, one also needs to demonstrate that this is capable of expressing the wide variety of existing IR dialects, and to that end Fehr analyzed all twenty eight domain-specific IRs developed as part of LLVM’s MLIR over the last two years and demonstrated how to express these exclusively in IRDL, only rarely requiring IRDL’s support for C++ extensions.

The flexibility and productivity offered by IRDL is the reason why this is one of the key technologies used in the xDSL project, with xDSL itself relying heavily on it. To date we have had some excellent results using IRDL when defining our DSL dialects in this project.

For more information

A preprint of the paper can be read here.