多核时代:并行程序设计探讨(2)——并行实现技术

简介:

并行程序设计探讨(2)——并行实现技术

通过“并行程序设计探讨(1)”的介绍,相信大家都已经对并行系统相关的概念有了初步的了解。不过看起来挺吓人的,一堆的术语和概念,想起来头就有点大!!

幸运的是真正需要进行并行程序设计的系统其实不多,我们来看看:

SISD:本质上决定了不可能是并行的;

SIMD:专有系统,相信绝大部分人都没有接触过;

MISD:没有这样的系统;

MIMD:本质上就是为了支持并行的。

因此,在处理并行程序设计的时候,我们其实只要考虑MIMD这类系统就OK了!谢天谢地Orz!!:)

 

不过别高兴的太早,MIMD也有很多啊,怎么办呢?MIMD分为共享内存和消息驱动(其实就是分布式内存)两种,我们还是从分类上来稍加分析,看看如何处理。

共享内存:所有CPU共内存,所有CPU由一个操作系统控制的,例如WindowsLinux/UNIX,目前流行的多核、多CPU机器都是属于这种;

消息驱动:其实就是分布式内存,CPU由不同的操作系统控制,不同的CPU之间通过网络通信。例如网格Grid是通过因特网通信、集群Cluster是通过局域网通信、MPP是通过专有的高速网络通信。

通过上面的对比,聪明的读者估计很快就想到了这两种系统并行程序实现方式的差异:

共享内存:通过操作系统的多进程多线程来完成并行任务,通过进程间通信来完成协作;

消息驱动:通过多台机器来完成并行任务,通过消息来完成协作。(MPP物理上看是一台机器,逻辑上是多台机器)

当然,由于消息驱动系统中每个处理单元都是一台独立的机器,对这台独立的机器本身当然也可以通过共享内存来实现并行处理。

 

嗯,非常不错,经过我们的层层分析和筛选,原来各种各样的看起来很吓人的并行系统,最终被我们归纳总结出两种并行实现技术:多进程多线程、多机协作

套用侯捷大师的一句话给自己贴点金,正所谓:深入浅出!!

==========================未完待续,后面介绍Window和Linux的多进程多线程===============================

相关文章
|
4月前
|
Web App开发 人工智能 并行计算
操作系统的演进:从单任务到多任务再到并行计算
在数字时代的浪潮中,操作系统作为计算机硬件与应用程序之间的桥梁,其发展历程映射了技术进步的轨迹。本文将从历史的角度出发,探讨操作系统如何由简单的单任务处理进化至支持复杂的多任务操作,并最终实现对并行计算的支持。我们将详细分析各个阶段的关键技术突破,以及它们对现代软件开发和系统性能的深远影响。通过这一历程的回顾,旨在为读者揭示操作系统设计背后的逻辑,以及它如何塑造我们今天所依赖的数字世界。 【7月更文挑战第16天】
50 3
|
2月前
|
Web App开发 Linux iOS开发
操作系统的演变:从单任务到多核并发
在数字时代的浪潮中,操作系统作为计算机硬件与应用程序之间的桥梁,其发展历史充满了创新与变革。本文将带领读者穿越时空,探索操作系统如何从简单的单任务处理演化为今天能够高效管理多核处理器的复杂系统。我们将一窥各个时代下操作系统的设计哲学,以及它们是如何影响现代计算的方方面面。加入我们的旅程,一起见证技术的力量如何在每次迭代中重塑世界。
40 7
|
3月前
|
并行计算 安全 物联网
操作系统的演化:从单任务到多任务再到并行计算
【8月更文挑战第6天】在数字技术的飞速发展中,操作系统作为计算机硬件与软件之间的桥梁,其设计哲学和功能实现经历了翻天覆地的变化。本文将探讨操作系统如何从最初的单任务处理模式,逐步演变为支持多任务、多用户以及并行计算的复杂系统,并分析这一过程中的关键技术创新及其对现代计算领域的影响。我们将通过历史的视角,揭示操作系统设计的进步如何推动整个信息社会的变革。
52 1
|
3月前
|
资源调度 并行计算 算法
操作系统的演变:从单任务到多任务再到并行计算
在数字时代的浪潮中,操作系统作为计算机硬件与软件之间的桥梁,其发展史是技术进步的缩影。本文将探索操作系统的演化轨迹,从早期的单任务系统,经历多任务处理的革命,直至今日并行计算的挑战与机遇。通过回顾历史,我们将理解现代操作系统设计的复杂性及其对计算未来的启示。
|
4月前
|
分布式计算 并行计算 iOS开发
操作系统的演变:从单任务到多任务和并行计算
【7月更文挑战第30天】本文旨在探索操作系统(OS)从最早期的单任务处理模式,经过多任务处理的变革,最终发展至支持并行计算的现代操作系统。文章将详细讨论每个阶段的技术特点、设计哲学以及它们对计算机科学领域的影响。通过比较不同时代的操作系统,我们可以更好地理解现代操作系统的复杂性和它们如何支撑起当今数字世界的基础设施。
|
4月前
|
分布式计算 并行计算 安全
操作系统的演变:从单任务到多任务,再到并行计算
随着计算机技术的飞速发展,操作系统作为计算机系统的核心,也在不断地演进和升级。本文将从操作系统的发展历程出发,详细解析从单任务到多任务,再到并行计算的演变过程。我们将深入探讨每个阶段的特点、优势以及面临的挑战,并结合具体案例和数据进行对比分析,以期为读者提供对操作系统发展脉络的全面认识。
|
5月前
|
机器学习/深度学习 人工智能 算法
现代操作系统的演进与未来发展:从单任务到多任务并发
在计算机技术飞速发展的今天,操作系统作为计算机系统的核心,其功能和性能也在不断演进。本文将探讨操作系统从单任务到多任务并发的转变过程,分析其背后的技术驱动因素,并展望未来操作系统的发展方向。我们将深入剖析多任务操作系统的设计挑战、解决方案及其在现代计算环境中的应用,旨在为读者提供一个全面的理解。
|
6月前
|
缓存 编译器 程序员
C/C++编译器并行优化技术:并行优化针对多核处理器和多线程环境进行优化,以提高程序的并行度
C/C++编译器并行优化技术:并行优化针对多核处理器和多线程环境进行优化,以提高程序的并行度
545 0
|
异构计算
《OpenACC并行程序设计:性能优化实践指南》一 2.5 在多核系统中并行运行
本节书摘来自华章出版社《OpenACC并行程序设计:性能优化实践指南》一 书中的第2章,第2.5节,作者:[美] 罗布·法伯(Rob Farber),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1253 0