【并行程序设计导论】第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章:为什么要并行计算相关推荐

  1. 超级计算机的配置,第一章 最新GPU并行计算超级计算机配置全集.pdf

    XASUN GPU 超级计算机配置全集 XASUN GPU 超级计算机,是专门为软件量身定制的具有超强GPU 浮点计算 能力的.高性价比.高可靠性的异构计算机,与传统工作站相比,除了配备intel 最 ...

  2. 《Python分布式计算》 第8章 继续学习 (Distributed Computing with Python)

    序言 第1章 并行和分布式计算介绍 第2章 异步编程 第3章 Python的并行计算 第4章 Celery分布式应用 第5章 云平台部署Python 第6章 超级计算机群使用Python 第7章 测试 ...

  3. 《Python分布式计算》 第5章 云平台部署Python (Distributed Computing with Python)

    序言 第1章 并行和分布式计算介绍 第2章 异步编程 第3章 Python的并行计算 第4章 Celery分布式应用 第5章 云平台部署Python 第6章 超级计算机群使用Python 第7章 测试 ...

  4. 《Python分布式计算》第2章 异步编程 (Distributed Computing with Python)

    序言 第1章 并行和分布式计算介绍 第2章 异步编程 第3章 Python的并行计算 第4章 Celery分布式应用 第5章 云平台部署Python 第6章 超级计算机群使用Python 第7章 测试 ...

  5. 【并行算法】知识点总结(一、二、三、九章)

    第一章 1.并行计算的定义和主要目的 定义:并行计算是指同时对多个任务或多条指令.或对多个数据项进行处理.完成此项处理的计算机系统称为并行计算机系统,它是将多个处理器(可以几个.几十个.几千个.几万个 ...

  6. 实战matlab之并行程序设计.pdf,实战Matlab之并行程序设计_IT教程网

    资源名称:实战Matlab之并行程序设计 内容简介: <实战Matlab之并行程序设计>通过阅读和学习,读者可以掌握基于多种平台(多核.多处理器.集群和GPU等),利用多项技术(Matla ...

  7. java 并发框架源码_某网Java并发编程高阶技术-高性能并发框架源码解析与实战(云盘下载)...

    第1章 课程介绍(Java并发编程进阶课程) 什么是Disruptor?它一个高性能的异步处理框架,号称"单线程每秒可处理600W个订单"的神器,本课程目标:彻底精通一个如此优秀的 ...

  8. 赠书赠券:《大话计算机》

    鸿篇巨著<大话计算机>(一套三本)的作者冬瓜哥(真名张冬)是我非常佩服的一个技术大神,他那种打破沙锅问到底,专研细节的尽头,是包括我在内许多常人所不及的.之前他出版过<大话存储> ...

  9. 什么是底层架构_厉害!阿里技术专家发布1500多页计算机底层架构原理解析宝典|现代汽车|计算机|原理|操作系统|存储器...

    计算机被称为20世纪最伟大的发明之一 .1946年诞生的第一台电子计算机ENIAC,是一个每秒能运行5000次.重达30吨的庞然大物.如今计算机变得无处不在,以至于人们大大低估了它的复杂性一今天一 部 ...

  10. 北京应用物理计算机与科学,张爱清 - 北京应用物理与计算数学研究所 -

    个人简介 教育经历 2004.9-2007.7,中国工程物理研究院,计算数学,博士 1998.9-2001.6,浙江大学,计算数学,硕士 1994.9-1998.6,杭州大学,计算数学,学士 工作经历 ...

最新文章

  1. APA102C全彩色LED控制IC
  2. python数字的鲁棒输入_请教关于python的手写数字识别神经网络问题~~~~
  3. 第二章 OpenResty(Nginx+Lua)开发入门
  4. OpenCV中findContours函数的使用
  5. RestTemplate入门案例
  6. oracle itl解析,oracle数据块dump文件中ITL详解
  7. Filter过滤器除去部分URL链接
  8. 【渝粤教育】国家开放大学2018年秋季 0689-21T老年心理健康 参考试题
  9. 拓端tecdat|R语言自适应平滑样条回归分析
  10. JavaScript Number 对象
  11. 元胞自动机模型01——认识元细胞机模型
  12. oracle ebs 采购入库,ORACLE EBS/ERP 采购库存模块分录
  13. 因服务器升级维护平安京怎么办,阴阳师12月31日维护更新公告_阴阳师12月31日更新了什么_玩游戏网...
  14. 泰克示波器TBS2000B 在大学基础实验室的应用
  15. DAVINCI DM36x开发攻略——U-BOOT-2010.12及UBL移植
  16. Improved Pre-Warping for Wide Angle, Head Mounted Displays
  17. 元宇宙|世界人工智能大会之元宇宙论坛:设计篇
  18. Python第七次作业
  19. 【优秀课设】基于OpenCV-Python的树莓派人脸识别及89C52单片机控制系统设计(指定照片进行识别、遍历目录下所有照片依次识别)
  20. golang包time用法详解

热门文章

  1. Stata常用命令集锦【计量经济系列(一)】
  2. 基于Java毕业设计疫情状态下的图书馆座位预约系统源码+系统+mysql+lw文档+部署软件
  3. SEO常用MATE整理
  4. COCOS 遗留问题
  5. 交换机的重要技术参数
  6. Android自定义软键盘样式:字母、数字、标点三种切换
  7. 服务器上使用WMI报 '80041003' Automation 错误的解决办法
  8. Windows 10 PE的程序包
  9. 经典Java基础知识总结
  10. 我的一个道姑朋友 -- 以冬 下载