老李分享: 并行计算基础&编程模型与工具 2

2.并行编程模型和工具

– MPI –

MPI(Message Passing Interface)是一种消息传递编程模型,服务于进程通信。它不特指某一个对它的实现,而是一种标准和规范的代表,它是一种库描述,而不是一种语言,易于使用且具有高可移植性。说白了就是一些编程接口。

– OpenMP –

Open Multi-Processing是适用于共享内存多处理器体系结构的可移植并行编程模型,接口由SGI公司发起。包含编译指导、运行函数库和环境变量三部分,具有串行等价性(无论使用一个还是多个线程运行一个程序,都带来相同的结果,更易于维护和理解)和增量并行性(处理器从一个串行程序开始,一块接着一块的寻找那些值得并行化的代码段)。OpenMPI的执行模型采用Fork-Join形式,即主线程-从线程,降低了并行编程的难度和复杂度。

编译器指导语句,visio studio支持,使得OpenMP既可以被看做并行程序也可以被看做串行程序,或者在保持串行程序部分不变的情况下,用户能够方便地将串行程序改写成并行程序。

– MapReduce –

Google,PageRank倒排表索引的构建。Map把输入Input分解成中间的Key/Value对,Reduce把Key/Value合成最终输出Output。

– Hadoop –

MapReduce的开源版本。HFDS,NameNode(JobTracker),DataNode(TaskTracker),集群架构。

– CUDA –

Nvidia公司开发的GPU并行计算工具。

– CellBe –

CellBe的主要目标是将PlayStation2的处理器性能提高10倍,2006年IBM还推出了Cell刀片计算机系统。

参考文献:《并行计算机编程基础》& CUDA课程

时间: 2024-08-06 20:04:38

老李分享: 并行计算基础&编程模型与工具 2的相关文章

老李分享: 并行计算基础&编程模型与工具 1

老李分享: 并行计算基础&编程模型与工具 在当前计算机应用中,对高速并行计算的需求是广泛的,归纳起来,主要有三种类型的应用需求: 计算密集(Computer-Intensive)型应用,如大型科学工程计算与数值模拟: 数据密集(Data-Intensive)型应用,如数字图书馆.数据仓库.数据挖掘和计算可视化等: 网络密集(Network-Intensive)型应用,如协同工作.遥控和远程医疗诊断等. 并行编程模型主要有三种:适用于共享内存的多线程编程模型,适用于分布内存的消息传递编程模型,混合

并行计算基础&编程模型与工具

在当前计算机应用中,对高速并行计算的需求是广泛的,归纳起来,主要有三种类型的应用需求: 计算密集(Computer-Intensive)型应用,如大型科学工程计算与数值模拟: 数据密集(Data-Intensive)型应用,如数字图书馆.数据仓库.数据挖掘和计算可视化等: 网络密集(Network-Intensive)型应用,如协同工作.遥控和远程医疗诊断等. 并行编程模型主要有三种:适用于共享内存的多线程编程模型,适用于分布内存的消息传递编程模型,混合编程模型. 在计算机系统中,处理器永远都是

并行计算基础&编程模型与工具

在当前计算机应用中,对快速并行计算的需求是广泛的,归纳起来,主要有三种类型的应用需求: 计算密集(Computer-Intensive)型应用,如大型科学project计算与数值模拟: 数据密集(Data-Intensive)型应用,如数字图书馆.数据仓库.数据挖掘和计算可视化等: 网络密集(Network-Intensive)型应用,如协同工作.遥控和远程医疗诊断等. 并行编程模型主要有三种:适用于共享内存的多线程编程模型.适用于分布内存的消息传递编程模型,混合编程模型. 在计算机系统中.处理

第一章 基础编程模型

课后习题1.1.14 编写一个静态方法lg(),接受一个整形参数N,返回不大于log2N的最大整数.不要使用Math库. public class Test{ public static void main(String[] args){ int i; i=lg(17,2); System.out.println(i); } public static int lg(int N,int M){ int a = 0; while(N>=M){ N=N/M; a++; } return a; } }

老李分享:《Java Performance》笔记1——性能分析基础 1

老李分享:<Java Performance>笔记1——性能分析基础 1.性能分析两种方法: (1).自顶向下: 应用开发人员通过着眼于软件栈顶层的应用,从上往下寻找性能优化的机会. (2).自底向上: 性能专家从软件栈底层的CPU统计数据(例如CPU高速缓存未命中率.CPU指令效率)开始,逐渐上升到应用自身的结构或应用常见的使用方式. 2.CPU使用率: 大多数操作系统的CPU使用率分为用户态CPU使用率和系统态CPU使用率. 用户态CPU使用率:执行应用程序代码的时间占总CPU时间的百分比

[Z] linux基础编程:IO模型:阻塞/非阻塞/IO复用 同步/异步 Select/Epoll/AIO

原文链接:http://blog.csdn.net/colzer/article/details/8169075 IO概念 Linux的内核将所有外部设备都可以看做一个文件来操作.那么我们对与外部设备的操作都可以看做对文件进行操作.我们对一个文件的读写,都通过调用内核提供的系统调用:内核给我们返回一个file descriptor(fd,文件描述符).而对一个socket的读写也会有相应的描述符,称为socketfd(socket描述符).描述符就是一个数字,指向内核中一个结构体(文件路径,数据

linux基础编程:IO模型:阻塞/非阻塞/IO复用 同步/异步 Select/Epoll/AIO(转载)

IO概念 Linux的内核将所有外部设备都可以看做一个文件来操作.那么我们对与外部设备的操作都可以看做对文件进行操作.我们对一个文件的读写,都通过调用内核提供的系统调用:内核给我们返回一个file descriptor(fd,文件描述符).而对一个socket的读写也会有相应的描述符,称为socketfd(socket描述符).描述符就是一个数字,指向内核中一个结构体(文件路径,数据区,等一些属性).那么我们的应用程序对文件的读写就通过对描述符的读写完成. linux将内存分为内核区,用户区.l

老李分享:android app自动化测试工具合集

老李分享:android app自动化测试工具合集 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200.我们从2016年8月开始不断升级测试开发工程师就业培训的班的课程,不断新增和优化课程内容,为了和当下企业的实际情况,提高学员的实战水平,在2016年稳定课程主题框架,做到每半年升级一版. 安卓应用自动化测试工具之一 - PerfectoMob

老李分享:大数据,数据库,数据仓库之间是什么关系

老李分享:大数据,数据库,数据仓库之间是什么关系 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200. 首先简单的看一下云计算与大数据的概念. 1)云计算:云计算本质上是一种计算资源集中分布和充分共享的效用计算模式,其中集中是为了计算资源的集约化管理,分布是便于扩展计算能力.集中分布式是针对云服务提供商的,充分共享是针对用户,在云计算中,虽然对