- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
sniper软件框架 与并行计算进展
SNiPER软件框架 多线程并行计算研究
邹佳恒
第十八届全国科学计算与信息化会议 • 威海,2017.07.05
主要内容
SNiPER软件框架概述
SNiPER多线程计算的设计和开发
基本思想
Intel TBB简介
SNiPER Muster的实现
I/O和内存管理的概念设计
原型系统的测试
总结与计划
2
离线软件系统
3
基础软件库:高能物理领域内被广泛使用的大量软件工具
数据处理系统:从实验“原始数据”到“物理成果”的输运工具
软件框架:连接物理学家与软件,并承载数据处理系统的桥梁
基于SNiPER的软件层次结构
4
主要内容
SNiPER软件框架概述
SNiPER多线程计算的设计和开发
基本思想
Intel TBB简介
SNiPER Muster的实现
I/O和内存管理的概念设计
原型系统的测试
总结与计划
5
SNiPER多线程计算的基本需求
软件框架的特征
可靠性、稳定性、运行效率等软件系统基础特征
提供主体流程控制和用户层代码规范,不涉及具体的数据处理过程
核心层接口和功能的连续性,避免用户层代码大规模改动
软件顶层设计
能够兼容多种并行/异构计算技术(多线程、MPI、GPU等)
能够兼容串行/并行的用户层代码
用户层串行代码(需满足少量规范),由框架核心层提供并行计算能力
支持多种形式的用户层并行代码(TBB、OpenMP、Raw Thread等)
对用户(近似)透明,从串行计算向并行计算迁移的代价足够小
6
SNiPER多线程计算的设计思想
7
SNiPER的技术后发优势
SNiPER的初始版本中虽未实现多线程计算,但其底层设计已充分考虑了并行计算的需求
SNiPER支持相互独立的多个Task实例,能够直观对应到不同线程上
SNiPER多线程计算的努力方向
以非侵入的方式实现多线程并行计算
多线程相关的主体代码在核心层代码(SniperKernel)之外实现
核心层代码不依赖多线程环境,兼容已有的用户层串行代码
尽可能少的修改用户接口,避免用户代码大规模改动
采用已经开源的Intel TBB任务并行软件库
Intel TBB简介
高层次的概念抽象,可应用于软件系统的顶层设计
Intel TBB task
能被独立分解,可并发执行的计算任务
轻量,相对线程能够以极高的效率创建和调度
Intel TBB task scheduler
处理TBB task实例之间的依赖关系和执行次序
负责线程间的负载平衡
忙碌线程上的task实例可迁移至空闲线程(任务窃取)
高层次的任务抽象能有效减少线程间通信和竞争
8
Intel TBB task
9
典型的task::state() 转换
[ Ref: Intel TBB manual ]
基于TBB的软件设计
任务抽象和分解
创建大量task实例
交由task scheduler负责剩余的工作
多线程SNiPER的主体结构
10
Muster Multiple SNiPER Task Scheduler
SniperTbbTask Mapping of a SNiPER Task to a TBB task
Global Res. Global Resources such as Element Factory
SNiPER核心层串行模式
11
高能物理传统串行软件核心控制流
基于事例循环
每次循环只处理一个事例
按顺序串行执行所有事例
SNiPER核心模块默认方式
SNiPER Muster多线程模式
12
事例级并行,单个事例处理过程与串行运行模式一致
任务分解和映射 (SNiPER Task TBB task)
每个事例的计算过程映射为一个TBB task
数据I/O等异步操作也映射为不同的TBB task类型
并行环境下的I/O概念设计
13
对每个I/O流使用单例模式
负责事例计算的各task实例与I/O解耦和
并行环境下的事例内存管理设计
14
Global Buffer:与I/O流绑定,通过缓存避免I/O wait和竞争,同时还可用于保证事例的输出次序
Local Buffer:与串行模式Data Buffer相同,以兼容用户层串行代码
SNiPER Muster性能优化策略
TBB task objects的Recycling
TBB的recycling机制能避免相同类型task对象的大量构造和析构
SNiPER Muster中用于事例计算的task对象数目与开启的线程数目保持一致,并能持续重复使用
为I/O等异步操作构建更多的TBB task对象
合理利用TBB Scheduler Bypass
在确定的上下文环境中,开发者介入TBB task scheduler,实现对task的更高效调度
是对TBB task默认调度方法的补充
1
您可能关注的文档
最近下载
- 食堂用餐协议书范本(2025版).docx VIP
- 中建八局《质量标准化系列做法(主体结构工程)》2022年.pptx VIP
- TD_T 1021-2009县级土地利用总体规划制图规范.pdf VIP
- 粤人版英语五年级下册Review1 Reading and writing 课件.pptx VIP
- 离散数学崔艳荣习题答案.docx VIP
- 人教版八年级体育与健康:学会与他人交往 (2).pptx VIP
- 《水力发电》课件.pptx VIP
- 企业工会助推企业高质量发展.docx VIP
- GB50974-2014 消防给水及消火栓系统技术规范.pdf VIP
- 新风系统入门培训资料.ppt VIP
文档评论(0)