The needed reformulation of algorithms and applications from different areas of research toward their usage for ultrascale systems and platforms has to address different challenges that arise from the different application areas, algorithms and programs. The challenges include scalability of the applications using a large number of system resources efficiently, the usage of resilience methods to include mechanisms to enable application programs to react to system failures, as well as the inclusion of energy-awareness features into the application programs to be able to obtain an energy-efficient execution. The programming models should enable to concentrate on the algorithmic aspects and problem-specific issues of the specific application area such that program development is supported as far as possible.