没有合适的资源?快使用搜索试试~ 我知道了~
蒙特卡罗中子输运程序在多核和异构计算机上的应用
蒙特卡罗中子输运程序的多核和/陶昶引用此版本:常涛。蒙特卡罗中子输运代码的多核和/或异构计算机科学巴黎综合理工学院,2020年。英语NNT:2020IPPAX099。电话:03086536HAL Id:tel-03086536https://theses.hal.science/tel-030865362020年12月22日提交HAL是一个多学科的开放获取档案馆,用于存放和传播科学研究文件,无论它们是否已这些文件可能来自法国或国外的教学和研究机构,或来自公共或私人研究中心。L’archive ouverte pluridisciplinaire626蒙特卡罗中子运输代码巴黎综合理工学院博士论文理工学院预科École doctorale n○ 626 École doctorale de巴黎(ED IP Paris)博士专业:信息学、知识与情报学Thèse présentée et soutenue à Saclay,le 01/12/2020,par陶昌评审团组成:迈克尔·赫鲁Sandia国家实验室和St. 约翰大学特别报告员让-弗朗索瓦·梅豪格勒诺布尔-阿尔卑斯大学讲师特别报告员雷蒙德·纳梅斯特波尔多大学讲师Marc VERDERIDirecteur de recherche,Applatoire Leprince Ringuet deEmmanuelle SAILLARDChargé de recherche,Le Centre de Recherche INRIA BordeauxExaminateur弗朗切利·扎农·博伊托波尔多大学教务长Christophe CALVINExpert International,CEA SaclayEmeric BRUN研究工程师,CEA Centre MarcouleEncadrantNNT:2020IPPAX099这篇论文献给我的家人,他们养育了我,使我成为今天的我我希望这个成就能让你开心。确认首先,我想对我的论文导师Christophe CALVIN表示深深的谢意,感谢他在过去三年中对我的博士研究的持续支持,感谢他的动力,热情和远见,每当我陷入研究困境时,他都深深地激励着我我非常感谢有机会在他的指导下学习和工作。我要感谢我的顾问Emeric BRUN,感谢他的耐心,富有洞察力的评论和硬件支持。我非常感谢他帮助我在Cobalt-hybrid、Cobalt-v100平台上进行测试。此外,我感谢他和Philippe Thierry为我提供了一台英特尔NUC机器来完成我的研究工作。我感谢论文委员会的其他成员:迈克尔·赫鲁(Michael Heroux )和让-弗朗索瓦·梅豪(Jean-FrançoisMEHAUT),他们是我的审稿人,给我写了一篇综述文献;雷蒙德·纳梅斯特(Raymond Namyst)、马克·韦尔德里(Marc Verderi)、艾曼纽·萨拉德(Emmanuelle SAILLARD)和弗朗切利·扎农·博伊托(Francieli ZANONBoito)是我论文答辩的考官。我还要衷心感谢Fausto MALVAGI,我在CEA Saclay的实验室SERMA/LTSD的主任和Edouard Audit,Maisonde la Simulation的主任,让我在整个研究过程中在两个地方学习和工作。我还要感谢这两个实验室的同事们,感谢他们在行政、学术和硬件方面的支持,以及与我进行的富有见地的交谈。我要感谢David Chamont为我提供了访问GridCL平台的机会,并成为我的学术顾问。我感谢Pierre Kestener对蒙特卡罗中子输运程序中Kokkos的实现给出了有益的评论我感谢Serge G。感谢Petiton指导了我在Maison de laSimulation的硕士实习,并启发了我对HPC领域研究的第一眼。我非常感谢我的父母和双胞胎兄弟,他们的爱和牺牲支持我不断追求我的梦想。标题:蒙特卡罗中子输运程序的结构和/或程序设计模型的评价Motscle's:Architectures man ycore,Architectureshe'te'roge` nes,Transpor t des particulesRes'sume':Danscettethe`senousproposons在不同的设计模式下,我们提供了不同的解决方案和比较方案mance,depor tabilite'delaper for mance,defacilite' disponib lespouradresserlesarchitecturesdetype和维护的 能 力 。Lesarchitec- man ycoreet/ouhe'te'roge` nesdanslecrawldesturesci b lessontlesCPU'classique',IntelXeon Phi codes de t r anspor t Monte Ca r l o. 在 考 虑 到 他们是 一 个 丹etGPU. Lesmode` lesdeprogrammationlesplusper-un premier temps un cas test去蒙特卡洛。标题:蒙特卡罗中子输运代码的多核和/或异构体系结构编程模型的评估关键词:多核体系结构,异构体系结构,粒子输运翻译后摘要:在这篇论文中,我们建议评估的解决方案的范围,并比较他们在不同的编程模型可用于地址-性能,性能的可移植性,易于iming- sing多核和/或异构体系结构plementation和可维护性。目标架构-在蒙特卡洛传输图的框架内是“经典”CPU,英特尔至强融核和GPU。密码。一个简单但有代表性的应用程序测试,最相关的编程模型,然后将成立的情况下,将被认为是为了涵盖相当广泛的蒙特卡罗运输代码。巴黎综合理工学院91120 Palaiseau,France简历Monte-Carlo中子输运模拟是一种随机可利用的方法核领域的参考计算。为了模拟真实世界的系统,介绍了数学和物理的近似方法,蒙特卡洛方法将粒子的成分通过统计学方法进行了分组,这是一种有意义的计算方法。在此之后,Monte-Carlo模拟中使用超级计算器是一种新的趋势Cependant,comme de plus en plusD'un côté,le déprispement et la durée de vie d'une application sont bien supérieurs au temps de déprispe-ment d'architectures informatiques.因此,考虑一个应用程序为一个架构donnée n'a pas de sens car après ledépement de l'application,il y a fortes chances que l'architecture ait déjà évolué。在其他地方,Pour répondre à l'évolution de la portabilité des performance,certains langages de programmation de hautniveau tels que OpenACC,OpenMP offload ont été proposés pour permettre à l'application de bien fonctionnersur une large gamme d'architectures sans de défrais de défraisement et de maintenance.拉普卢帕尔德这些编程模式是基于加速器的体系结构,它代表了计算体系结构的趋势。在这方面,我们intéressons au dépement关于性能便携性的评估,提出了一些定量评估性能和便携性之间的损害的方法。此外,还存在一些关于蒙特卡罗中子输运程序在性能可移植性方面的研究,以及可生产性能可移植性方面的研究。安西,在Monte-Carlo中子输运模拟的微型基准中,对便携性、性能和生产率进行了明确的评估。微型基准板AllNuclides在CEA的蒙特卡罗中子输运原型上实现,称为PATMOS。通过基于历史的方法和基于伪进化的方法,实现了对编码的一种改进。Plusieurs modèles de programmation(thread OpenMP,OpenMPoffload,OpenACC,CUDA,Kokkos et SYCL)ont été imémentés pour l'évaluation et les tests ont été réaliséssur différentes architectures(x86 ou OpenPower + GPU).采用一套方法评估我们的蒙特卡洛方法在短期内的排放便携性、性能和生产力。L’analyse des métriques a été réalisée avec la proposition d’une métrique générique etson qui atténue les défauts des métriques d’origine, les rendant plus adaptables pour gérer la comparaisonnumérique des applications en termes de portabilité des performances et de portabilité de la productivité à traversune variété d’informatique本文的目的是从便携性、性能和生产率等方面评价现有的计量方法,并提出改进计量方法的建议,以便在蒙特卡罗中子输运模拟中实现合理的应用主要目标如下:1. proposer un nouvel algorithme de suivi des particules,la methode pseudo event-based.2. analyser et régler les performances de la version CUDA.3. mettre en Üuvre des codes de transport de neutron Monte-Carlo portables via des modèles de programma-tion de haut niveau.4. 提出和分析一种普遍和多样的方法。5. 评估蒙特卡洛通用交通法规的实施情况。内容图四表vi词汇表八1介绍11.1动机11.2目标21.3轮廓线22并行计算42.1一般术语42.1.1冯·诺依曼体系结构42.1.2Flynn..........................................................................................................................................................................................2.1.3并行加速比82.1.4可扩展性102.2内存架构112.2.1共享内存112.2.2分布式内存122.2.3混合存储器132.3计算架构132.3.1硬件特性132.3.2CPU架构142.3.3GPU架构182.3.4异构体系结构232.4并行编程模型232.4.1低级别API 242.4.2基于指令的编程模型272.4.3图书馆292.4.4实现的编程模型的比较322.5用于性能分析的性能分析工具322.5.1nvprof 332.5.2NVIDIAVisualProfiler 333蒙特卡罗中子输运模拟343.1核反应堆物理343.2中子输运模拟353.2.1中子输运方程353.2.2第37节第37节3.2.3同位素消耗计算和热工水力反馈413.3计算方法413.3.1确定性方法413.3.2蒙特卡罗方法423.4HPC和蒙特卡罗中子输运模拟443.4.1最新技术水平443.4.2Chelelism非理性主义453.4.3基于历史和基于事件的方法3.4.4横截面计算算法493.4.5PATMOS MonteCarloPrototype 534在PATMOS 54中实现动态多普勒展宽的便携式实现4.1SIGMA1实时多普勒展宽算法4.2不同编程模型中的实现574.2.1代码架构584.2.2OpenMP线程实现614.2.3CUDA的实施4.2.4OpenACC实施634.2.5OpenMP卸载实施654.2.6Kokkos执行情况674.2.7SYCL实现694.3粒子跟踪方法的实现714.3.1基于异构卸载历史的方法714.3.2基于异构卸载伪事件的方法724.4数字结果734.4.1对基准的说明4.4.2客户支持734.4.3执行环境754.4.4主机模式下的性能分析4.4.5卸载模式下的性能分析4.4.6业绩评价844.5分析和优化904.5.1HB和PEB 914.5.2不同编程模式4.5.3CUDA95版的优化53.编程模型之间的比较5.1102的定义5.1.1通用型号1045.1.2适应性分析1075.1.3可移植性、性能和生产力的改进1115.1.4性能可移植性5.1.5生产力可移植性5.2对基准122的评价5.2.1性能可移植性评估1235.2.2生产力便携性评估1276结论和今后的工作1336.1结论1336.2未来的工作135参考书目136图目录2.1冯·诺依曼体系结构52.2指令和数据流。.................................................................................................................................................................................. 62.3SISD组织。.........................................................................................................................................................................................62.4SIMD组织。........................................................................................................................................................................................ 72.5MISD组织。........................................................................................................................................................................................ 72.6MIMD组织。........................................................................................................................................................................................82.7共享内存架构112.8分布式内存架构122.9混合存储器架构132.10 现代CPU架构[90]. ...........................................................................................................................................................................142.11 Broadwell模具图[4]。...................................................................................................................................................................... 152.12 POWER9 SMT核心图[7]。.............................................................................................................................................................172.13 POWER9SMT4芯片图,其中说明了缓存层次结构[108]。....................................................................................................... 172.14 现代GPU架构[90],其中.................................................................................................................................................................2.15 英特尔Gen9.5示意图[5]。...............................................................................................................................................................202.16 Nvidia Pascal GP100流式多处理器单元[87]. ............................................................................................................................. 212.17 [88]第88话:我的世界.....................................................................................................................................................................222.18 [33]第三十三话................................................................................................................................................................................. 252.19 CUDA内存层次结构[33]. ................................................................................................................................................................262.20 SYCL实现[8]. ...................................................................................................................................................................................313.1通过JANIS 4.0 [114]比较238 U的不同类型横截面,数据库设置为ENDF/B-VII.0库[30]。...................................................383.2温度对横截面的影响[36]。............................................................................................................................................................. 393.3通过一组体积跟踪中子从出生到死亡的历史,其中绿色周期指的是活跃的中子,红色周期指的是失活的中子................ 433.4串行蒙特卡罗中子输运模拟工作流程44图表一览表v4.1基类Nuclide及其派生类之间的固有关系58..................................................................................................................................4.2Media上的基类Neutr与其派生类之间的固有关系59....................................................................................................................4.3MediaNavigator上的基类Neutr与其派生类之间的固有关系59.................................................................................................4.4在主机模式下使用基于历史的方法的slabAllNuclides的缩放性能(模拟时间,越低越好;可扩展性强,越高越好)。784.5在主机模式下使用基于伪事件的方法的slabAllNuclides的缩放性能(模拟时间,越低越好;可扩展性强,越高越好)。...........................................................................................................................................784.6CUDA版slabAllNuclides在卸载模式下的库大小分析,越高越好824.7CUDA版本slabAllNuclides在卸载模式下的缩放性能,越高越好834.8slabAllNuclides在GridCL上的性能加速,越高越好-获得性能的基线在主机模式下使用基于伪事件的方法和固定数量的存储体大小,100。..................................................................................864.9slabAllNuclides在Cobalt-hybrid上的性能加速,越高越好-在主机模式下使用基于伪事件的方法和固定数量的存储体大小100获得性能的基线。..................................................................................................................................................................... 874.10 slabAllNuclides在Cobalt-v100上的性能加速,越高越好-在主机模式下使用基于伪事件的方法和固定数量的库大小100获得性能的基线。................................................................................................................................................................................ 874.11 slabAllNuclides在Gorgon上的性能加速,越高越好-获得了性能的基线在主机模式下使用基于伪事件的方法和固定数量的存储体大小,100。..................................................................................884.12 英特尔NUC上的slabAllNuclides性能加速,越高越好-性能的基线是ob-nuclides。保持在主机模式下,使用伪基于事件的方法和固定数量的存储体大小,100。..................................................................................................................................894.13 采用不同优化策略的CUDA版slabAllNuclides在GridCL上测试的性能加速,使用单个Nvidia V100和20个CPU线程,越高越好.................................................................................................................................................................................................. 1005.1一个例子的3P原则的实现编程模型,包括OpenMP线程,OpenMP卸载,OpenACC,Kokkos,SYCL。........................103表的列表2.1已实施的方案拟订模式4.1PATMOS 57中典型蒙特卡罗中子输运运行时间百分比4.2对不同编程模型的更好支持744.3运行slabAllNuclides基准测试的计算机列表。.............................................................................................................................754.4构成可访问机器的处理器的数量764.5通过不同的线程亲和性策略............................................................................................................................................................ 使用基于历史的方法的slabAllNuclides的OpenMP线程版本的性能774.6slabAllNuclides在卸载模式下采用不同线程亲合策略的性能比较在GridCL上使用单个Nvidia V100。..............................................................................................................................................814.7slabAllNuclides在卸载模式下采用不同线程亲合策略的性能比较两台Nvidia V100。...........................................................................................................................................................................814.8通过不同的编程模型在一组平台上的粒子跟踪率,越高越好844.9使用nvprof 91在GridCL上以卸载模式对CUDA版本的slabAllNuclides进行分析4.10 使用nvvp............................................................................................................................................................................................92的slabAllNuclides CUDA版本的计算内核sigma1DopplerBroadening()4.11 使用PEB方法的slabAllNuclides的OpenACC、OpenMP卸载、Kokkos版本的计算内核sigma 1 DopplerBroadening()的度量值。........................................................................................................................................................................................ 944.12 使用单个Nvidia V100在GridCL上测试的SlabAllNuclides的Kokkos版本的性能比较。.........................................................954.13 在GridCL上使用单个Nvidia V100和20 CPU线程984.14 使用单个Nvidia V100和20个CPU线程..........................................................................................................................................在GridCL上测试的slabAllNuclides的CUDA实现的性能比较995.1应用程序{a1,a2,a3}在一组平台上解决给定问题的执行时间{h1,h2},更好的1175.2解决给定问题的应用程序{a1,a2,a3,a4}跨一组平台{h1,h2,h3,h4,h5,h6}.............................................................的可移植性1185.3跨一组平台通过不同编程模型实现的slabAllNuclides的可移植性表一览表.七5.4跨一组平台的slabAllNuclides的不同实现的性能的描述5.5通过以下方式评估跨一组平台的slabAllNuclides的不同实现的性能可移植性:通用模型F和绝对性能指标,粒子跟踪率越高越好5.6通过以下方式评估跨一组平台的slabAllNuclides的不同实现的性能可移植性:通用模型F与相对性能指标,应用效率越高越好1265.7跨一组平台实现slabAllNuclides的隐式生产率的计算5.8F针对跨一组支持的平台实现slabAllNuclides评估的隐式生产力可移植性1295.9跨一组平台实现slabAllNuclides的显式生产率的计算5.10 跨子集平台通过通用模型F,相对而言,越高越好131术语表算术平均运算符。 106 Fgm几何平均算子。 106 F hm谐波平均算子。1073P可移植性、性能和生产力。102COMA仅缓存内存访问模型。12DRAM动态随机存取存储器。15DRAM静态随机存取存储器。15EPP显式生产力可移植性。122,129HB历史方法。77IPP隐式生产力可移植性。121代码行。113MIMD多指令流,多数据流. 6多指令流,单数据流。6非统一内存访问模型。11NW的字数。113PEB基于伪事件的方法。79PS-SYS平台特定的代码行。113PS-N平台特定程序长度。114PS-NW平台特定的字数。113相对开发时间生产率。115RPP轻松的性能可移植性。118词汇九SIMD单指令流,多数据流。6SISD单指令流,单数据流。6.SPMD单程序,多数据。8SPP严格的性能可移植性。117统一内存访问模型。11第1介绍1.1动机蒙特卡罗中子输运模拟是一种在核领域广泛应用的随机计算方法。蒙特卡罗方法没有引入数学和物理近似来模拟真实世界的系统,而是通过统计采样来聚集粒子行为,这显著地导致了大量的计算成本。为了减轻这种成本,使用超级计算机进行蒙特卡罗模拟已经成为许多研究人员和开发人员的趋势。然而,随着越来越多的现代体系结构(多核/众核,异构体系结构)出现在一个相当快的节奏,这是不平凡的开发完全可移植的应用程序在所有这些体系结构,而且,不断优化和维护的应用程序,以达到更好的性能在他们身上。一方面,应用程序的开发和生命周期远远大于计算架构的开发时间。因此,为给定的体系结构设计应用程序没有什么意义,因为在应用程序开发之后,体系结构很可能已经发展。另一方面,应用程序需要尽可能多的人进行扩展和维护,允许那些不熟悉HPC的人开发能够提供良好性能的代码因此,开发具有高性能可移植性的应用成为高性能计算领域的一个热点为了应对上述挑战并获得更好的性能可移植性,已经提出了一些高级这些编程模型大多专用于基于加速器的体系结构,多级并行性的大量增加代表了计算体系结构的潜在趋势。在这篇论文中,我们有兴趣开发便携式蒙特卡罗中子输运程序针对混合架构(CPU + GPU)的混合编程模型的利用。第1介绍2关于性能可移植性的评估,已经提出了一些度量来定量评估性能和可移植性之间的权衡。然而,很少有研究解决的超级计算机上的性能可移植性方面的蒙特卡罗中子输运程序的评估因此,我们打算给出一个明确的评价,在性能,可移植性以及生产力的一个小型基准的蒙特卡罗中子输运模拟。1.2目标总之,本论文的目的是从性能、可移植性、生产率等方面对现有的评价指标进行评估,并以蒙特卡罗中子输运模拟的实际应用为例,提出改进措施。整个过程描述如下:1. 我们选择的应用案例,PATMOS,这是一个蒙特卡罗中子输运原型在CEA开发2. 我们实现了一个迷你基准,slabAllNuclides上PATMOS执行固定源蒙特卡罗模拟,这是代表性的应用程序。3. 我们开发了一个异构卸载版本的代码与利用传统的基于历史的方法和最初提出的伪基于事件的方法。4. 我们实现了几个编程模型(OpenMP线
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功