  The complexity of modern and upcoming computing architectures poses severe
challenges for code developers and application specialists, and forces them to
expose the highest possible degree of parallelism, in order to make the best
use of the available hardware. The Intel$^{(R)}$ Xeon Phi$^{(TM)}$ of second
generation (code-named Knights Landing, henceforth KNL) is the latest many-core
system, which implements several interesting hardware features like for example
a large number of cores per node (up to 72), the 512 bits-wide vector registers
and the high-bandwidth memory. The unique features of KNL make this platform a
powerful testbed for modern HPC applications. The performance of codes on KNL
is therefore a useful proxy of their readiness for future architectures. In
this work we describe the lessons learnt during the optimisation of the widely
used codes for computational astrophysics P-Gadget-3, Flash and Echo. Moreover,
we present results for the visualisation and analysis tools VisIt and yt. These
examples show that modern architectures benefit from code optimisation at
different levels, even more than traditional multi-core systems. However, the
level of modernisation of typical community codes still needs improvements, for
them to fully utilise resources of novel architectures.
