邹佳恒 第十八届全国科学计算与信息化会议 • 威海,

Slides:



Advertisements
Similar presentations
定 格 入 格 破 格 —— 新诗仿写复习训练 仿照下列句子,再把 “ 人生 ” 比喻成 “ 大海 ”“ 天空 ” , 造两个句子。 如果说人生是一首优美的乐曲,那么痛苦则 是其中一个不可或缺的音符。 参考答案: 1 、如果说人生是一望无际的大海,那么挫折则 是其中一个骤然翻起的浪花。 2 、如果说人生是一片湛蓝的天空,那么失意则.
Advertisements

1 Java 语言程序设计 计算机系 鲍金玲. 2 引子 甲骨文 甲骨文是全球最大的信息管理软件及服务供应商,成立于 1977 年,公司总部 设在美国加利福尼亚州的红木城( Redwood Shores ),全球员工达 名, 包括 名开发人员、 7500 多名技术支持人员和.
© 2012 IBM Corporation IBM 中国系统与科技研发中心 --- IBM i 实验室之旅 利用工具分析 IBM i 程序性能 应锦鑫, IBM i 性能工具高级软件工程师 IBM 中国系统与科技研发中心.
第一章 餐饮服务程序 学习目的: 掌握餐饮服务四个基本环节的内容 正确表述和运用各种餐饮形式的服务程序 熟悉并利用所学知识灵活机动地为不同需求的 客人提供服务.
都是作假惹的禍 假 GO ~.
《3-6岁儿童学习与发展指南》概述.
金門的特色小吃 ~結合自然與人文的美食之旅~
党的十八届四中全会 依法治国精神解读. 党的十八届四中全会 依法治国精神解读 一、十八届四中全会概况 中国共产党第十八届中央委员会第四次全体会议,于2014年10月20日至23日在北京举行。 全会审议通过了《中共中央关于全面推进依法治国若干重大问题的决定》。
主題─ 悌 授課教師:謝宛琳.
证券市场法律制度与监督管理 作者:张学亮.
DATE: 14/10/2009 陳威宇 格網技術組 雲端運算相關應用 (Based on Hadoop)
Foundations of Computer Science
我怀念的乡村记忆 陈秀华 社会工作0841.
泰宁小学 六(2)班 林丹敏 早恋?!.
沟通技巧 主讲:涂育俊.
何谓学龄期 学龄期是指6~7岁入小学起至12~14岁进入青春期为止的一个年龄段。期小儿体格生长仍稳步增长,除生殖系统外其他器官的发育到本期末已接近成人水平。 这个时期发病率较前为低,但要注意预防近视眼和龋齿,矫治慢性病灶,端正坐、立、行姿势,安排有规律的生活、学习和锻炼,保证充足的营养和休息,注意情绪和行为变化,避免思想过度紧张。
IT原理与应用(1)-电脑系统 IT Principles and Applications (1) - Computer System
颈椎移位.
石家庄迅步网络科技有限公司 联系人:张会耀 电话:
第二章 项目一:企业厂区与车间平面设计 1.
中央广播电视大学开放教育试点课程 计算机操作系统.
网格 及其应用的一些相关技术 高能所计算中心 于传松
第2章:企業組織 張緯良 世新大學資訊管理系.
营改增政策 对人力资源服务业 的影响与应对.
第7章 行政监督.
第二章 进程、线程与作业 多道程序设计 Multi-programming 进程的引入 Process 线程与轻进程
操作系统结构.
HADOOP的高能物理分析平台 孙功星 高能物理研究所/计算中心
第8章 机床操作 主讲:臧红彬 博士.
第6章 死結(Deadlock).
                            Oracle 并行服务器介绍
班級:2年2班 座號:33 姓名:羅子惠 指導老師:黃源弘 資料來源:
班级小插曲.
經濟與公共事務科 中二級 之 專 題 報 告 Go.
性能测试培训 在组设置中可使用此模板作为演示培训材料的起始文件。 节
Chapter 13 輸入/輸出系統 (I/O Systems)
远程教育站点管理 及齐鲁先锋平台的使用 平阴县党员干部现代远程教育中心.
世界看遍 终归回到纯水岸 波托菲诺08年终总结. 世界看遍 终归回到纯水岸 波托菲诺08年终总结.
CHT Project Progress Report
Dcache - Lustre.
YARN & MapReduce 2.0 Boyu Diao
CH.2 Introduction to Microprocessor-Based Control
1-1 電腦的起源 1-2 電腦的演進 1-3 電腦的種類 1-4 電腦與生活
作業系統 補充: 雲端運算.
實現雲端運算 Hadoop HDFS 磁碟及記憶體之即時分級服務
第8章作業系統.
GPU分散式演算法設計與單機系統模擬(第二季)
Operating System Concepts 作業系統原理 CHAPTER 2 系統結構 (System Structures)
第五章 MSP430中斷式數位I/O.
作業系統 (Operating System)
任务调度架构变迁史 知道创宇 杨冀龙.
作者:汤雪华 博客: DDD & ENODE 作者:汤雪华 博客:
電腦及網路概論 電腦功能 資訊系統 資料通信 電腦網路 硬體設備 系統軟體.
第3章 認識處理元.
Rex 管理效率提升利器 Lekan 技术部 吴泽林(莫言) 2013/07/24.
认识计算机系统.
電腦基本概念 張森 高階 適合程度 初學.
软件工程 第四章 软件设计 软件过程设计技术与工具.
虚 拟 仪 器 virtual instrument
系统设计系统总体结构设计 代码设计 数据结构与数据库设计 输入输出设计 模块功能与处理过程 系统设计报告
Ⅵ.知识经营 간지 Ⅰ. 시스템소개 Autoway Groupware User Manual | 基本事项 | 创建组织 | 公告
自然與生活科技:太陽的觀測 高雄市 博愛國小 林佳蓉老師 2008/11/10.
生活教育 我會坐火車.
喜雨亭記 國二甲 S 陳姿婷.
數學遊戲二 大象轉彎.
4. 曾文水庫越域引水環評報告彙整 資料來源: 1. 曾文水庫越域引水下游輸水工程環境影響差異分析暨環境現況差異分析及對策檢討報告(定稿本)
Operating System Software School of SCU
技專校院多元入學管道 國立臺北科技大學 教務處 涂雅筑.
跟我学 PowerPoint 97 最流行的多媒体制作软件
中正大學,資工系,作業系統實驗室 陽春副教授 羅習五
Presentation transcript:

邹佳恒 第十八届全国科学计算与信息化会议 • 威海,2017.07.05 SNiPER软件框架 多线程并行计算研究 邹佳恒 第十八届全国科学计算与信息化会议 • 威海,2017.07.05

主要内容 SNiPER软件框架概述 SNiPER多线程计算的设计和开发 原型系统的测试 总结与计划 基本思想 Intel TBB简介 SNiPER Muster的实现 I/O和内存管理的概念设计 原型系统的测试 总结与计划

离线软件系统 基础软件库:高能物理领域内被广泛使用的大量软件工具 数据处理系统:从实验“原始数据”到“物理成果”的输运工具 软件框架:连接物理学家与软件,并承载数据处理系统的桥梁

基于SNiPER的软件层次结构 SNiPER In an User Algorithm: get data from memory execute calculation put results back to memory I/O: disk, DB, network, grid… Collect algorithm results Prepare data to be processed features such as geometry … No need to care where the data comes from No need to care where the data will go User’s Application Layer(用户代码层) Core Software Layer(核心层) Python UI Layer(用户配置层) Configure and run a job

主要内容 SNiPER软件框架概述 SNiPER多线程计算的设计和开发 原型系统的测试 总结与计划 基本思想 Intel TBB简介 SNiPER Muster的实现 I/O和内存管理的概念设计 原型系统的测试 总结与计划

SNiPER多线程计算的基本需求 软件框架的特征 软件顶层设计 可靠性、稳定性、运行效率等软件系统基础特征 提供主体流程控制和用户层代码规范,不涉及具体的数据处理过程 核心层接口和功能的连续性,避免用户层代码大规模改动 软件顶层设计 能够兼容多种并行/异构计算技术(多线程、MPI、GPU等) 能够兼容串行/并行的用户层代码 用户层串行代码(需满足少量规范),由框架核心层提供并行计算能力 支持多种形式的用户层并行代码(TBB、OpenMP、Raw Thread等) 对用户(近似)透明,从串行计算向并行计算迁移的代价足够小

SNiPER多线程计算的设计思想 SNiPER的技术后发优势 SNiPER多线程计算的努力方向 SNiPER支持相互独立的多个Task实例,能够直观对应到不同线程上 SNiPER多线程计算的努力方向 以非侵入的方式实现多线程并行计算 多线程相关的主体代码在核心层代码(SniperKernel)之外实现 核心层代码不依赖多线程环境,兼容已有的用户层串行代码 尽可能少的修改用户接口,避免用户代码大规模改动 采用已经开源的Intel TBB任务并行软件库

Intel TBB简介 高层次的概念抽象,可应用于软件系统的顶层设计 Intel TBB task 能被独立分解,可并发执行的计算任务 轻量,相对线程能够以极高的效率创建和调度 Intel TBB task scheduler 处理TBB task实例之间的依赖关系和执行次序 负责线程间的负载平衡 忙碌线程上的task实例可迁移至空闲线程(任务窃取) 高层次的任务抽象能有效减少线程间通信和竞争

Intel TBB task 典型的task::state() 转换 基于TBB的软件设计 [ Ref: Intel TBB manual ] 基于TBB的软件设计 任务抽象和分解 创建大量task实例 交由task scheduler负责剩余的工作

多线程SNiPER的主体结构 • • • Muster Multiple SNiPER Task Scheduler SniperTbbTask Mapping of a SNiPER Task to a TBB task Global Res. Global Resources such as Element Factory Thread Local Resource Copies Muster spawn ( N ) SniperTbbTask in Thread #1 Algorithm Algorithm #1.1 Service #1.1 SniperTbbTask in Thread #2 Algorithm #2.1 Service #2.1 • • • Global Res. I/O Factory

SNiPER核心层串行模式 高能物理传统串行软件核心控制流 基于事例循环 SNiPER核心模块默认方式 每次循环只处理一个事例 按顺序串行执行所有事例 SNiPER核心模块默认方式 begin end more events Y N execute

Muster with TBB task scheduler SNiPER Muster多线程模式 事例级并行,单个事例处理过程与串行运行模式一致 任务分解和映射 (SNiPER Task  TBB task) 每个事例的计算过程映射为一个TBB task 数据I/O等异步操作也映射为不同的TBB task类型 begin end more events N Y I/O task Event 1 Event 2 Event 3 ••• Event N Global Buffer process task SNiPER exe Muster with TBB task scheduler

并行环境下的I/O概念设计 对每个I/O流使用单例模式 负责事例计算的各task实例与I/O解耦和 Singleton Input Task InputSvc Singleton Output Task OutputSvc Singleton GlobalBuffer Lock free push_back Lock free pop_front SniperTbbTask Task LocalBuffer ••• a portion of GlobalBuffer determined by current event

并行环境下的事例内存管理设计 Global Buffer:与I/O流绑定,通过缓存避免I/O wait和竞争,同时还可 用于保证事例的输出次序 Local Buffer:与串行模式Data Buffer相同,以兼容用户层串行代码 Thread 1 Thread 2 Thread 3 Thread 4

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默认调度方法的补充

主要内容 SNiPER软件框架概述 SNiPER多线程计算的设计和开发 原型系统的测试 总结与计划 基本思想 Intel TBB简介 SNiPER Muster的实现 I/O和内存管理的概念设计 原型系统的测试 总结与计划

用户层串行算法兼容性示范 以HelloWorld算法为例,暂不考虑内存管理与I/O等共享资源 定义一个待映射的SNiPER Task实例,几乎与配置串行作业一样 调用Muster开启多线程并执行

性能测试 执行3次的平均时间(4核CPU): 使用”HelloWorld”算法(没有I/O),运行事例30,000,000 event task任务分解的准确性和可靠性 event task实例的调度性能 执行3次的平均时间(4核CPU): TBB线程数 运行时间(s) 1 20.94 2 12.50 4 7.43 传统串行模式(w/o Muster) 18.82

进展总结与开发计划 进展总结 开发计划 基于Intel TBB实现了SNiPER Muster多线程计算原型系统 事例级的任务分解和映射 对SNiPER核心层模块非侵入式的设计和实现 对用户(近似)透明,极小化用户的迁移代价 开发计划 并行环境下的数据I/O和内存管理的实现 JUNO等实验中的实践应用

Thanks !