Computers play a critical role in all areas of science. They are used to perform virtual experiments when a traditional laboratory experiment is impractical or impossible. Many of these virtual experiments require vast amounts of computing power, far beyond what is available on a typical desktop computer. These experiments can only be performed on a supercomputer.
Up until around 2005, manufacturers made supercomputers faster by shrinking the electronic components in the central processor and thus increasing the rate at which it could compute—the so-called clock-speed. However, in the last ten years, it has not been possible to increase clock speeds further because electronics have reached a level of miniaturisation that makes it problematic to dissipate the heat generated within them.
Instead, manufacturers exploit parallelisation techniques, combining lots of CPU cores to increase the headline performance of the computer. However, in reality, for the scientists’ software that runs on these many-core computers to exploit the CPUs potential speed, it must generate enough concurrent computations to keep all of the cores busy.
In the next ten years, the world’s fastest computers are expected to reach what is often referred to as “the Exascale”, which means they will have the potential to perform one quintillion calculations per second. We expect Exascale computers will be constructed from tens of millions of CPU cores, requiring a huge number of concurrent tasks. Current scientific software cannot produce enough concurrent tasks to keep an Exascale machine busy, even though it has enough work for the machine to do.
The INTERTWinE project takes on the challenge of enabling scientific software to run on at Exascale, by helping scientists to expose enough parallelism within their software for it to run on a supercomputer with tens of millions of cores.
There is a vast repository of scientific software in use today and it is not realistic to rewrite all of this software for the Exascale. INTERTWinE has adopted a progressive approach, building on the programming models that have proved their worth through their widespread adoption in current software. Approaches such as threading, distributed-memory and accelerator programming will remain, but will be enhanced with more effective runtime integration and optimised by best-practice techniques for hybrid programming.
The INTERTWinE team has worked with real software and popular programming techniques, to ensure the focus is aligned to scientists’ pressing needs. Further, INTERTWinE has prioritised training and knowledge exchange, to help disseminate the essential skills needed by the European science community.