实现并行运算的方法汇总-创新互联

1、实现的手段
1.1 MPI

MPI实现并行是进程级;采用的是分布式内存系统,显式(数据分配方式)实现并行执行,通过通信在进程之间进行消息传递,可扩展性好。MPI虽适合于各种机器,但它的编程模型复杂:

    需要分析及划分应用程序问题,并将问题映射到分布式进程集合;
    需要解决通信延迟大和负载不平衡两个主要问题;
    调试MPI程序麻烦;
    MPI程序可靠性差,一个进程出问题,整个程序将错误;

1.2 Pthreads

Pthreads实现并行是线程级;采用的是共享内存系统,只有在POSIX的系统(linux、mac OS X、Solaris、HPUX等)上才有效。它是一个可以连接到C程序中的库,目前标准的C++共享内存线程库还在开发中,也许在将来在C++程序中,使用这个库更加方便。
1.3 OpenMP

OpenMP是线程级(并行粒度);采用的是共享内存系统,隐式(数据分配方式)实现并行执行;可扩展性差;正因为采用共享内存分布系统,意味着它只适应于SMP(Symmetric Multi-Processing 对称多处理结构),DSM(Distributed Shared Memory 共享内存分布系统)机器,不适合于集群。
1.1 OpenCL
    全称Open Computing Language,开放运算语言。是一个为异构平台编写程序的框架,此异构平台可由CPU,GPU或其他类型的处理器组成。OpenCL由一门用于编写kernels (在OpenCL设备上运行的函数)的语言(基于C99)和一组用于定义并控制平台的API组成。OpenCL提供了基于任务分割和数据分割的并行计算机制。OpenCL类似于另外两个开放的工业标准OpenGL和OpenAL,这两个标准分别用于三维图形和计算机音频方面。
    1.5 GPU

GPU是专门为执行复杂的数学和集合计算而设计的,一个GPU内有许多流处理簇(stream Multiprocessor)SM,他们就类似于CPU的核。这些SM与共享(一级缓存)连接在一起,然后又与相当于SM间互联开关的二级缓存相连。类似于这种设计,都是为计算图形渲染所必须的。
1.6 Hadoop

是谷歌公司MapReduce框架的一个开源版本。它针对的是linux平台。其概念是你取来一个大数据集,然后将其切割或映射(map)成很多小的数据块。然而,并不是将数据发送到各个节点,取而代之的是数据集通过并行文件系统已经被划分给上百或者上千个节点。因此,归约(Reduce)步骤就是把程序发送到已经包含数据的节点上,然后输出结果写入本地节点并保存在那里。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

创新互联2013年开创至今,是专业互联网技术服务公司,拥有项目成都网站建设、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元市中做网站,已为上家服务,为市中各地企业和个人服务,联系电话:18980820575
新闻标题:实现并行运算的方法汇总-创新互联
转载源于:http://scyanting.com/article/cdsgjo.html