第1章:为什么要并行计算
【并行程序设计导论】第1章:为什么要并行计算
文章目录
- 【并行程序设计导论】第1章:为什么要并行计算
- 1.1 为什么需要不断提升性能
- 1.2为什么需要构建并行系统
- 1.3 为什么需要编写并行程序
- 1.4 怎样编写并行程序
- 1.5 我们将做什么
- 1.6 并发、并行、分布式
1.1 为什么需要不断提升性能
- 不断提升的计算能力已经成为许多飞速发展领域(如科学、互联网、娱乐等)的核心力量
- 不满足现状,随着计算能力的提升,我们要考虑的问题也在增加。如气候模拟、蛋白质折叠、药物发现、能源研究、数据分析等。
1.2为什么需要构建并行系统
- 因为对于单处理器而言,其性能的提升实际是提高了处理器上晶体管的密度,但受限于散热问题等,密度无法一直提升。如果考虑并行化,即生产多个相对简单的完整处理器放在一个芯片上,即多核处理器,就能解决密度问题。
1.3 为什么需要编写并行程序
- 大多数传统单核系统编写的程序无法利用多核处理器,并行程序能充分发挥多核处理器的优势,然而将串行程序改写成并行程序并不顺利。
1.4 怎样编写并行程序
基本思想:将要完成的任务分配给各个核。
两种方法:任务并行和数据并行。
- 任务并行是指将待解决问题所需要执行 的各个任务分配到各个核上执行
- 数据并行是指将待解决问题所需要处理的数据分配给各个核, 每个核在分配到的数据集上执行大致相似的操作
- 编写并行程序需要协调的问题:
- 通信:一个或多个核将自己的部分和结果发送给其他的核。
- 负载平衡:给每个核分配大致相同数目的数据
- 同步
1.5 我们将做什么
学会利用C语言和C语言的三个不同扩展:
- 消息传递接口 (Message-Passing Interface, MPI)
- POSIX 线程 (POSIX threads, Pthreads)
- OpenMP
两种主要并行系统:
- 共享内存系统
- 核心可以共享对计算机内存的访问;
- 原则上,每个核都可以读写每个内存位置。(Pthreads, OpenMP)
- 分布式内存系统
- 每个核都有自己的私有内存
- 核必须通过通过网络发送消息之类的方式显式通信。(MPI)
1.6 并发、并行、分布式
- 并发:一个程序的多个任务在同一个时段内可以同时执行
- 并行:一个程序通过多个任务紧密协作来解决某个问题
- 分布式:一个程序需要与其他程序协作来解决某个问题
注:仅用于自己复习,不作他用。
第1章:为什么要并行计算相关推荐
- 超级计算机的配置,第一章 最新GPU并行计算超级计算机配置全集.pdf
XASUN GPU 超级计算机配置全集 XASUN GPU 超级计算机,是专门为软件量身定制的具有超强GPU 浮点计算 能力的.高性价比.高可靠性的异构计算机,与传统工作站相比,除了配备intel 最 ...
- 《Python分布式计算》 第8章 继续学习 (Distributed Computing with Python)
序言 第1章 并行和分布式计算介绍 第2章 异步编程 第3章 Python的并行计算 第4章 Celery分布式应用 第5章 云平台部署Python 第6章 超级计算机群使用Python 第7章 测试 ...
- 《Python分布式计算》 第5章 云平台部署Python (Distributed Computing with Python)
序言 第1章 并行和分布式计算介绍 第2章 异步编程 第3章 Python的并行计算 第4章 Celery分布式应用 第5章 云平台部署Python 第6章 超级计算机群使用Python 第7章 测试 ...
- 《Python分布式计算》第2章 异步编程 (Distributed Computing with Python)
序言 第1章 并行和分布式计算介绍 第2章 异步编程 第3章 Python的并行计算 第4章 Celery分布式应用 第5章 云平台部署Python 第6章 超级计算机群使用Python 第7章 测试 ...
- 【并行算法】知识点总结(一、二、三、九章)
第一章 1.并行计算的定义和主要目的 定义:并行计算是指同时对多个任务或多条指令.或对多个数据项进行处理.完成此项处理的计算机系统称为并行计算机系统,它是将多个处理器(可以几个.几十个.几千个.几万个 ...
- 实战matlab之并行程序设计.pdf,实战Matlab之并行程序设计_IT教程网
资源名称:实战Matlab之并行程序设计 内容简介: <实战Matlab之并行程序设计>通过阅读和学习,读者可以掌握基于多种平台(多核.多处理器.集群和GPU等),利用多项技术(Matla ...
- java 并发框架源码_某网Java并发编程高阶技术-高性能并发框架源码解析与实战(云盘下载)...
第1章 课程介绍(Java并发编程进阶课程) 什么是Disruptor?它一个高性能的异步处理框架,号称"单线程每秒可处理600W个订单"的神器,本课程目标:彻底精通一个如此优秀的 ...
- 赠书赠券:《大话计算机》
鸿篇巨著<大话计算机>(一套三本)的作者冬瓜哥(真名张冬)是我非常佩服的一个技术大神,他那种打破沙锅问到底,专研细节的尽头,是包括我在内许多常人所不及的.之前他出版过<大话存储> ...
- 什么是底层架构_厉害!阿里技术专家发布1500多页计算机底层架构原理解析宝典|现代汽车|计算机|原理|操作系统|存储器...
计算机被称为20世纪最伟大的发明之一 .1946年诞生的第一台电子计算机ENIAC,是一个每秒能运行5000次.重达30吨的庞然大物.如今计算机变得无处不在,以至于人们大大低估了它的复杂性一今天一 部 ...
- 北京应用物理计算机与科学,张爱清 - 北京应用物理与计算数学研究所 -
个人简介 教育经历 2004.9-2007.7,中国工程物理研究院,计算数学,博士 1998.9-2001.6,浙江大学,计算数学,硕士 1994.9-1998.6,杭州大学,计算数学,学士 工作经历 ...
最新文章
- APA102C全彩色LED控制IC
- python数字的鲁棒输入_请教关于python的手写数字识别神经网络问题~~~~
- 第二章 OpenResty(Nginx+Lua)开发入门
- OpenCV中findContours函数的使用
- RestTemplate入门案例
- oracle itl解析,oracle数据块dump文件中ITL详解
- Filter过滤器除去部分URL链接
- 【渝粤教育】国家开放大学2018年秋季 0689-21T老年心理健康 参考试题
- 拓端tecdat|R语言自适应平滑样条回归分析
- JavaScript Number 对象
- 元胞自动机模型01——认识元细胞机模型
- oracle ebs 采购入库,ORACLE EBS/ERP 采购库存模块分录
- 因服务器升级维护平安京怎么办,阴阳师12月31日维护更新公告_阴阳师12月31日更新了什么_玩游戏网...
- 泰克示波器TBS2000B 在大学基础实验室的应用
- DAVINCI DM36x开发攻略——U-BOOT-2010.12及UBL移植
- Improved Pre-Warping for Wide Angle, Head Mounted Displays
- 元宇宙|世界人工智能大会之元宇宙论坛:设计篇
- Python第七次作业
- 【优秀课设】基于OpenCV-Python的树莓派人脸识别及89C52单片机控制系统设计(指定照片进行识别、遍历目录下所有照片依次识别)
- golang包time用法详解