人人范文网 范文大全

多核多线程题目总结

发布时间:2020-03-02 23:13:18 来源:范文大全 收藏本文 下载本文 手机版

2.并行和并发的概念与区别:

-如果某个系统支持两个或多个动作(Action)同时存在,那么这个系统就是一个并发系统 -如果某个系统支持两个或多个动作同时执行,那么这个系统就是一个并行系统

-并发程序可同时拥有两个或多个线程。如果程序能够并行执行,则一定是运行在多核处理器上,每个线程都将分配到一个独立的处理器核上。

-“并行”概念是“并发”概念的一个子集 3.并行计算技术的主要目的:

加速求解问题的速度

例如,给定某应用,在单处理器上,串行执行需要2 周,这个速度对一般的应用而言,是无法忍受的。于是,可以借助并行计算,使用100 台处理器,加速50 倍,将执行时间缩短为6.72 个小时。

提高求解问题的规模

例如,在单处理器上,受内存资源2GB的限制,只能计算10 万个网格,但是,当前数值模拟要求计算千万个网格。于是,也可以借助并行计算,使用100 个处理器,将问题求解规模线性地扩大100 倍。 并行计算的主要目标:

在并行机上,解决具有重大挑战性计算任务的科学、工程及商业计算问题,满足不断增长的应用问题对速度和内存资源的需求。

4.并行计算的主要研究内容大致可分为四个方面:

并行机的高性能特征抽取

充分理解和抽取当前并行机体系结构的高性能特征,提出实用的并行计算模型和并行性能评价方法,指导并行算法的设计和并行程序的实现。

并行算法设计与分析

设计高效率的并行算法,将应用问题分解为可并行计算的多个子任务,并具体分析这些算法的可行性和效果。

并行实现技术

主要包含并行程序设计和并行性能优化。

并行应用

这是并行计算研究的最终目的。通过验证和确认并行程序的正确性和效率,进一步将程序发展为并行应用软件,应用于求解实际问题。同时,结合实际应用出现的各种问题,不断地改进并行算法和并行程序。 5.并行程序执行时间

对各个进程,墙上时间可进一步分解为计算CPU时间、通信CPU时间、同步开销时间、同步导致的进程空闲时间

计算CPU时间:进程指令执行所花费的CPU时间,包括程序本身的指令执行占用的时间(用户时间)和系统指令花费的时间;

通信CPU时间:进程通信花费的CPU时间; 同步开销时间:进程同步花费的时间;

进程空闲时间:进程空闲时间是指并行程序执行过程中,进程所有空闲时间总和(如进程阻塞式等待其他进程的消息时。此时CPU通常是空闲的,或者处于等待状态) 6.并行程序性能优化

最主要的是选择好的并行算法和通信模式

减少通信量、提高通信粒度

提高通信粒度的有效方法就是减少通信次数,尽可能将可以一次传递的数据合并起来一起传递

全局通信尽量利用高效集合通信算法

对于标准的集合通信,如广播、规约、数据散发与收集等,尽量调用MPI标准库函数 挖掘算法的并行度,减少CPU空闲等待

具有数据相关性的计算过程会导致并行运行的部分进程空闲等待.在这种情况下,可以考虑改变算法来消除数据相关性

7.顺序程序的特性

顺序性:处理机严格按照指令次序依次执行,即仅当一条指令执行完后才开始执行下一条指令;

封闭性:程序在执行过程中独占系统中的全部资源,该程序的运行环境只与其自身动作有关,不受其它程序及外界因素影响;

可再现性:程序的执行结果与执行速度无关,而只与初始条件有关,给定相同的初始条件,程序的任意多次执行一定得到相同的执行结果. 8.并发程序特性

交叉性:程序并发执行对应某一种交叉,不同的交叉可能导致不同的计算结果,操作系统应当保证只产生导致正确结果的交叉,去除那些可能导致不正确结果的交叉;

非封闭性:一个进程的运行环境可能被其它进程所改变,从而相互影响;

不可再现性:由于交叉的随机性,并发程序的多次执行可能对应不同的交叉,因而不能期望重新运行的程序能够再现上次运行的结果。

10.Win32线程同步的实现

11.数据作用域对数据值的影响

12.分析程序的结果

13.并行区域编程与parallel for语句的区别

-并行区域采用了复制执行方式,将代码在所有的线程内各执行一次;

-循环并行化则是采用工作分配执行方式,将循环需做的所有工作量,按一定的方式分配给各个执行线程,全部线程执行工作的总合等于原先串行执行所完成的工作量。 14.OpenMP提供三种不同的互斥锁机制: 临界区(critical) 原子操作(atomic) 由库函数来提供同步操作 int counter=0; #pragma omp parallel {

for(int i=0;i

#pragma omp atomic //atomic operation

}

printf(\"counter = %d\\n\",counter);

counter=20000 25.影响性能的主要因素

并行化代码在应用程序中的比率 -OpenMP 本身的开销

-OpenMP 获得应用程序多线程并行化的能力,需要一定的程序库支持。在这些库程序对程序并行加速的同时也需要运行库本身 -负载均衡

-局部性

在程序运行过程中,高速缓存将缓存最近刚刚访问过的数据及其相邻的数据。因此,在编写程序的时候,需要考虑到高速缓存的作用,有意地运用这种局部性带来的高速缓存的效率提高。 -线程同步带来的开销

多个线程在进行同步的时候必然带来一定的同步开销,在使用多线程进行开发时需要考虑同步的必要性,消除不必要的同步,或者调整同步的顺序,就有可能带来性能上的提升。 26.什么是MPI 消息传递接口(Meage Paing Interface,简称MPI)是一种编程接口标准,而不是一种具体的编程语言。 基本含义:MPI标准定义了一组具有可移植性的编程接口。

特征:

1、典型的实现包括开源的MPICH、LAM MPI以及不开源的INTEL MPI。

2、程序员设计好应用程序并行算法,调用这些接口,链接相应平台上的MPI库,即可实现基于消息传递的并行计算

27.MPICH的安装和配置 counter++;

28.MPI程序的四个基本函数 -MPI_Init和MPI_Finalize MPI_Init初始化MPI执行环境,建立多个MPI进程之间的联系,为后续通信做准备。而MPI_Finalize则是结束MPI执行环境。 这两个函数用来定义MPI程序的并行区 -MPI_Comm_rank

用来标识各个MPI进程,两个函数参数:

MPI_Comm类型的通信域,表示参与计算的MPI进程组 &rank,返回调用进程在comm中的标识号 -MPI_Comm_size 用来标识相应进程组中有多少个进程,有两个参数: MPI_Comm类型的通信域,标尺参与计算的MPI进程组 整型指针,返回相应进程组中的进程数

29.MPI的点对点通信

两个最重要的MPI函数MPI_Send和MPI_Recv。

-int MPI_SEND(buf, count, datatype, dest, tag, comm) 这个函数的含义是向通信域comm中的dest进程发送数据。消息数据存放在buf中,类型是datatype,个数是count个。这个消息的标志是tag,用以和本进程向同一目的进程发送的其他消息区别开来。

-int MPI_RECV(buf,count,datatype,source,tag,comm,status) MPI_Recv绝大多数的参数和MPI_Send相对应,有相同的意义。唯一的区别就是MPI_Recv里面多了一个参数status。status主要显示接收函数的各种错误状态。 30.消息管理7要素 发送或者接收缓冲区buf; 数据数量count; 数据类型datatype;

目标进程或者源进程destination/source; 消息标签tag; 通信域comm;.

消息状态status,只在接收的函数中出现。 31.MPI群集通信

群集通信是包含了一对多、多对一和多对多的进程通信模式。其最大特点是多个进程参与通信。 常用的MPI群集通信函数: 同步

广播 聚集 播撒

多线程实验报告

一分钟看懂CPU多发射超标量、多线程、多核之概念和区别

一分钟看懂CPU多发射超标量、多线程、多核之概念和区别

嵌入式多线程 实习总结(有感想)

.net 开发人员面试题 多线程

081042实验四 多线程

多核产品体系结构研究员岗位职责

C++多线程编程简单实例

多线程人生的杂文随笔

多核处理器的优点和缺点

多核多线程题目总结
《多核多线程题目总结.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
相关专题 多线程总结 多核
点击下载本文文档