Mini-App Driven Optimisation of Inertial Confinement Fusion Codes

Mini-App Driven Optimisation of Inertial Confinement Fusion Codes
复制标题

DOI:
10.1109/cluster.2015.132
复制
发表时间:
2015-09
期刊:
2015 IEEE International Conference on Cluster Computing
影响因子:
--
通讯作者:
R. Bird;P. Gillies;M. Bareford;J. Herdman;S. Jarvis
R. Bird;P. Gillies;M. Bareford;J. Herdman;S. Jarvis
中科院分区:
其他
文献类型:
--
作者:
R. Bird;P. Gillies;M. Bareford;J. Herdman;S. Jarvis

文献摘要

相似文献

2013年9月,安装在劳伦斯利弗莫尔国家实验室国家点火设施中的大型激光惯性约束聚变装置被广泛赞誉为在受控聚变方面取得了里程碑式的成就——成功启动了一次反应,释放的能量超过了吸收的燃料。尽管取得了这样的成功,我们距离能够创造出可控的、自我维持的核聚变反应还有一段距离。惯性约束聚变(ICF)代表了核聚变发电的一种领先设计。自20世纪50年代以来,ICF得到了计算模拟的支持,为确保有效和高效内爆所需的脉冲整形、激光和材料外壳提供了数学基础。这里介绍的研究集中在一个这样的模拟代码,EPOCH,一个完全相对论的细胞内粒子等离子体物理代码,由一个由30多名英国研究人员组成的领先网络开发。在开发像EPOCH这样的大型代码时,一个重要的挑战是在连续几代高性能计算架构上保持有效的科学交付。为了支持这个过程,我们采用了小型应用程序的使用——小型代码代理,封装了它们较大的父对等体的重要计算属性。通过开发EPOCH的迷你应用程序(称为miniEPOCH),我们研究了EPOCH内已知的时间步长缩放问题,并探索了可能的优化:(i)采用循环裂变来提高向量化水平,(ii)执行粒子排序以允许利用领域特定知识,(iii)改变底层数据存储以改善内存局域性。当应用于EPOCH时,在EPCC的Cray XC30 ARCHER平台上执行时,这些改进表示核心算法的速度提高了2.02倍,整个应用程序运行时的速度提高了1.55倍。
In September 2013, the large laser-based inertial confinement fusion device housed in the National Ignition Facility at Lawrence Livermore National Laboratory, was widely acclaimed to have achieved a milestone in controlled fusion -- successfully initiating a reaction that resulted in the release of more energy than the fuel absorbed. Despite this success, we remain some distance from being able to create controlled, self-sustaining fusion reactions. Inertial Confinement Fusion (ICF) represents one leading design for the generation of energy by nuclear fusion. Since the 1950s, ICF has been supported by computing simulations, providing the mathematical foundations for pulse shaping, lasers, and material shells needed to ensure effective and efficient implosion. The research presented here focuses on one such simulation code, EPOCH, a fully relativistic particle-in-cell plasma physics code, developed by a leading network of over 30 UK researchers. A significant challenge in developing large codes like EPOCH is maintaining effective scientific delivery on successive generations of high-performance computing architecture. To support this process, we adopt the use of mini-applications -- small code proxies that encapsulate important computational properties of their larger parent counterparts. Through the development of a mini-app for EPOCH (called miniEPOCH), we investigate known time-step scaling issues within EPOCH and explore possible optimisations: (i) Employing loop fission to increase levels of vectorisation, (ii) Enforcing particle ordering to allow the exploitation of domain specific knowledge and, (iii) Changing underlying data storage to improve memory locality. When applied to EPOCH, these improvements represent a 2.02× speed-up in the core algorithm and a 1.55× speed-up to the overall application runtime, when executed on EPCC's Cray XC30 ARCHER platform.