Co-design for exascale
Posted: 28 Oct 2013 | 10:35
It is widely accepted that to meet the deadline of an exascale system by 2020, a variety of complex problems must be solved.
The recent EASC 2013 conference, hosted by EPCC, is one of many examples of how we in Edinburgh are at the heart of this challenge. Another example is our membership of the European Exascale Software Initiative (EESI) which aims to build a European vision and roadmap to address the challenges that this new generation of massively parallel systems presents. The project involves institutions throughout the EU who have been allocated specific parts of the overall European exascale challenge to solve. The recommendations and lessons learned from this initiative will feed into future EU policy, so it is critically important that we get it right!
Co-design in HPC
EPCC is a joint task leader with Peter Michielse on the Co-design EESI deliverable. Co-design is a hot topic in HPC at the moment, and involves multiple stakeholders working together to produce an overall solution. The concept itself has actually been around for some forty years, and at its most extreme it is used by some industries where designers empower users to create products tailored to their specific needs themselves. It is believed that co-design, where people with a wide variety of skills work together in a team to produce the end product, is likely to be required to meet the challenges of creating and using useful scientific codes at exascale.
As an example of this activity, the United States has recently set up a number of co-design centres. For instance, one of these US centres is currently concentrating on nuclear fusion research. You might assume that this team would be mainly made up of nuclear scientists, but instead they employ a wide variety of people including mathematicians to look at the solving algorithms; computer scientists to ensure that existing programming languages are sufficient for their needs; software engineers addressing the performance analysis tools and physicists directing the actual simulations that they might wish to run on future exascale machines.
The problem is that, whilst everyone talks about co-design, there is not one specific definition of it and one institution's understanding of the term can be significantly different to that of another. If we are to support the next generation of HPC by encouraging co-design then we first must decide exactly what this involves. The second challenge then is to determine what can be done to encourage and promote co-design and thirdly how it can be best applied to software practice.
As coordinators of CRESTA, EPCC has a vast amount of software experience and many contacts that we can draw upon to help us answer these co-design questions. We will be gathering data from a wide variety of people in the HPC community and asking them about their experiences of co-design. Overall this will form the basis of an analysis into similarities and, probably more importantly, potential conflicts that employing co-design en mass might encounter.
In the coming months we will be publicising an online questionnaire and asking for as much participation as possible. If you have any specific opinions or experiences in this area, then please get in touch as we would like to discuss these further with you.