It selects a set of codes requiring large computational resources to address the next generation of scientific challenges and performs their redesign, implementation and optimisation in order to effectively exploit state-of-the-art HPC solutions, including accelerators and alternative architectures (e.g. GPU and ARM architectures respectively).