Portable Multi-and Many-Core Performance for Finite-Difference / Element Codes ; Application to the Free-Surface Component of NEMO ( NEMOLite 2 D 1 . 0 )

semanticscholar(2017)

引用 0|浏览4
暂无评分
摘要
We present an approach which we call PSyKAl that is designed to achieve portable performance for parallel, finite-difference/volume/element earth-system models. In PSyKAl the code related to the underlying science is formally separated from code related to parallelisation and single-core optimisations. This separation of concerns allows scientists to code their science independently of the underlying hardware architecture and for optimisation specialists to be able to tailor the code for a particular machine indepen5 dently of the science code. We have taken the free-surface part of the NEMO ocean model and created a new, shallow-water model named NEMOLite2D. In doing this we have a code which is of a manageable size and yet which incorporates elements of full ocean models (input/output, boundary conditions, etc.). We have then manually constructed a PSyKAl version of this code and investigated the transformations that must be applied to the middle/PSy layer in order to achieve good performance, both serial and parallel. We have produced versions of the PSy layer parallelised with both OpenMP and OpenACC; in both 10 cases we were able to leave the natural-science parts of the code unchanged while achieving good performance on both multicore CPUs and GPUs. In quantifying whether or not the obtained performance is ‘good’ we also consider the limitations of the basic roofline model and improve on it by generating kernel-specific CPU ceilings. Copyright statement. Copyright Science and Technology Facilities Council, 2017
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要