文摘
本研究的目的是评估英特尔至强的表演φGeant4模拟硬件加速器,尤其是对多线程应用程序。我们提出完整的方法来引导用户的编译Geant4φ处理器上的应用程序。然后,我们提出一系列基准比较性能的Xeon处理器cpu和φGeant4例子致力于电子剂量点的仿真内核,TestEm12例子。首先,我们比较一个分布式的执行顺序前版本的Geant4例子在这两个体系结构评估的多线程版本Geant4例子。如果φ处理器展示了他们的能力,加快计算时间(直到系数3.83)分发顺序Geant4模拟时,我们没有达到同样水平的加速当考虑多线程版本的Geant4例子。
1。介绍
蒙特卡罗模拟已经成为不可或缺的工具,辐射传输计算在各种各样的应用程序。Geant4仿真工具包(1)进入领域的广泛使用高能物理模拟探测器的大型强子对撞机(LHC)实验,也为诊断医学物理学领域的应用程序(例如,分析病人的辐射负担),对于治疗的应用程序(例如,治疗放射性核素治疗和治疗规划验证通过发射扫描),和体外药物治疗,特别是在新兴领域,如质子和light-ion疗法(2- - - - - -4]。工具箱却展现出了吸引越来越感兴趣,因为它伟大的多功能性。它包含一个全面的电磁物理模型,强子和光学交互大量的粒子的能量范围宽。而且提供了一个工具用于定义的多样性或导入几何问题,建模复杂的辐射来源和检测系统,包括电磁场、电子探测器响应,和时间限制,出口所需的输出数据。代码是新功能的不断改进和扩展。10.0版本以来,Geant4的多线程版本提供了管理模拟的可能性在事件级别不同的线程。通过这种新的能力和市场准入的小说英特尔至强硬件加速器(φ5,6),这是有关评估计算时间表演Geant4 10.0与这些新的处理器。
一些作者(7- - - - - -11)已经将Intel Xeonφ加速器的性能与GP-GPU(通用图形处理单元)架构;对这些研究结果导致收敛参数启动聪明的必要性和优化编程英特尔φ为了实现性能非常接近gpu。必须说,代码的可移植性GP-GPU并不总是可行;如果它是,它要求代码编程比至强φ硬件加速器。有效,对于GP-GPU、高度并行的代码部分必须首先确定为了完全重写使用CUDA语言(12,13]。Xeonφ硬件,简单的重建与正确的内存使用是足够的使用它。Bernaschi et al。7)评估CPU桑迪大桥,开普勒GPU,物理模拟和φXeon处理器。为了获得良好的表演为他们的应用程序,他们高度调优应用程序。Xeonφ硬件加速器(5110 p),他们尤其在内存管理工作对他们的应用程序所使用的输入和输出和调优的C源代码。没有更改应用程序时,他们发现,φ1 GPGPU NVIDIA开普勒甘蓝型相当于1和5的cpu(英特尔e5 - 2687 w),而与一个强大的扩展(使用MPI并行与异步通信原语重叠与计算数据交换)1 GPU相当于φ1.5到3.3。Lyakh [8)被认为更多关于这种对比比较困难,规模正确应用程序体系结构。然而,他获得一个稳定的x2 x3加速GP-GPU架构(特斯拉K20X)相比,φ(5110 p)。慕拉诺et al。9),gpu (NVIDIA开普勒甘蓝型)不断速度快(12 - 27倍)比至强φ硬件加速器(5110 p)没有任何调优的代码(但使用向量化和适应内存管理)。其他作者(14)有经验的不令人满意的表现当使用Intel Xeonφ加速器的医学成像基准和大规模并行使用一个简单的数据结构。在最近的一项研究[15),我们调查的7120 p被分配内存受限的Geant4 Intel Xeonφ(版本9)模拟跟踪的μ介子通过火山为了产生层析成像。得到的最大加速2.56倍相比,计算在3.1 GHz Sandy Bridge处理器执行。
在本文中,我们描述了非常精确的方法随访Geant4软件的编译和依赖关系的客观指导任何用户愿意参加预期的Xeonφ计算潜力耗时的模拟。然后,我们提出的基准执行一组计算测试Geant4先进例子“TestEm12”客观结论Xeonφ架构是否适合这样的模拟。
2。在Intel Xeonφ协处理器Geant4软件的可移植性
2.1。Xeonφ集群特征
模拟执行的机器上有两个Intel Xeon处理器e5 - 2690 v2 (http://ark.intel.com/)(10核心,12 MB缓存,3.001 GHz,超线程,线程2 /核心)的每个能力理论240.1的双精度浮点指令GFLOPS 59.7 GB /秒内存带宽、φ128 GB的内存,和四个至强硬件加速器5110 p(60核心,1.052 GHz, 4每核心硬件线程)每个能力理论1010.5 GFLOPS双精度浮点指令的320 GB /秒的内存带宽和8 GB的内存。如果我们考虑在GFLOPS宣布性能,最大加速的Xeonφ4.2 x。涡轮频率(达到3.6 GHz)一直灭活的再现性基准计算时间。专用的Linux发行版的版本是2.6.38.8 + mpss3.4.1 Xeonφ特定架构和2.6.32-504.1.3.el6。x86_64 Xeon处理器(CentOS 6.6)。在整篇文章中,我们简单地指英特尔至强处理器的“至强”和“φ”Xeonφ硬件加速器。
2.2。交叉编译Geant4软件和依赖关系
目前的工作进行10.0版本p01 Geant4 [1]利用CLHEP [162.1.3.1]库版本,为了处理伪随机数字,数字,点,向量,飞机,他们在三维空间的转换,在模拟和洛伦兹向量及其转换。Xerces 3.1.1和外籍人士2.1.0库用于管理XML文件也需要Geant4正确运行。Qt库用于OpenGL可视化尚未自可视化选项编译时不推荐使用并行体系结构对于大型计算测试(见图1)。与英特尔c++源代码被编译作曲家XE 2013编译器设置为O2优化级别,以避免引入控制偏差在执行代码相比,O3水平像英特尔是参考指南中指定的编译器(快速参考指南与英特尔优化编译器版本12;从检索https://software.intel.com/sites/default/files/compiler_qrg12.pdf)。CMake构建系统的发布2.8版本。
每个编译过程(本地或交叉编译)必须使用Intel Xeon (x86_64的)处理器上运行的C编译器(ICC)版本14.0.3(符合GCC 4.8.1)为了稍后推出φ协处理器体系结构。CMake编译、交叉编译的Xeonφ加速器被激活时使用CMake国旗”-mmic”(我)DCMAKE_CXX_FLAGS,(2)DCMAKE_C_FLAGS DCMAKE_EXE_LINKER_FLAGS,(3)DCMAKE_MODULE_LINKER_FLAGS,(iv)DCMAKE_SHARED_LINKER_FLAGS选项。
图书馆使用配置脚本,构建交叉编译的Xeonφ加速器使用国旗”时被激活-mmic“当指定x86_64主机是未知的为了确保编译过程并不指当前的Linux版本安装在机器上托管编译器。
2.2.1。环境变量的定义
为了编译Geant4工具包和依赖关系,有必要设置特定环境变量。必须添加相应的库LD_LIBRARY_PATH变量PATH变量和可执行的二进制文件。对于我们的编译,我们创建了一个mic-install存储库的所有库在哪里下载、构建和安装。
所有变量开始他们的名字与G4用于设置Geant4数据库路径(光子蒸发数据,放射性衰变数据,粒子横截面不同的能量范围,碰撞电离截面数据,核壳效应,光学表面反射,和核素状态属性)。它必须注意到bash和tcshφ协处理器不支持Unix shell,环境变量必须设置使用一个基本的sh脚本文件;这个文件是使用命令行采购”源env.sh”(脚本1)。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2.2.2。交叉编译的Geant4工具包和依赖关系
方法随访交叉编译Geant4工具包和依赖关系是启发从初步工作17)检测之前Geant4版本(9.6 p02)并没有开发多线程执行。方法已得到了改善,减轻尤其是根编译,这是包括在Geant4自从10.0版本。
Xerces和外籍人士库编译使用脚本中指定的配置说明2和3。
|
||||||||||||||
|
||||||||||||||
脚本4详细介绍了CMake CLHEP库的编译指令。
|
||||||||||||||||||||||||||
最后,脚本5描述了CMake的指令编译Geant4 Xeonφ协处理器。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
必须说,我们使用了“-fp-model精确“国旗ICC编译器实现的IEEE 754标准和计算浮点数表示。这个标志也可以防止编译器优化,可以引入数值根据当前浮点标准错误。
2.2.3。编译测试
Geant4扩展示例TestEm12迁移到支持多流计算(访问G4INSTALL美元/例子/扩展)。编制Xeon TestEm12φ协处理器,上市CMake指令(见使用脚本6)。
|
||||||||||||||||
已经验证的这个例子中,作者对其他蒙特卡罗代码(18),使得分每源沉积粒子的能量薄,同心,球壳在一个各向同性,单色的,电子的点源4伏(兆电子伏)集中在球面几何学。球的材料被选为液态水(密度1 g·厘米−3);球的半径设置为3厘米,150贝壳的数量是固定的。标准的电磁(EM)物理列表选项3,描述电子和光子之间的相互作用~ 1 keV和100伏特的电压,用于所有模拟,考虑电子碰撞电离,多次散射和轫致辐射的一代。在脚本7提出了一个宏观TestEm12文件的例子。当使用多线程模式,命令行”/运行/ numberOfThreads 10”添加与相应数量的线程(在这个例子:10个线程)。宏文件启动协处理器和编译后生成的可执行文件使用“。/ exe TestEm12.mac”。
|
||||||||||||||||||||||||||||||
为了验证正确的Geant4交叉编译和依赖,我们测试结果的再现性TestEm12电磁例子1日至强及其多线程版本TestEm12MTφ240 Xeon线程和线程上运行使用优化编译标志”-fp-model精确”。图2表示每个源能量沉积粒子的四个测试用例。每个测试用例被重复5次。它可以注意到,如果编译标志”-fp-model精确”是编译过程省略Geant4 CLHEP,然后沉积剖面的能量转移到小得多的径向距离导致一个糟糕的协议与其他配置。如果我们量化能源之间的区别(在距离计算与Xeon处理器和能量()在同一距离计算与φ不应用任何优化编译过程,作为一个最大值的百分比的两个计算能量分布,然后之间的差异和40%时发现一个阈值通常是接受不到3%。没有其它的优化编译标志检测与“我们取得了一个很好的协议-fp-model精确“国旗。
3所示。业绩评估
3.1。基准的描述
Geant4模拟,通过TestEm12扩展示例中,一直在测试Xeonφ加速器使用分布式(TestEm12)和多线程(TestEm12MT)模式。任何计算测试之前,我们异形TestEm12示例使用英特尔VTune工具包以量化内存带宽消耗。我们可以得出这样的结论:仿真计算。
在这项研究中,我们认为,“分布式”模式意味着在同一时间推出几个独立的仿真实例不涉及任何实例之间的通信。关于“多线程”模式,模拟了使用pthread库。在这两种情况下,模拟平衡关于粒子的数量同样工人节点之间传播。
对于分布式模式,粒子的总数是分开的多个实例运行像作者所描述的19,20.]。后处理时间由于合并结果的评估和代表比例可以忽略不计(小于0.5%)的总执行时间测量。
表1清单数量的分区用于加速计算。对于每一个基准,模拟重复5次;意味着时间值被用于所有结果。所有恢复时间值标准差不重叠1%。标准3使用EM选项4兆电子伏电子点光源。挂钟倍,通过测量主机的内部时钟。分布式仿真应用梅森素数的旋风伪随机数生成器(PRNG)。伪随机数生成使用序列分割方法确保一个足够大的3.10序列10不重叠的随机数为了不复制任何粒子事件。使用多线程版本的Geant4时,没有修改分区的过程;梅森素数的旋风PRNG使用。
Xeonφ硬件使用“本地模式”,意思完全模拟被处决XeonφXeonφ使用SSH或直接开始。
3.2。至强和φ为分布式Geant4模拟(TestEm12)
加速评估分布式TestEm12模拟生成的源粒子从103到108。图3提出了执行时间在几分钟内获得一个Xeon线程和一个φ线程的加速。它可以观察到,加速保持不变(~ 0.38)无论选择的粒子数。这个结果是预期因为固有频率至强和φ之间的比例是大约3 (3.001 GHz Xeon相比为φ1.052 GHz)。
为了验证英特尔声称对Xeon表演和φ(5),我们在图表示4执行时间60分钟获得10至强与φ硬件核心。它可以观察到,当使用更高的粒子数(107),我们到达一个加速为2.18。对于这个基准测试,看来φ协处理器比至强更合适的粒子数高于10的协处理器5。
当使用总量上可用的线程1至强和φ,分别(参见图20和240个线程5),我们到达一个加速3.83十8粒子,这是接近4.2的预期英特尔最大加速,当比较宣布GFLOPS表演。既然我们选择了有限的优化和浮点精度国旗,这个结果是非常令人满意的。
3.3。分布式(TestEm12)与多线程(TestEm12MT) Geant4模拟Xeon处理器
加速效果评估三个不同数量的线程:10、20和40对应,分别的数量硬件核心Xeon处理器,硬件核心2 Xeon处理器的数量,并为2至强的CPU线程的数量。目标是评估的潜在影响使用多线程版本相比,分布式Xeon处理器。这个案例研究呈现在图6表明TestEm12MT,多线程版本的TestEm12 Geant4例子,是低于TestEm12(加速在1.08和1.33之间)无论使用线程的数量。
3.4。φ线程的数量的影响对多线程(TestEm12MT) Geant4模拟
摘要目的探讨如果大量线程的执行时间明显减少TestEm12MTφ任何生成的粒子数,我们在图绘制7为生成的源粒子获得的不同计算时间从105到108和φ的线程数量从10到240人。
我们可以的话,生成的源粒子数越高,越高的线程数量必须减少执行时间。108粒子,我们得到一个几乎线性减少计算时间的线程的数量(直到60线程),因为它也显示在表2代表获得的加速效果10、20、40、60、120和240φ10个线程8粒子相比,一个φ线程。为源粒子不如105初始化过程来解决物理数据和几何是相同的时间顺序的排放和跟踪粒子解释说,在这种情况下,我们获得最好的计算时间更少数量的线程(20线程)。
3.5。至强和φ对多线程(TestEm12MT) Geant4模拟
加速是评估TestEm12MT模拟使用标准的电磁物理列表生成的源粒子从105到108运行在40至强线程和φ的最佳计算时间获得线程。它可以观察到,无论产生的粒子数,φ提供较长的执行时间(见图8)。加速仍然是增加函数生成的粒子数达到0.25十8粒子。
在表3,我们列出了计算时间对φ960 Xeon线程和线程获得108和109粒子。
当使用φ960线程,10的计算时间达到49.9分钟8粒子,高于23%时使用40 Xeon线程(计算时间对应40.6分钟)。但是当达到109粒子计算时间终于减少了φ960线程比至强;最后一个配置,我们获得一个加速为1.04。
4所示。结论
本文的目的是首先详细明确的和可以理解的方法编译和执行任何Geant4应用Xeonφ加速器。应特别注意使用优化编译标志”-fp-model精确“为了获得比cpu上执行相同的结果。
然后,作者的野心是评估Xeonφ加速器等应用程序的性能特别是由于多线程版本的Geant4工具包的可用性。我们必须提醒读者,在第一个实例,没有调优的源代码已经发起了这项研究。对于不同的结果,我们可以得出这样的结论:(我)当分配顺序Geant4模拟(40 Xeon线程比240年φ线程),φ(5110 p 1 GHZ)速度比Xeon处理器(e5 - 2690 v2 3 GHZ),几乎达到最大加速(3.83倍和4.2倍)虽然有限优化被认为拯救最终结果的精度;(2)当考虑多线程Geant4 Xeon处理器模拟,我们可以评论,不幸的是这个版本略慢于古典的分布顺序Geant4模拟任何线程的数量;(3)即使我们观察到的性能损失的多线程版本Geant4于φXeon处理器相比,它必须注意到,使用大量的粒子模拟(超过6小时的相应计算为10 40 Xeon处理器9粒子),我们终于到达一个非常小的加速1.04使用φ960线程。
目前,我们国家的多线程版本Geant4尚未优化与分布式提交竞争模拟在农场的CPU集群,集群上φ硬件加速器,或者在一个网格基础设施。当然需要调优大大源代码和抑制任何详细显示,为了使这类应用程序完全符合Xeonφ架构。人会认为下一代Geant工具包(Geant5)会回答这样的问题。
利益冲突
作者宣称没有利益冲突有关的出版。
确认
本研究进行了卓越ClerVolc实验室项目的一部分。作者要感谢Geant4协作的技术支持。