SC21 Proceedings

The International Conference for High Performance Computing, Networking, Storage, and Analysis

Adopting a Common Ecosystem for DSL Development


Authors: Nick Brown (Edinburgh Parallel Computing Centre (EPCC), University of Edinburgh), Paul Kelly (Imperial College, London), Gihan Mudalige (University of Warwick), Tobias Grosser (University of Edinburgh)

Abstract: Domain Specific Languages (DSLs) are a powerful way of providing programmer productivity and performance when developing HPC codes. The enriched semantic information enables effective exploitation of supercomputers, which is especially important for exascale due to the high degrees of parallelism and complex heterogeneous architectures. DSLs, however, are often developed in isolation, sharing little underlying infrastructure, which can mean they are somewhat immature, suffering from bugs, a potential lack of maintenance and lack of third party tooling. In this BoF we will focus on how we, as a community, can consolidate our efforts and look to develop a common DSL ecosystem.

Long Description: Many in the HPC community agree that Domain Specific Languages (DSLs) have an important role to play in future HPC software development. Whilst the term language can be off-putting, in the past few years DSLs have been commonly delivered as domain specific abstractions rather than new languages which has made them far more attractive. Typically embedded within existing languages, such as Python, C++, or Fortran, the programmer exploits these domain specific abstractions to describe their intention rather than how this is to be achieved.

Abstracting the scientific programmer from the tricky, low level details of parallelism and locality not only significantly improves programmer productivity, but has also been repeatedly demonstrated to increase performance. By leveraging the rich domain knowledge encoded by the programmer, the compilation tool-chain can make effective choices about parallelism, for instance where to schedule components and how these should communicate. Furthermore, if the DSL is designed correctly, then the programmer is expressing their workload in an architecture independent fashion, thus making portability across architectures highly accessible, with the compilation tool-chain doing much of the heavy lifting.

The HPC community have realised that as we approach exascale and supercomputers become much more complex, requiring programmers to address multiple levels of parallelism, memory, and hardware architectures, then traditional approaches to writing HPC codes will be accessible to the very few experts if at all. Therefore the benefits that DSLs can deliver is critical, and will potentially unlock future supercomputers.

However a major blocker for DSL adoption is the underlying compilation software stack. Often DSLs are developed in isolation, requiring significant investments of effort on behalf of the DSL developer and resulting in DSLs which share little infrastructure. This can be highly damaging for users, because not only do they rely on the maturity of their chosen DSL eco-system, but furthermore are at the mercy of the DSL developers for future bug fixes and features. Moreover, the provision of additional tools such as debuggers and profilers can often require significant integration work.

Recent advances, such as the development of Multi-Level Intermediate Representation (MLIR) for LLVM, provide potential technological solutions to this problem. However the challenge is far more wide-ranging than a technical one, requiring buy-in and agreement from the community. Therefore this BoF will be an opportunity to bring together the HPC community; users, application developers, and DSL developers, to explore challenges around DSL eco-system consolidation.

In part this BoF is driven by a newly started project, XDSL4X, which aims to look at developing a standard DSL eco-system built upon existing tooling. Combining experts in DSL development, compilers, and HPC applications, it is our strong belief that this project should be outward looking, seek to engage with the global HPC community and our technologies should be designed and developed in conjunction with the entire community. Therefore a BoF at SC21 would be an important opportunity to understand more wide-ranging perspectives, gather a wide interest group, and be a first step in starting a community effort around DSL eco-system consolidation.


URL: https://www.xdsl.dev


Back to Birds of a Feather Archive Listing