没有合适的资源?快使用搜索试试~ 我知道了~
1里尔大学里尔北法兰西大学工程科学博士学院里尔计算机科学论文公开准备和支持通过杰罗姆·古勒姆在萨克雷2021年3月16日获得计算机使用任务图的后PB超级计算机的论文由Serge G. Petiton,里尔大学陪审团成员评审团主席威廉·贾尔比凡尔赛圣昆廷-昂伊夫林大学教授报告员米歇尔·戴代法国ENSEEIHT教授埃瓦·迪尔曼美国南加州大学教授检查员亨利·卡兰德拉法国Total SA博士芭芭拉·查普曼美国石溪大学教授;克莱尔·戴南斯法国里尔大学教授津二美和子日本理研博士导演塞尔日·G. 佩蒂顿法国里尔大学教授23里尔大学里尔北法兰西大学工程科学博士学院里尔计算机科学PH. D. THESIS准备和辩护由杰罗姆·古勒姆在萨克雷2021年 3月16日获得博士学位计算机科学使用后Petascale超级计算机论文由Serge G. Petiton,里尔大学委员会成员:委员会主席威廉·贾尔比凡尔赛圣昆廷大学教授记者米歇尔·戴代法国ENSEEIHT教授埃瓦·迪尔曼美国南加州大学教授考官亨利·卡兰德拉博士、法国道达尔公司芭芭拉·查普曼美国石溪大学教授克莱尔·戴南斯法国里尔大学教授津二美和子博士、日本理研顾问塞尔日·G. 佩蒂顿法国里尔大学教授4确认书首先,我想向我的顾问Serge G.教授表示衷心的感谢。Petiton和Henri Calandra博士感谢他们对我的博士研究和相关研究的持续支持,感谢他们的耐心、动力和丰富的知识。他们的指导帮助我在我的研究和写这篇论文。我无法想象有一个更好的导师为我的博士研究。我想感谢道达尔公司的资金,使我能够进行这篇论文。在我的顾问的帮助下,我想感谢我的论文委员会的其余部分:威廉·贾比教授主持了委员会,教授。米歇尔·戴代和教授Ewa Deelman为我的博士评审论文,教授芭芭拉·查普曼教授Clarisse Dhaenens博士和我想感谢模拟之家的所有成员欢迎我来到实验室,并进行了令人振奋的讨论,特别是博士。Martial Mancip对Docker和改进的帮助我的博士防御。我也要感谢我的家人和朋友,感谢他们在我学习期间的鼓励和支持。我也要感谢我的女朋友在我的工作和日常生活中的支持。56摘要自20世纪90年代中期以来,消息传递库一直是开发并行和分布式应用程序的最广泛使用的技术。例如,可以使用基于任务的调度模型,通过将所有资源(如折扣、广播或聚会)转换为具有任务的多个操作,来避免跨所有资源(如折扣、广播或聚会)的集体通信然后,调度程序可以调度这些操作,L’objectif 在论文中,研究了几种编程语言和范式。研究了求解线性系统的密集线性方法、空心向量矩阵积序列和基尔霍夫叠加前深层地震迁移,并将其作为基于任务的应用进行了研究和实现。提出了一种基于这些语言和范式的分类法 已经为每个简化的应用使用这些编程模型开发了软件。 作为这项研究的结果,提出了一种用于并行任务编程的方法,该方法通常优化数据移动,特别是针对有针对性的科学应用。78摘要自20世纪90年代中期以来,消息传递库一直是用于简化并行和分布式应用程序的最广泛的技术。然而,在百万兆级计算机上,它们可能不是一个足够有效的解决方案,因为由于计算资源的增加,可扩展性问题将出现。例如,可以使用基于任务的编程模型来避免沿所有资源的集体通信,例如减少、广播或通过将它们转换为任务上的多个操作然后,这些操作可以由调度器调度,以将数据和计算置于优化和减少数据通信的方式。本文的主要目标是研究什么是科学应用的基于任务的编程,并通过对TOTAL和经典的密集和稀疏线性方法的重要科学应用的几种简化表示进行实验,提出这样的分布式和并行编程的规范在论文中,研究了几种编程语言和范式。研究了求解线性系统的密集线性方法、稀疏矩阵向量积序列和Kirch-hoff地震前叠加深度迁移,并将其作为基于任务的应用程序进行了研究和实施。提出了一种基于这些语言和范式的分类法。软件是使用这些编程模型为每个简化的应用程序开发的。作为这些研究的结果,提出了一种用于并行任务编程的方法,用于优化一般的数据移动,特别是用于有针对性的科学应用。910内容物1导言231.1动机231.2目标和贡献241.3大纲252基于任务的高性能计算272.1基于任务的高性能计算时间表272.2当前基于任务的编程模型292.2.1基于共享内存的基于2.2.2分布式内存上基于任务的编程模型2.2.3任务在分布式内存上运行的2.3超级计算机的百万兆级挑战3方法393.1密集线性代数393.1.1求解线性系统的基于块的LU因式分解3.1.2求解线性系统的基于块的3.1.3求解线性系统的基于块的高斯-Jordan消元3.2稀疏线性代数453.2.1稀疏矩阵存储和稀疏矩阵向量乘法3.2.2并行化523.2.3优化523.2.4测试矩阵533.3Kirchhoff地震堆前深度迁移543.3.1概述543.3.2速度模型543.3.3数据收集553.3.4绿色功能563.3.5基尔霍夫移民583.3.6地球物理学家对输出的分析12114语言614.1消息传递接口614.2基于任务的编程模型614.2.1PaRSEC614.2.2军团664.2.3摄政王704.2.4TensorFlow734.2.5HPX754.3基于并行和分布式任务的编程模型814.3.1YML+XMP814.3.2飞马座894.3.3斯威夫特914.4语言的分析与初步评价4.5使用容器部署应用程序975基于任务的并行和分布式密集线性代数应用5.1求解密集线性系统的基于任务的方法图5.1.1基于块的高斯消除1005.1.2基于块的高斯-Jordan消除1015.1.3基于块的LU因式分解1035.1.4块三角系统的基于块的1045.2YML+XMP的使用和实验1065.2.1在K计算机106上的实验5.2.2来自La Maison de la Simulation112的庞加莱集群实验5.2.3最优参数的预测1165.2.4结果总结1175.3计算LU因式分解的几种基于图的语言5.3.1实验详情1185.3.2性能1195.3.3强缩放1225.3.4结果总结1245.4综合与展望1246基于任务的、并行的和分布式的稀疏线性代数6.1并行和分布式算法6.1.1数据分发1276.1.2任务定义1306.1.3基于任务的并行算法1326.2数字实验1366.2.1应用程序描述1366.2.2总千万亿级Pangea II137的结果和分析内容136.3总结与展望1567基于任务的、并行和分布式Kirchhoff地震预叠加深度迁移应用程序1597.1算法1597.1.1基本算法1597.1.2平行性1627.1.3任务算法1627.1.4使用GPU1637.1.5预取和传播数据1637.22D实现1647.2.1C内核描述1647.2.2分布式和并行应用程序7.32D数值实验1667.3.1强缩放1677.3.2弱标度1687.3.3ICMP线程数的变化1697.4综合与展望1708基于任务的编程模型和建议的分类8.1分类学1738.1.1任务能力1738.1.2任务和数据管理1808.1.3编程模型功能1858.2分类学摘要1918.3分析和建议1958.3.1适应算法粒度的编程模型1958.3.2数据迁移1958.3.3封装的任务1958.3.4依赖项表达式1968.3.5动态任务调度1968.3.6高级语言1968.3.7容错能力1968.3.8检查点1978.3.9多级编程1978.3.10 集体行动1978.4后PB级编程的初步方法1988.5综合与展望1999结论和观点2019.1结论20114 9.2未来研究205参考文献207图列表3.1以密集格式3.2以COO格式47存储的稀疏矩阵3.3以CSR格式48存储的稀疏矩阵3.4以对角线格式483.5以Ellpack-Itpack格式49存储的稀疏矩阵3.6以压缩行格式50的稀疏通用模式存储的稀疏矩阵3.7以稀疏通用模式存储的稀疏矩阵,压缩列格式513.8Q=0.05且C=4的3.9地震速度模型54的建造过程3.10 数据采集期间的拍摄553.11 发射和地震图563.12 来自[107]57的通过P的S和R之间的波传播3.13 2D和3D网格来自[107]573.14 粗网格和来自细网格的点583.15 来自IRIS-DMC存储库4.1YML软件体系结构824.2XMP编程示例[114]844.3Swift代码92示例4.4代码92的图形转换5.1图形传奇1005.2p= 4,101的带5.3p= 4,102的基于块的高斯-Jordan消除图5.4p= 4,104的5.5p = 4,105的基于块的LU因式分解图5.6K计算机(左)及其SPARC64 VIIifx处理器(右)[120]1065.7使用高斯消除+反向替换求解线性系统(尺寸为16384)K计算机1095.8在K-1105.9使用LU因式分解+前后置换求解线性系统(size)在K计算机111上运行。1516图列表5.10 使用高斯消除+反向替换求解线性系统(尺寸为16384)左边是32768,右边是1135.11 使用LU因式分解+前后替换求解线性系统(size左边是16384,右边是32768),在庞加莱114上5.12 在Poincare114上使用高斯-乔丹消元求解线性系统(左侧为16384,右侧为5.13 在16384×16384矩阵(顶部)、32768×32768矩阵上使用多个基于任务的编程模型实现的基于块的LU分解获得的执行时间(中)和一个49512×49512矩阵(底部)1215.14 在16384×16384矩阵(顶部)和32768×32768矩阵(中间)上使用基于块的LU因式分解实现多任务和y轴123的49512 × 49512矩阵(底部)- log 2标度6.1按子列被压缩的列分布矩阵1286.2按子行被压缩的行分布矩阵1296.3按行和列分布矩阵,其中块被压缩为矩阵。6.4由YML+XMP管理的具有3×3任务级矩阵的矩阵中的两级划分,其中有4 ×4子矩阵1376.5针对2,000,000× 2,000,000矩阵的高扩展性(考虑HPX和多种存储格式)C = 300,在Pangea II上。图例为(型号、格式、Q)。................................................................... 1396.6针对2,000,000× 2,000,000矩阵的高扩展性(考虑MPI和多种存储格式)C = 300,在Pangea II上。图例为(型号、格式、Q)。................................................................... 1406.7Pangea II上C = 300的2,000,000 × 2,000,000矩阵的YML和几种存储格式的强缩放。图例为(型号、格式、Q)。.............................................................................................................................1416.8针对4,000,000× 4,000,000矩阵的高扩展性(考虑HPX和多种存储格式)C = 300,在Pangea II上。图例为(型号、格式、Q)。................................................................... 1436.9对于4,000,000× 4,000,000矩阵,考虑MPI和多种存储格式的强大可扩展性C = 300,在Pangea II上。图例为(型号、格式、Q)。................................................................... 1446.10 Pangea II上C = 300的4,000,000 × 4,000,000矩阵的YML和几种存储格式的强缩放。图例为(型号、格式、Q)。.............................................................................................................................1456.11 考虑HPX和4,000,000× 4,000,000矩阵的多种存储格式的弱扩展Pangea II上每个节点的C = 300。图例为(型号、格式、Q)。....................................................... 1476.12 考虑4,000,000× 4,000,000矩阵的MPI和多种存储格式时的弱扩展Pangea II上每个节点的C = 300。图例为(型号、格式、Q)。....................................................... 1486.13 考虑4,000,000× 4,000,000矩阵的YML和多个存储格式的弱扩展Pangea II上每个节点的C = 300。图例为(型号、格式、Q)。....................................................... 1496.14 考虑HPX和3,000,000× 3,000,000矩阵的多种存储格式的弱扩展Pangea II上每个节点的C = 300。图例为(型号、格式、Q)。....................................................... 1506.15 考虑3,000,000× 3,000,000矩阵的MPI和多种存储格式的弱可伸缩性Pangea II上每个节点的C = 300。图例为(型号、格式、Q)。....................................................... 151图17列表6.16 Pangea II上Q = 0.4的每个节点4,000,000 × 4,000,000矩阵的HPX和多个存储格式的每行值数变化。图例为(型号、格式、C)。......................................................................................................................................................... 1526.17 在Pangea II上,Q = 0.4的每个节点4,000,000 × 4,000,000矩阵的每行值数的变化(考虑MPI和多个存储格式)图例为(型号、格式、C)。......................................................................................................................................................... 1536.18 Pangea II上Q = 0.4的每个节点4,000,000 × 4,000,000矩阵的每行值数的变化(考虑YML和几种存储格式)。图例为(型号、格式、C)。......................................................................................................................................................... 1547.1跟踪示例1657.2源和接收器在同一位置的传播时间1657.3从迁移轨迹获得的图像1667.4针对15,000×15,000图像泛大陆II。传奇是(模特)。................................................................................................................. 1677.5针对15000×15000图像点考虑HPX、MPI和MPI+ OpenGL的弱缩放泛大陆II。传奇是(模特)。................................................................................................................. 16818图列表表列表5.1在具有1024个内核的5.2在具有8096个内核的5.3求解线性系统的执行时间1155.416384×16384矩阵上最快情况的块数,以及每个矩阵的进程数括号118之间的任务5.532768×32768矩阵上最快情况的块数,每个矩阵的进程数括号118之间的任务5.649512×49512矩阵上最快情况的块数,每个矩阵的进程数括号119之间的任务7.1Pangea II上15,000× 15,000点映像的应用程序的ICMP线程数增加时,纯ICMP应用程序的执行时间。........................................................................................................................................................ 1697.2在为15000 ×15000的应用程序保留,增加MPI进程数的混合MPI+ ICMP应用程序的执行时间点像。........................................................................................................................................................ 1698.1每个基于任务的编程模型的任务粒度属性1758.2每个基于任务的编程模型的体系结构属性1768.3每个基于任务的编程模型177的异构性属性8.4每个基于任务的编程模型的数据处理属性1788.5每个基于任务的编程模型的任务实现属性1798.6每个基于任务的编程模型的可移植性加速器属性1808.7每个基于任务的编程模型的依赖性类型属性1818.8每个基于任务的编程模型的工作者管理属性1828.9每个基于任务的编程模型的数据分布属性1838.10 每个基于任务的编程模型的任务绑定属性1848.11 每个基于任务的编程模型的任务插入属性1858.12 每个基于任务的编程模型的依赖性表达式属性8.13 每个基于任务的编程模型的通信模型属性1878.14 每个基于任务的编程模型的容错属性1888.15 每个基于任务的编程模型的实现类型属性1898.16 每个基于任务的编程模型的数据持久性属性1901920个表格列表8.17 每个基于任务的编程模型的属性1918.18 任务能力摘要1928.19 任务和数据管理摘要1938.20 编程模型功能摘要194
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功