Skip to content

2021

Position available on xDSL project

Are you interested in Domain Specific Languages (DSLs), compilers, and HPC? If so then come work at the School of Informatics, University of Edinburgh, where you will be involved revolutionising the compiler stack for DSLs to develop a common, unified, technology built on MLIR and LLVM.

Details of the opportunity

We are advertising for a Postdoctoral Research Associate in the Compiler and Runtime Systems Group at the School of Informatics, University of Edinburgh, to work on the xDSL project. The objective of xDSL is to revolutionize the design of DSL compiler implementations by leveraging the breadth and cross-industry support of the MLIR compiler and Python ecosystems. Python is the tool of choice for application developers in many domains, such as machine learning, data science, and - as we believe - an important component of the future of High Performance Computing software.

Via this project the successful applicant will work together with the Python, HPC, and MLIR compiler communities to build a next-generation DSL-design stack that effectively connects these communities. Instead of building DSL compilers as isolated monolithic towers, the purpose of our research is to design a toolbox that enables developers to build DSLs using a rich ecosystem of shared intermediate representations and optimizations.

xDSl is funded by ExCALIBUR, a large UK program to prepare key simulation codes for exascale, and the successful candidate will have the opportunity to work closely with world-leading experts in Compilers, Computational Science, and HPC from academia and industry. We aim for high-impact publications at the top venues in PL and Compilation (such as PLDI and CGO), Computational Science (such as ICCS and ACM TOMS), as well as HPC (such as SC and ICS). The candidate will directly contribute to open-source software that we develop in close collaboration with the community.

For more information

Does this sound interesting, do you think you are a good match for working on the xDSL project? If so, then there are further details here. Applications must be recieved by 5pm on the 5th of January 2022, and the link also contains details about how to apply for this role.

PhD opportunity

We are advertising for a fully funded (with nationality restrictions) PhD position at the University of Edinburgh with the student based at EPCC and in collaboration with the School of Informatics.

About the project

Writing efficient parallel code for current generation supercomputers is difficult and in the domain of the (relatively) few experts. However this situation is set to become even more challenging as the trend for heterogeneity (i.e. use of accelerators) and scale increase significantly with next generation exascale machines. Put simply, sequential languages that we have relied upon for so long to write our parallel codes do not provide the necessary abstractions when it comes to writing parallel codes. As a community we have gotten around this by making it the job of the programmer to determine all aspects of parallelism for their code and provide their own parallel abstractions (e.g. by explicitly designing at the code level for geometric decomposition, or divide-and-conquer, or pipeline parallelism), but determining this low level and tricky detail is time consuming, requiring significant expertise, as well as not being scalable to future much larger and more complex supercomputers.

There is however another way, and that is of the use of Domain Specific Languages (DSLs). These are languages which, out of the box, provide specific abstractions to the programmer which they can then use as a basis for writing their code. The idea being that by encouraging the programmer to work within the confines of specific rules governed by the abstractions and restrictions of a specific domain, then there is a significant amount of information upon which the compiler can act to determine details that traditionally required the programmer to specify manually. In-fact the word language is a bit of a misnomer here, instead the key is abstractions as many of these technologies are embedded within existing languages such as Python.

DSLs have demonstrated their potential to play an important role in programming future exascale simulation codes, however there is a big problem! The issue is around the underlying compilation stack, where DSLs are often siloed and tend to share very little, if any, underlying infrastructure. This means that it can be costly to develop new DSLs, the underlying technology stack can be brittle, and there can be a lack of third party tools such as debuggers and profilers. But there is also a potential solution and that is of Multi Level Intermediate Representation (MLIR) which is a framework for IR that enables one to effectively lower source code to the general representation required by the LLVM compiler through a series of pre-built abstractions. There are very many existing MLIR dialects, with it being possible to write new ones too, thus enabling many different languages, abstractions, and domains to more readily integrate with the existing and mature LLVM tooling without losing information in the translation process.

DSL looks to develop a unified DSL ecosystem based upon MLIR, with the idea being that DSL front-ends will be able to readily integrate with our ecosystem and the appropriate MLIR dialects. Upon doing so the DSL will then benefit from the mature, and well supported, LLVM tooling whilst still being able to exploit the high level domain-specific information provided by the programmer when making important decisions around how to map to the hardware (e.g. choices around parallelism and specific accelerators). Ultimately this will significantly reduce the effort required to develop DSLs and provide a rich, well supported compilation stack with a large variety of third party tooling.

Who you would be working with

This PhD position is at the University of Edinburgh and the student would be supervised by Dr Nick Brown and Dr Tobias Grosser. The student would be based in EPCC. EPCC is the UK’s leading HPC centre which undertakes a wide range of activities including research into HPC, HPC application development, and the management of numerous supercomputers including ARCHER2 the national service. There would also be the opportunity for the student to become involved in EPCC’s highly successful MSc in HPC and HPC with data science. The student would also be working closely with the School of Informatics which is a world leader in Computer Science research, and most applicable to this project very highly regarded in the compilers and programming language communities.

For more details

For more details please see the FindaPhD advert which includes details of how to apply.

BoF at SC21

Supercomputing is the top HPC conference in the yearly calendar and for 2021 is running in a hybrid mode with both physical and virtual attendance. Therefore it is a fantastic opportunity to hold a session around the consolidation of DSL ecosystems.

Domain Specific Languages (DSLs) are a powerful way of providing programmer productivity and performance when developing HPC codes. The enriched information enables effective exploitation of supercomputers, which is especially important as we reach 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. Such an activity could be game-changing in providing application developers with mature, feature rich, abstract programming environments enabling effective exploitation of future HPC machines. However, the devil is in the detail and there are many challenges that must be solved to develop and provide such a solution. These include requirements driven by the application developers, the perspectives of the DSL designers and what support they need, and to the compilation stack and which are the most appropriate technologies.

It is the intention of this BoF to provide an interactive session where we as the community can meet to discuss these aspects, highlight existing activities already underway that could compliment efforts here, and take the first step in developing a common unified ecosystem for DSL development

When and where?

Room 222 in St. Louis and via the SC online platform. Tuesday, 16 November 2021 between 12:15pm and 1:15pm CST

Please register your interest for further involvement in future discussions and events around this topic here

View the schedule

The SC schedule can be viewed here

DSL keynote at IWOMP

IWOMP is a popular annual conference focussed on parallel programming using OpenMP. It’s success has grown from the fact that there are always numerous interesting and innovative ideas being discussed. A major cornerstone of any conference is the keynote talk which this year was delivered by Paul Kelly, who is also co-I on XDSL. Paul was talking about how we might go about achieving the elusive goals of programmer productivity, performance and portability across architectures, with DSLs having an important role to play here. However the languages themselves are not enough and Paul’s message was that the key to success here, and wide spread adoption of DSLs, is the underlying compiler architecture. Commonly DSL implementations (the compilers) are standalone, sharing little common infrastructure and ultimately relying on the support of a small developer base. With limited, if any, shared components this makes the job of the DSL developer far more difficult. Building on MLIR, as we aim to do in this project, is one way in which this situation can be improved, and Paul describes how this can establish community support for code generation tools which then can underpin multiple front-end DSLS.s Ultimately this approach results in a more mature ecosystem and reduced barrier to entry for DSL developers.

Productivity, performance and portability: towards cross-domain DSL compiler architecture (IWOMP'21)

Project kicks off

We held our project kickoff meeting today to mark the official start of the project and discuss the plan for the next three years. The intention was to set short term project goals and discuss the initial activities that must be undertaken by the team. We are very excited to be working on this specific topic, with Tobias and Michel already having worked extensively with MLIR and have existing project work that will form a basis for our starting point when looking to connect MLIR with Python. We were also busy in August planning our initial knowledge exchange activities, and have a number of planned events which we will advertise in the coming months.

We strongly believe that the development of a common DSL eco-system could be transformative for the HPC community and will benefit different sub-communities in different ways. The most obvious beneficiaries will be the application developers who will be able to select the most appropriate programming abstractions to suit their scientific domain, safe in the knowledge that there is a mature and well supported underlying toolchain. We also believe that DSL developers will benefit greatly from the advances that we expect to make in this project, as they will not have to reinvent the wheel when looking to develop a new domain specific abstraction. Currently such tools tend to be heavily siloed, sharing little common code and representiving a significant investment on behalf of the developer to get a working and reliable system. We believe that our eco-system will free DSL developers to concentrate on their abstractions and could signfiicantly increase the number of DSLs available.

It’s certainly exciting for there to be so much potential, and we will be posting regular updates and organising numerous events during the project lifetime.