核探测与核电子学国家重点实验室 报告人:董磊 指导老师:宋克柱

Slides:



Advertisements
Similar presentations
四川财经职业学院会计一系会计综合实训 目录 情境 1.1 企业认知 情境 1.3 日常经济业务核算 情境 1.4 产品成本核算 情境 1.5 编制报表前准备工作 情境 1.6 期末会计报表的编制 情境 1.2 建账.
Advertisements

主编:邓萌 【点按任意键进入】 【第六单元】 教育口语. 幼儿教师教育口 语概论 模块一 幼儿教师教育口语 分类训练 模块二 适应不同对象的教 育口语 模块三 《幼儿教师口语》编写组.
第一組 加減法 思澄、博軒、暐翔、寒菱. 大綱 1. 加減法本質 2. 迷思概念 3. 一 ~ 七冊分析 4. 教材特色.
海南医学院附 院妇产科教室 华少平 妊娠合并心脏病  概述  妊娠、分娩对心脏病的影响  心脏病对妊娠、分娩的影响  妊娠合病心脏病的种类  妊娠合并心脏病对胎儿的影响  诊断  防治.
植树节的由来 植树节的意义 各国的植树节 纪念中山先生 植树节的由来 历史发展到今天, “ 植树造林,绿化祖国 ” 的热潮漫卷 了中华大地。从沿海到内地,从城市到乡村,涌现了多少 造林模范,留下了多少感人的故事。婴儿出世,父母栽一 棵小白怕,盼望孩子和小树一样浴光吮露,茁壮成长;男 女成婚,新人双双植一株嫩柳,象征家庭美满,幸福久长;
客户协议书 填写样本和说明 河南省郑州市金水路 299 号浦发国际金融中 心 13 层 吉林钰鸿国创贵金属经营有 限公司.
浙江省县级公立医院改革与剖析 马 进 上海交通大学公共卫生学院
第二章 环境.
教师招聘考试 政策解读 讲师:卢建鹏
了解语文课程的基本理念,把握语文素养的构成要素。 把握语文教育的特点,特别是开放而有活力的语文课程的特点。
北台小学 构建和谐师生关系 做幸福教师 2012—2013上职工大会.
福榮街官立小學 我家孩子上小一.
第2期技職教育再造方案(草案) 教育部 101年12月12日 1 1.
企业员工心态管理培训 企业员工心态管理培训讲师:谭小琥.
第九章 会计设置及机构.
区域教育信息中心工作的思考与探索 ----抓好应用建设 提升服务水平.
公司保密工作要求及 院商秘保护工作安排 2014年9月12日.
导游资格证考试概要.
城区西北片区集中供热扩容工程 供热管理科 宋健敏.
门店助手V3.1.0版 用户操作手册 广东蜂助手网络科技有限公司 2015年03月.
开题报告.
第三組 偏差與正常 4A3I0006 周秀鎂 4A3I0009 閔佑婷 4A3I0035 蔡佩倫 4A3I0041 林宜臻
2013 澎湖自助旅行講座 澎湖,其實就是一片海洋 主辦:沿著菊島旅行 協辦: 台北澎湖同鄉會、台中澎湖同鄉會、高雄澎湖同鄉會
易學基礎教程 國文系99 王隆運. 易學基礎教程 國文系99 王隆運.
技术试验及其方法 制作者 : 贾琼瑞
中国企业社会责任探讨 2010思政四组
第4章 数组 数组是由一定数目的同类元素顺序排列而成的结构类型数据 一个数组在内存占有一片连续的存储区域 数组名是存储空间的首地址
新形势下如何操作净水市场 疏龙林.
C语言程序设计 课程 第5章 数组 主讲:李祥 博士、副教授 单位:软件学院软件工程系.
高级语言程序设计 主讲人:陈玉华.
Chapter 1 用VC++撰寫程式 Text book: Ivor Horton.
選擇排序法 通訊一甲 B 楊穎穆.
資料大樓 --談指標與陣列 綠園.
C的發展史 C程式初體驗 C程式設計基本注意事項 上機實習課程
函數(一) 自訂函數、遞迴函數 綠園.
多核结构与程序设计复习 2012年 杨全胜 东南大学成贤学院计算机系.
并行计算实验上机 国家高性能计算中心(合肥).
并行算法实践.
教材 《C++程序设计》.谭浩强. 清华大学出版社 王雪晶
C++程序设计 string(字符串类) vector(容器类).
给孩子做一面明亮的镜子 给孩子做一面明亮的镜子.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
东北林业大学 陈宇 ACM程序设计 东北林业大学 陈宇
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
C语言程序示例: 1.输入10个数,按从小到大的顺序排序。 2.汉诺塔问题。.
OpenMP程序设计 2019/4/25.
3.5 线程 问题的提出 进程的引入使操作系统得以完成对并发执行的多道程序动态特征的描述和资源共享的管理,因而进程既是调度的基本单位又是资源分配的基本单位。进程所具有的这两个特点构成了程序并发执行的基础,但同时又导致进程切换过程中由于进程映像过大而带来的时空开销。因此,如果系统中创建的进程过多,或进程切换的频率过高,则会使系统效率下降,限制了并发度的进一步提高。
物件導向程式設計 CH2.
指標
課稅負擔的歸屬.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++程式設計入門 變數與運算子 作者:黃建庭.
C++大学基础教程 第10章 运算符重载 北京科技大学 2019/5/7 北京科技大学.
第二章 类型、对象、运算符和表达式.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab7.
本节内容 函数嵌套调用的内存布局 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
資料!你家住哪裏? --談指標 綠園.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
資料結構與C++程式設計進階 C++與資料結構 講師:林業峻 CSIE, NTU 7/ 5, 2010.
2019 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A Lab7.
函式庫補充資料 1.
隨機函數.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

核探测与核电子学国家重点实验室 报告人:董磊 指导老师:宋克柱 陆上小型地震仪主控软件设计 核探测与核电子学国家重点实验室 报告人:董磊 指导老师:宋克柱

内容 1 陆上小型地震仪简介 2 主控软件功能需求 3 主控软件结构 4 并行计算的应用

陆上小型地震仪简介

主控软件功能需求 存储 功能 监测 测试 采集 存储 监测 测试 测试小型地震仪技术指标 实现正常采集数据的功能 存储测试结果及正常采集数据 监测和回放采集数据的指标

软件结构 核心控制模块 提供共享数据库 完成数据存储 软件接口模块 采集模块 测试模块 通过USB与硬件通信 配置采集参数,下传采集命令,提供图形监测界面 配置测试参数,下传测试命令,提供图形化测试结果 核心控制模块 采集模块 测试模块 提供共享数据库 完成数据存储

软件基本工作流程 开始 初始化 系统测试 正常采集 数据回放

初始化

系统测试

正常采集

数据回放

初始化过程 超时自动返回 线程自动销毁 发送初始化命令 接收数据 通知主线程 初始化线程 抛出初始化线程 等待 等待 继续执行 主线程

系统测试(循环测试情况) 系统测试线程 主线程 系统测试线程 数据处理线程 主线程 事件锁定 接收数据 发消息到主线程 等待事件 发送测试命令 主线程 抛出测试线程 等待消息 等待消息 分析消息 系统测试线程 等待事件 等待事件 发送测试命令 事件置位 数据处理线程 处理数据 …(完成) 事件置位 线程自动销毁 主线程 抛出处理线程 等待消息 等待消息 判断消息类别

多线程 是否需要创建多个线程取决于各种因素。在以下情况下,最适合采用多线程处理: (1)耗时或大量占用处理器的任务阻塞用户界面操作; 是否需要创建多个线程取决于各种因素。在以下情况下,最适合采用多线程处理:  (1)耗时或大量占用处理器的任务阻塞用户界面操作; (2)某个任务必须等待外部资源 (如远程文件或 Internet连接)。 (3)并行计算:多核已经成为了主流。传统的应用程序再也无法顺其自然地在更高端的硬件设备上获得更高的性能回报,并行计算已经成为软件开发的核心趋势之一。

串行计算和并行计算对多核CPU利用情况

并行计算(Parallel computing)

CMP: Chip-level multiprocessing 适合PC应用程序使用的API 目前,适合在CMP平台上使用的并行编程模式OpenMP、Pthreads等;MPI实现的是进程级并行,更多的是用于Cluster(集群)系统。 VS2010支持OpenMP 2.0标准。 同时,VS2010还提供一种称之为“并发运行时”的编程框架。除此之外还有Windows API提供的线程操作接口。 CMP: Chip-level multiprocessing

OpenMP 和并发运行时(Concurrency Runtime) 当并行度是预先确定的并且和系统上的可用资源相匹配时,OpenMP 效率较高。 OpenMP 模型特别适合于高性能计算。 在此方案中,硬件环境是已知的,开发人员可以合理地期望在执行该算法时拥有对计算资源的独占访问权。 但是,其他约束较少的计算环境可能不是 OpenMP 的绝佳匹配。 例如,使用 OpenMP 更难以实现递归问题(如数据的 quicksort 算法或搜索树)。 通过提供并行模式库 (PPL) 和异步代理库,并发运行时对 OpenMP 的功能进行了补充。 与 OpenMP 不同,并发运行时提供动态计划程序,该计划程序可以适应可用资源并且在工作负荷更改时调整并行度。 它包含一套编译指令,库例程,影响运行时间的环境变量,除了SMP之外,还有非共享内存的多核结构,如MPP、Cluster、Grid

本软件中的并行计算

串行处理CPU资源利用 DrawGraph:0.720s CaculateRMSValue:0.380s

并行处理CPU利用 速度提升 MonitorTreadFun:0.452s DrawGraph:0.720s 1.59 VS DrawGraphTreadFun:0.177s CaculateRMSValue:0.380s 2.14

资源监视器看到的情形

Posix Thread #include <pthread.h> #include <stdio.h> #include <stdlib.h> #include <assert.h> #define NUM_THREADS 5 void *TaskCode(void *argument) { int tid; tid = *((int *) argument); printf("Hello World! It's me, thread %d!\n", tid); /* optionally: insert more useful stuff here */ return NULL; } int main(void) pthread_t threads[NUM_THREADS]; int thread_args[NUM_THREADS]; int rc, i; /* create all threads */ for (i=0; i<NUM_THREADS; ++i) thread_args[i] = i; printf("In main: creating thread %d\n", i); rc = pthread_create(&threads[i], NULL, TaskCode, (void *) &thread_args[i]); assert(0 == rc); } /* wait for all threads to complete */ rc = pthread_join(threads[i], NULL); assert(0 == rc); exit(EXIT_SUCCESS);

OpenMP #include <omp.h> #include <stdio.h> #include <stdlib.h> #define SIZE 10 int main() { int i; int a[SIZE]; #pragma omp parallel for num_threads(4) for (i = 1; i < SIZE; i++) { if (a[i] > max) { #pragma omp critical { if (a[i] > max) max = a[i]; } } printf_s("max = %d\n", max);

并发运行时 // parallel-for-structure.cpp // compile with: /EHsc #include <ppl.h> #include <array> #include <sstream> #include <iostream> using namespace Concurrency; using namespace std; int wmain() { // Print each value from 1 to 5 in parallel. parallel_for(1, 6, [](int value) { wstringstream ss; ss << value << L' '; wcout << ss.str(); }); }

Thank You!