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

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

在当前计算机应用中,对高速并行计算的需求是广泛的,归纳起来,主要有三种类型的应用需求:

  1. 计算密集(Computer-Intensive)型应用,如大型科学工程计算与数值模拟;
  2. 数据密集(Data-Intensive)型应用,如数字图书馆、数据仓库、数据挖掘和计算可视化等;
  3. 网络密集(Network-Intensive)型应用,如协同工作、遥控和远程医疗诊断等。

并行编程模型主要有三种:适用于共享内存的多线程编程模型,适用于分布内存的消息传递编程模型,混合编程模型。

在计算机系统中,处理器永远都是访问离自己最近的存储空间速度最快,比如L1 cache->L2->本地节点内存->远程节点内存/磁盘,而各层次的存储容量跟访问速度恰恰相反。并行计算中,并行算法的设计是决定性能的关键,有些问题天生具有良好的并行性,比如待处理数据集合可以被较好的去耦,而有些问题则需要复杂的公式推导和转换以适合并行计算。同时,还要避免计算过程中可能出现的瓶颈,任务划分要充分考虑负载均衡特别是动态负载均衡,“对等”的思想是维护负载均衡和保持可扩展性的关键之一,即在设计时尽量避免使用Master/Slave和Client/Server的模式。

1.并行机的体系

并行机的发展从SIMD到MIMD,衍生除了四种经典的体系结构模式:SMP(Symmetric Shared-Memory Multiprocessor,比如常用的多核机,可扩展性较差,处理器数目8~16个),DSM(Distributed Shared-Memory,物理存储器分布于各个处理节点,而逻辑地址空间采用统一编址,因此属于共享存储,访存时间受限于网络带宽),MPP(Massive Parallel Processor,由成百上千台处理机组成的大规模系统,国家综合实力的象征。。),机群系统(Cluster,互联的同构或异构的独立计算机的集合体,每个节点都有自己的存储器、I/O、操作系统,可以作为单机使用,节点之间采用商品网络互联,灵活性较强)。

硬件:多核CPU(Intel, AMD), GPU(Nvidia), CellBe(Sony&Toshiba&IBM -> game,包括一个主处理单元和8个协处理单元)

概念:数据总线 地址总线 控制总线 (寄存器)位数

时间: 2024-10-23 02:31:12

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

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

2.并行编程模型和工具 – MPI – MPI(Message Passing Interface)是一种消息传递编程模型,服务于进程通信.它不特指某一个对它的实现,而是一种标准和规范的代表,它是一种库描述,而不是一种语言,易于使用且具有高可移植性.说白了就是一些编程接口. – OpenMP – Open Multi-Processing是适用于共享内存多处理器体系结构的可移植并行编程模型,接口由SGI公司发起.包含编译指导.运行函数库和环境变量三部分,具有串行等价性(无论使用一个还是多个线程运

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

在当前计算机应用中,对高速并行计算的需求是广泛的,归纳起来,主要有三种类型的应用需求: 计算密集(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)云计算:云计算本质上是一种计算资源集中分布和充分共享的效用计算模式,其中集中是为了计算资源的集约化管理,分布是便于扩展计算能力.集中分布式是针对云服务提供商的,充分共享是针对用户,在云计算中,虽然对