  In order to achieve exascale performance it is important to detect potential
bottlenecks and identify strategies to overcome them. For this, both
applications and system software must be analysed and potentially improved. The
EU FP7 project Collaborative Research into Exascale Systemware, Tools &
Applications (CRESTA) chose the approach to co-design advanced simulation
applications and system software as well as development tools. In this paper,
we present the results of a co-design activity focused on the simulation code
NEK5000 that aims at performance improvements of collective communication
operations. We have analysed the algorithms that form the core of NEK5000's
communication module in order to assess its viability on recent computer
architectures before starting to improve its performance. Our results show that
the crystal router algorithm performs well in sparse, irregular collective
operations for medium and large processor number but improvements for even
larger system sizes of the future will be needed. We sketch the needed
improvements, which will make the communication algorithms also beneficial for
other applications that need to implement latency-dominated communication
schemes with short messages. The latency-optimised communication operations
will also become used in a runtime-system providing dynamic load balancing,
under development within CRESTA.
