并发和并行:
今天和师妹讨论问题,师妹说到了现在要做的一个项目。要做大规模的并行模拟事件的模拟。问我是否可以在GPU上实现。
我们这里拿一群人来分一盒饼干来做例子。
一群人要怎么来分这些饼干啦?这里有M个饼干,有N个人要分这个饼干。
并发,就是每一个哪一个小饼干,然后各自吃各自的饼干,然后每一轮N个人就分掉了N个饼干。当然这里假设M比N大。
并行,就是N个人同时先把一个饼干分了,吃完以后再接着分下面的M-1个饼干,这样再接下去就把饼干吃完了。
这样看起来并发就比并行好了,因为每一个问题都是独立的,并发到N个处理器上面,就可以单独处理了。
但是这里有两个问题,第一个是M很小的时候,N很大,这个时候就可以采用并行的方式,让一个饼干分成很多小块,让N个人来先把一个饼干先吃完。还有当一个饼干很大的时候,一个人要吃很久才能吃完,那也可以采用并行的方式,后处理完一个还以先得到一个的结果,剩下来的慢慢处理,这个时候采用并发要等所有的处理完了才能看到整个结果,所以不一定好使。
对于并行和并发我到认为并不需要去死记硬背这些名词,只要记住并行计算,其实就是不同粒度的并发处理。
有粗粒度的,有细粒度的,不同粒度里面还可以包含不同的饼干,有巧克力饼干、有花生饼干、酥性饼干、韧性饼干、发酵(苏打)饼、薄脆饼干、曲奇饼干、夹心饼干、威化饼干、蛋圆饼干、蛋卷、黏花饼干、水泡饼干,不同的饼干也可以同时吃,所以不要讲究太多的并发或者并行,选择最适合当前的硬件架构的方法,使用最得心应手的方法,就可以了。
对于现在的GPU来讲,并行可能是比较好的选择,至少CUDA架构更适合做并行的工作,并发的工作也可以,不过得看应用,如果是并发的每一个的粒度不太一样,就需要不同的thread group同步等待,在并编程中,很忌讳等待问题,这样就成了让很多人的饼都吃完了,还看着你在吃饼,大家也只能等你把饼吃完了以后再去拿盘子里面的饼,这样会让很多人不爽的!
所以尽量做到硬件上的运行是均匀的,让硬件饱和抱起来,这样不管是并发还是并行,都可以让任务尽快的完成。
上面讨论的都是并行并非或者粒度的一些概念性的东西,我们可以看看硬件的并发,现在我们可以把这个架构分成三层,一个是集群层面,看么一个节点的工作这个就可以算是粗粒度,然后是每一个节点内的的每一个core或者GPU内部,这个可以算是细粒度的并行。在每一个层面都需要有好的算法来选择粒度的划分,如果把要处理的数据看做是一对面粉,那就需要选择最优的流程来做饼干,然后选择最好的分配方法分给大家。
数据的划得根据每一个处理节点的处理能力,还要考虑每一个节点的传输效率,精良做到有一部分面粉在和面,有一部分面粉在烤饼干,还有一部分饼干已经可以吃了,还有就是吃完了……这样尽量让网络带宽最优,使用率最好,然后每一个硬件的处理能力都发挥到极致,这就是达到了整个系统的最优化。
从实践中,你会发现 ,最好的分派算法,粗粒度的算法选得好,性能会提高的倍数是最好的,越到细粒度越难调优,所以算法是关键。
分享到:
相关推荐
从当今多核微处理器的发展趋势出发,介绍适用于多核微处理器的细粒度并行编程模型CUDA,以及其适用于“并行计算”课程教学的一系列优势
针对经典遗传规划算法(CGP)存在容易早熟收敛、运行效率低的缺陷,提出一种将分布式计算与遗传规划算法结合的计算...实验表明,基于分布式粗粒度并行计算的遗传规划算法(CGGP)计算性能优于经典遗传规划算法(CGP)。
书中选择MPI(Message Passing Interface)、POSIX线程和OpenMP这三个应用最广泛的编写可移植并行程序的标准作为编程模型,并在不同例子中反映了并行计算的不断变化的应用组合。本书结构合理,可读性强,加之每章精心...
提出了一种分布计算环境下并行进化神经网络的实现机制:集中式粗粒度模型。该模型基于并行遗传算法,可以同时对前馈神经网络的结构和权值进行优化。在分布计算环境中的...
粗粒度并行遗传算法的计算性能及其应用研究.nh
为了找出FLUENT 软件的最佳解题规模和并行粒度, 以期最大限度地发挥软件和硬件的效能,对FLUENT 软件采用的多重网格方法和区域分裂法进行了理论分析, 通过反复实验,重点讨论了在并行求解过程中,采用不同的多重...
并行计算机如何成功应用于大规模科学计算的清晰说明。 研究与将来的超级计算机有关的细粒度并行性问题,其中特别着重于超立方体体系结构。
云计算-基于DFS的并行粒度计算模型及其应用.pdf
GPU_CPU协同粗粒度并行计算及在城市区域震害模拟中的应用.pdf
1. CUDA简介 GPU是图形处理单元(Graphic Processing Unit)的简称,最初主要用于图形渲染。...这些关键特性使得CUDA拥有了两个层次的并行:线程级并行实现的细粒度数据并行,和任务级并行实现的粗粒度并行。
1. 什么是并行计算(P14) 2. 并行计算的优势:(P18) 3. 并行计算的主要用途(P22-24) 4. 并行计算的主要推动力 5. 并行计算的粒度 6
关键词:粗粒度 配置 并行计算可配置计算又称为自适应计算。它是由多个具有可重配置功能的功能单元(PE)和可以配置不同数据传递方向的连续线路一起构成的计算机结构,如图1所示。现在,可重配置计算分为两类:细...
氧化铝生料浆优化调配是一个多目标、多约束且非线性的0-1组合优化问题。首先给出了该问题的数学描述,然后根据调配过程判断生料浆质量是否达标的不同满意标准,基于满意度原理,将带约束的多目标优化问题转换为求多...
#资源达人分享计划#
H.264码率低和视频质量高的优越性能以增加编码计算的复杂度为代价,如何开发适用于多核处理器平 台的并行编码算法是提高其编码速度的重要研究内容,对于满足高清视频实时传输和大规模共享具有十分重要的 意义...
通过对传统PSO算法的分析, 结合目前被广泛使用的基于GPU的并行计算技术, 设计实现了一种并行PSO方法。本方法的执行基于统一计算架构(CUDA), 使用大量的GPU线程并行处理各个粒子的搜索过程来加速整个粒子群的收敛...
行业分类-设备装置-一种基于异构多核芯片的细粒度科学计算并行处理装置.zip
在主从式、细粒度和粗粒度这三类遗传算法并行化模型中 ,粗粒度模型以其较小的通讯开销和对种群多样化 ,获得了最广泛的应用 .本文概括了基于模式定理和有限状态马尔可夫链的遗传算法理论 ,总结了前人在粗粒度模型下...
并行加速比的实验分析表明,优化后的子模型层并行调度方案,在6 个双核CPUs 组成的PC 集群上的平均加速比可达到8.2,更接近模型并行计算加速比的预测值。在分布式集群环境下,采用基于MPI 的子模型层中等粒度的并行...
基于自适应任务粒度控制的Prony算法的并行优化,陈付菲,王多强,在科学研究与工程设计中,经常会遇到数学模型的求解问题,然而,数学模型的求解时间随着数据量的增大逐渐增大,串行计算在某些实