分布式内存系统、MPI、openMP、rank、TUP等概念的理解

最近在学习并行计算,其中涉及到一些概念,写下来方便以后巩固,之后会不断进行补充。

分布式内存系统

简单理解就是多个计算机相连接组成的一个系统,每个计算机都有自己的内存,这样每个计算机都可以单独的工作。就好比王者荣耀的五排,每个人对应了一个英雄,每个英雄都可以独立的操作,但这个五个英雄又共同组成了一个团队\系统,团队之间可以通过消息、语音等方式来传递消息。当然正如同游戏中的协调一样、分布式内存系统的通信和协同并不是那么简单,涉及到下一个概念MPI。

官方一点便是:分布式内存系统是一种计算机系统的架构,它由多个计算节点组成,每个节点拥有自己独立的内存空间。这种架构与共享内存系统形成对比,在共享内存系统中,多个处理器可以直接访问同一块物理内存。

分布式内存系统的关键特征包括:

  1. 独立的内存空间:每个节点拥有自己的局部内存,节点之间的内存是物理隔离的。这意味着,任何一个节点上的程序都无法直接访问另一个节点的内存。

  2. 节点间通信:由于每个节点都有独立的内存空间,节点之间的数据交换必须通过网络或其他通信方式显式进行。这种通信通常涉及数据的发送和接收,是分布式并行计算中的重要组成部分。

  3. 并行计算:分布式内存系统天然适合于并行计算,因为每个节点可以独立地执行任务,同时处理不同的数据集。这种架构可以有效地扩展计算能力,通过增加节点数量来处理更大规模的问题。

  4. 可扩展性:分布式内存系统的另一个优点是可扩展性。理论上,通过增加更多的计算节点,可以无限地扩展系统的计算能力。实际中,通信开销和软件设计的复杂性可能会限制系统的扩展性。

  5. 使用场景:分布式内存系统广泛应用于科学研究、工程计算、数据分析等领域,特别是那些需要大规模计算资源的应用。超级计算机和计算机集群就是典型的分布式内存系统。

MPI和rank

MPI是Message Passing Interface的缩写,直接翻译过来就是消息传输接口的意思,实际上MPI就是一种并行计算中常用的有关消息传递的并行编程模型(标准化 的消息传递接口),通过发送和接受来传递信息,满足进程之间的通信要求。MPI中的进程被组织进通信域中,是一个进程组,进程之间可以进行点对点通信和集体通信,除此之外,MPI还提供了许多的同步机制,允许进程利用它来协调执行。MPI主要用于分布式内存系统中,也就是上述的系统中。

在MPI中每一个并行执行的实例,都用一个rank来标识,一般来说这个实例对应的便是一个进程,而rank便是这个进程的表示符,所以rank也可以表示对应的进程。

就好比小组作业,每个人完成一部分,rank对应的就是每个人的姓名;而每个人对应的便是进程;大家同时工作,对应的就是并行的过程;如果你们平时靠微信来沟通,那么这个用来沟通的微信对应的就是MPI,而使用微信和一个人单独发消息便是点对点通信,如果是在群聊中发消息便是集体通信,而这个小组的群聊便是通信域。

OpenMP

OpenMP是Open Multi-Processing的缩写,首先它是一个API(应用程序接口),直接翻译便是开放的多处理技术。open表示这个api是开放的、标准化的,不限于某个特定从厂商或者平;MP表示多处理技术,表示使用计算机的多个核心或者处理器一起处理程序,提高计算效率和性能。或者说它是一个支持跨平台的共享内存的多处理编程的应用程序接口(API),它注重的是共享内存系统内节点的并行。它更类似于我们使用的共享文档,比如通过共享表格来收集信息,每个人都在这个表格上输入和修改数据,大家一起对这个共享表格进行输入和修改,这样大大加快了效率。

openMP的作用主要是帮助程序并行处理,上面说到在分布式内存系统上每个节点都可以进行自己的处理和运算,MPI便是为了节点间的并行工作而存在的。而openMP关注的是单个系统下的程序的并行,使其在共享内存环境下实现程序各部分有效并行,也就是对于分配到这个节点的并行任务,对该任务进行并行处理,以便进一步的提升性能和计算效率。

TUP(张量计算处理单元)

之前听说国CPU(中央处理器)、GPU(图形处理单元),今天接触到了TPU(Tensor Processing Unit)张量处理单元。它是Google专门为加速机器学习应用而设计的一种专用的集成电路,被专门用来优化和加速神经网络相关的模型训练和推理过程。

与CPU和GPU相比,TPU能够在执行深度学习任务时能够提供更高的性能和能效比。TUP的设计重点时高吞吐量的低精度计算,能高效的处理浮点运算和矩阵乘法运算。

Tachyon是一个分布式内存文件系统,可以在集群里以访问内存的速度来访问存在tachyon里的文件。把Tachyon是架构在最底层的分布式文件存储和上层的各种计算框架之间的一种中间件。主要职责是将那些不需要落地到DFS里的文件,落地到分布式内存文件系统中,来达到共享内存,从而提高效率。同时可以减少内存冗余,GC时间等。        特性:类 Java 的文件 API兼容性:实现 Hadoop 文件系统接口可插入式的底层文件系统内建 Raw 原生表的支持基于 Web 的 UI 提供命令行接口Tachyon 架构:与 HDFS 的比较:        Hadoop足够快吗?美国加州大学伯克利分校的AMPLab基于Hadoop的核心组件开发出一个更快的版本Tachyon。AMPLab从底层重建了Hadoop平台,“没有最快,只有更快”。        AMPLab在大数据领域最知名的产品是Spark,它是一个内存中并行处理的框架,Spark的创造者声称:使用Shark运行并行处理Job速度要比MapReduce快100倍。又因为Spark是在内存运行,所以Shark可与Druid或者SAP's HANA系统一较高下。Spark也为ClearStory下一代分析和可视化服务提供处理引擎。如果你喜欢用Hive作为Hadoop的数据仓库,那么你一定会喜欢Shark,因为它代表了“Hive on Spark”。       AMPLab的最新目标就是Hadoop分布式文件系统(HDFS),不过HDFS在可用性和速度方面一直受人诟病,所以AMPLab创建了Tachyon( 在High Scalability上非常夺目,引起了Derrick Harris的注意)。       当然,AMPLab并不是第一个对HDFS提出质疑的组织,同时也有很多商业版本可供选择,像Quantcast就自己开发了开源文件系统,声称其在运行大规模文件系统时速度更快、更高效。诚然,AMPLab所做的工作就是打破现有商业软件的瓶颈限制。如果碰巧破坏了现状,那么就顺其自然吧!不过,对于用户来说,AMPLab只是为那些寻找合适工具的人员提供了一种新的选择,AMPLab的合作伙伴和赞助商包括谷歌,Facebook,微软和亚马逊网络服务,它们当然非常乐意看到这些新技术,如果很有必要的话。       AMPLab的其他项目包括PIQL,类似于一种基于键/值存储的SQL查询语言;MLBase,基于分布式系统的机器学习系统;Akaros,一个多核和大型SMP系统的操作系统;Sparrow,一个低延迟计算集群调度系统。Tachyon可运行在如下任意平台上: 标签:分布式  文件系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值