当前位置:必发365电子游戏 > 操作系统 > 所谓并行计算可分为时间上的并行和空间上的并行,并行计算
所谓并行计算可分为时间上的并行和空间上的并行,并行计算
2019-12-19

原稿地址:

并行总结

概论
▪ 高性能计算 ▪ 计算机集群 ▪ 分布式计算 ▪ 网格计算
▪ 云端运算      
 
方式
▪ Bit-level parallelism ▪ Instruction level parallelism ▪ Data parallelism ▪ 任务并行
 
理论
▪ Speedup ▪ Amdahl定理 ▪ Flynn's taxonomy ▪ Cost efficiency
▪ Gustafson定理 ▪ Karp-Flatt metric    
 
元素
▪ 进程 ▪ 线程 ▪ Fiber ▪ PRAM模型
 
协调
▪ 多处理 ▪ 多执行绪 ▪ 超执行绪 ▪ 内存一致性
▪ Cache coherency ▪ Barrier ▪ 同步化 ▪ Application checkpointing
 
编程
▪ Programming model ▪ Implicit parallelism ▪ Explicit parallelism  
 
硬件
▪ 贝奥武夫机群 ▪ 对称多处理机 ▪ Asymmetric multiprocessing ▪ Simultaneous multithreading
▪ 非均匀访存模型 ▪ Cache only memory architecture ▪ 共享内存 ▪ Distributed memory
▪ Distributed shared memory ▪ 超纯量 ▪ 向量处理机 ▪ 超级计算机
▪ Stream processing ▪ 通用图形处理器 (GPGPU)    
 
APIs
▪ POSIX Threads ▪ OpenMP ▪ 讯息传递接口 (MPI) ▪ Intel Threading Building Blocks
 
问题

▪ Embarrassingly parallel ▪ Grand Challenge ▪ Software lockout ▪ 可扩放性
▪ 竞争危害 ▪ 死锁 ▪ 确定性算法

必发365电子游戏, 

 并行总括(Parallel Computing)是指同期利用多种测算财富消除总括难点的长河,是巩固计算机体系统计速度和管理本事的大器晚成种有效花招。它的骨干构思是用八个Computer来一齐求解同一难题,将在被求解的标题分解成若干个部分,各部分均由八个独门的管理机来并行总计。并行总计系统不仅可以够是特意陈设的、含有多少个Computer的特等计算机,也得以是以某种方式互连的若干台的独立Computer构成的集群。通过并行总结集群实现数据的管理,再将拍卖的结果重返给客商。  

  并行总结或称平行计算是相对于串行总结的话的。所谓并行总计可分为时间上的相互和空中上的互相。 时间上的相互便是指流水生产线技艺,而上空上的人机联作则是指用三个计算机并发的试行总结。

  并行计算科学中关键研商的是空间上的互相难题。从程序和算法设计人士的角度来看,并行总计又可分为数据交互作用和天职并行。空间上的并行招致了两类并行机的爆发,遵照Flynn的布道分为:单指令流比非常多据流(SIMD)多指令流大多据流(MIMD)。大家常用的串行机也叫做单指令流单数据流(SISD)。

  MIMD类的机器又可分为以下不足为道的五类:并行向量管理机(PVP)、对称多管理机(SMP)、大范围并行管理机(MPP)、专业站机群(COW)、分布式分享存款和储蓄管理机(DSM)。

  近年来大规模的相互编制程序技巧包括:MPI、OPENMP、OPENCL、OPENGL、CUDA。上边明白一下这么些见怪不怪并行编制程序才干的底蕴概念:

(1)MPI

  MPI(Message Passing Interface)是一种遍布运用的依赖新闻传递的相互作用编制程序技能。MPI信息传递接口是意气风发种编制程序接口标准,实际不是风姿罗曼蒂克种具体的编制程序语言。简单来说,MPI标准定义了后生可畏组具有可移植性的编制程序接口。各类商家或集体依据这几个职业兑现本身的MPI软件包,规范的落到实处包括开放源代码的MPICH、LAM MPI以至不开放源代码的AMDMPI。由于MPI提供了联合的编制程序接口,程序猿只供给规划好并行算法,使用相应的MPI库就足以兑现基于新闻传递的并行计算。MPI接济二种操作系统,包涵大多数的类UNIX和Windows系统。

(2)OPENMP

  OpenMP是由OpenMP Architecture Review Board带头建议的,并已被布满接纳的,用于分享内部存款和储蓄器并行系统的多线程程序设计的大器晚成套引导性的编写翻译管理方案(Compiler Directive)。OpenMP扶持的编制程序语言包括C语言、C++和Fortran;而帮助OpenMp的编写翻译器包罗Sun Compiler,GNU Compiler和IntelCompiler等。OpenMp提供了对并行算法的高层的空洞描述,技术员通过在源代码中参与专项使用的#pragma来指明自个儿的盘算,因而编写翻译器能够活动将顺序开展并行化,并在供给之处参预一齐互斥以至通讯。当接受忽视那几个#pragma,或许编写翻译器不帮忙OpenMP时,程序又可退化为不感到奇的顺序(平日为串行),代码如故能够平常运维,只是无法运用七十八线程来增速程序试行。

 (3)OPENCL

  OpenCL(Open Computing Language,开放运算语言)是第三个面向异构系统通用指标并行编程的开放式、无需付费标准,也是一个统风华正茂的编制程序景况,便于软件开辟人士为高性能总计服务器、桌面总计类别、手持设备编写高效轻松的代码,而且广泛适用于多中央微机(CPU)、图形微处理器(GPU)、Cell类型结构以至数字功率信号微电脑(DSP)等别的并行Computer,在嬉戏、娱乐、科学研究、医治等各个领域都有广阔的发展前程。

  OpenCL是叁个为异构平台编写程序的框架,此异构平台可由CPU,GPU或别的门类的微型机组成。OpenCL由一门用于编写kernels (在OpenCL设备上运维的函数)的言语(基于C99)和意气风发组用于定义并决定平台的API组成。OpenCL提供了依靠任务分割和数据分割的并行Computer制。OpenCL近似于此外八个开放的工业规范OpenGL和OpenAL,那八个标准分别用于三个维度图形和微处理器音频方面。OpenCL增添了GPU用于图形生成之外的工夫。OpenCL由非盈利性技巧团队Khronos Group掌管。

 (4)OPENGL

  OpenGL(Open Graphics Library)是个概念了二个跨编制程序语言、跨平台的编制程序接口标准的专门的工作的图纸程序接口。它用于三维图象(二维的能够),是三个成效强大,调用方便的底层图形库。

所谓并行计算可分为时间上的并行和空间上的并行,并行计算。(5)CUDA

  CUDA(Compute Unified Device Architecture卡塔尔(英语:State of Qatar)是后生可畏种由显卡厂商NVIDIA推出的通用并行总结布局,该结构使GPU能够缓和复杂的估测计算难点。 它包括了CUDA指令集结构(ISA)以致GPU内部的并行总结引擎。 开采职员未来得以应用C语言来为CUDA™布局编写程序,C语言是利用最广泛的生龙活虎种高档编制程序语言。所编写出的次第于是就足以在支撑CUDA™的微处理器上以极高品质运维。CUDA3.0早就起来帮衬C++和FORTRAN。