The HPC community have set themselves the target of reaching exa-scale performance by 2020. It is not a question of whether this target will be met, but instead whether or not an exa-scale machine can be programmed and used effectively to perform science at a scale never before attainable. There are many challenges in many different areas to overcome if the community are to scale their current scientific codes up to the exa-flop level and one of the approaches to solving this is through the use of co-design, where interdisciplinary teams work together to solve a specific problem.
However this development methodology is still relatively immature and in this report we gather the opinions of co-design from those in the HPC field, consider the positive and negative impact of such an approach, survey how co-design is currently being used and make some recommendations about how European projects might more effectively take advantage of this methodology to help solve the exa-scale challenge.
Co-design is a process where partnerships are created involving parties with distinct expertise who then collaborate to solve a specific problem. Central to applying this to the HPC field is the idea that the HPC life cycle has now become so complex that traditional approaches of domain experts developing scientific codes in isolation to their field of expertise will not be enough to reach exa-scale. Instead the co-design development methodology is oriented around a feedback loop where a specific application or science drives interdisciplinary teams and the underlying facets, such as architecture and language design, interact closely with the scientific codes to ensure that these are fit for the task in hand.
Co-design has been very successfully used in the production of a number of HPC machines where application needs have been taken into account from an early stage and this has resulted in some hugely successful products such as the BlueGene, NEC Earth Simulator and K computer. However co-design in more general HPC application development teams is still seen by many as being at a relatively early and untested stage. The past few years have seen a number of projects and centres trialling the methodology and a variety of successes relating to these have been reported. However, due to the immature nature of this approach its implementation has been quite different by different organisations and there is still no overall answer as to whether co-design, and in what form, should be adopted more wholesale by development teams to meet the exa-scale challenge. The aim of this work is to investigate the current state of co-design and aims to answerRead the report
Maturity level methodology
One of the important recommendations of the first phase of the European Exascale Software Initiative (EESI1) was to establish a European Exascale Software Centre to coordinate research, development, testing, and validation of EU HPC Exascale software ecosystem components and modules.
Following EESI1 recommendations to investigate the feasibility and prepare for the operation of such a centre, EESI2 has launched three steps:
- Develop and document a methodology for estimating the level of maturity of Exascale software components
- Identify 3 software stack components from existing and near future European Exascale projects and apply the defined methodology
- Examine existing “equivalent” centres and propose a structure adapted to Exascale software
These tasks are dedicated to the participation and the organization of International Exascale meetings between public and private stakeholder’s organizations.
The different actions envisaged initially were:
- Investigate funding structures and strategies of public bodies
- Maintain a global network of expertise and funding bodies
- Participate and organize international Exascale meetings between public and private stakeholders
- Constitute a small group of recognized worldwide Exascale leaders
- Propose governance structure, rules and missions for an International Exascale Software Initiative
- Look for potential collaboration and or coordination between Exascale centres
- Look for potential collaboration and or coordination on Exascale research activities, development projects and educational programs
- Establish and maintain a specific link with EC