什么是异构系统分布式异构计算机系统

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
异构分布式实时系统建模及性能分析
下载积分:2000
内容提示:异构分布式实时系统建模及性能分析
文档格式:PDF|
浏览次数:0|
上传日期: 17:40:55|
文档星级:
全文阅读已结束,如果下载本文需要使用
 2000 积分
下载此文档
该用户还上传了这些文档
异构分布式实时系统建模及性能分析
官方公共微信7578人阅读
大数据(6)
1. 如何理解“分布式”?
& & &经常听到”分布式系统“,”分布式计算“,”分布式算法“。分布式的具体含义是什么?狭义的分布是指,指多台PC在地理位置上分布在不同的地方。
2. 分布式系统
& &&分布式系统:多个能独立运行的计算机(称为结点)组成。各个结点利用计算机网络进行信息传递,从而实现共同的“目标或者任务”。
分布式程序: 运行在分布式系统上的计算机程序。
分布式计算:利用分布式系统解决来计算问题。在分布式计算里,一个问题被细化成多个任务,每个任务可以被一个或者多个计算机来完成。
& & 区分分布式计算和并行计算:共同点都是大任务划分为小任务。不同点:
分布式计算:基于多台PC,每台PC完成同一任务中的不同部分。分布式的计算被分解后的小任务互相之间有独立性,节点之间的结果几乎不互相影响,实时性要求不高。并行计算:基于同一个台PC,利用CPU的多核共同完成一个任务。
1)分布式操作系统
& & & 分布式操作系统:负责管理分布式处理系统资源和控制分布式程序运行。它和集中式操作系统的区别在于资源管理、进程通信和系统结构等方面。
2)分布式文件系统
& & & &分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。
3)分布式程序设计和编译解释系统
& & & 分布式程序设计语言用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。它与集中式的程序设计语言相比有三个特点:分布性、通信性和稳健性。
& & &分层应用程序可以按层数进行划分,信息可以从数据层通常存储在数据库传送到表现层显示在客户端上。通常每层相对于其他层来说都运行在不同的系统中,或者在同一系统中的不同进程空间里。分层好处:减小整个应用程序的复杂性;使应用程序能够更好的扩展,跟得上企业发展的需要。&
两层应用程序典型的结构,一个客户端的用户机前端一个包含数据库的网络服务器后端逻辑上根据两者的物理位置划分。通常客户端包含大部分业务逻辑,随着数据库及存储过程的发展,语言允许业务逻辑在数据库服务器中存储并执行。目前最常用的是三层应用程序结构,包含一个用户服务层表现层,一个业务服务层和一个数据服务层。&由于两层应用程序即客户端服务器端结构的功能限制,分布式应用程序通常分为三层或者更多层。每层的组件都执行一个特定类型的处理。
3)分布式数据库
之我见:分布式数据库,由分布在不同地方(地理位置上的分布)的多个数据库(称为站点)连接(基于计算机网络来连接)而成。利用分布式DBMS对各个站点统一管理,各个站点逻辑上统一起来。基于数据分布的透明性,仿佛在管理单个站点上的数据。其优点在于:容错,提高访问速度。
wiki官方解释: 分布式数据库是用计算机网络将物理上分散的多个数据库单元连接起来组成的一个逻辑上统一的数据库。每个被连接起来的数据库单元称为站点或结点。分布式数据库有一个统一的数据库管理系统来进行管理,称为分布式数据库管理系统。
&分布式数据库的基本特点包括:物理分布性、逻辑整体性和站点自治性。从这三个基本特点还可以导出的其它特点有:数据分布透明性、集中与自治相结合的控制机制、适当的数据冗余度和事务管理的分布性。分布式数据库按照各站点中数据库管理系统的数据模型的异同分为异构型分布式数据库和同构型分布式数据库,按照控制系统的类型分为全局控制集中性、全局控制分散型和全局控制可变型
3. Hadoop , HDFS, HBase, Hive
之我见: &
& & &Hadoop是一个分布式系统基础框架,基于这个框架开发分布式应用程序,利用集群的高速运算和存储的威力。类似于,基于NVIDIA 的 CUDA并行架构开发并行程序,发挥GPU的并行计算能力。
& & &HDFS是Hadoop的文件系统。基于HDFS,你可以对文件进行操作,例如新建,删除,编辑,重命名等。
& & &HBase: 基于Hadoop架构的数据库系统。不是关系型数据库,基于列的模式。
& & &Hive: 基于HBase的高层语言。类似于SQL --- 访问和处理关系型数据库的计算机语言。
官方解释:
& & & Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。
& & & &HDFS(Hadoop Distributed File System)是Hadoop实现的一个分布式文件系统。它存储 Hadoop 集群中所有存储节点上的文件。对外部客户机而言,HDFS 就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的,存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的
RAID 架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。NameNode 可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协议。
& & & & HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。Hadoop
HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。此外,Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。 Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。HBase的数据模型和存储结构,参考&
& & & & Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件(例如xml)映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:460002次
积分:4076
积分:4076
排名:第6733名
原创:93篇
转载:28篇
评论:68条
(1)(1)(4)(1)(2)(1)(4)(4)(5)(4)(3)(1)(3)(5)(3)(3)(1)(1)(1)(2)(2)(1)(6)(9)(5)(6)(10)(10)(2)(2)(4)(1)(8)(1)(1)(2)(1)异构分布式系统上的有限差分
发表于 14:29|
摘要:在本文中,我们将举例介绍如何展开有限差分 (FD) 计算内核,在分布式系统上运行。 此外,我们还将介绍一项技术,展示如何处理不同节点或计算设备提供不同的计算速度时,异构分布式系统出现的负载失衡的问题。 本文提供了一个示例源代码,对我们的实施进行例证。
在本文中,我们将举例介绍如何展开有限差分 (FD) 计算内核,在分布式系统上运行。
此外,我们还将介绍一项技术,展示如何处理不同节点或计算设备提供不同的计算速度时,异构分布式系统出现的负载失衡的问题。
本文提供了一个示例源代码,对我们的实施进行例证。
我们的构建模块是 FD 计算内核,是地震成像 RTM (逆时偏移)算法中经常用到的内核。 ISO-3DFD (各向同性三维有限差分)stencil
执行的计算在油气调查和勘探复杂地下结构精确成像方面起着重要作用。 在本文中,我们利用 [1] 和 [2] 中介绍的 ISO-3DFD 阐释了简单的基于 MPI
的分布式实施,支持分布式 ISO-3DFD 计算内核在包括主要的英特尔& 至强& 处理器和附加的英特尔& 至强融核& 协处理器的混合硬件配置上运行。
此外,我们还对英特尔& 软件工具进行了探索,以期帮助对负载均衡进行分析,提高性能和可扩展性。
分布式 ISO-3DFD
我们的说明案例是对 ISO-3DFD 计算 stencil 的一维分解。 我们设置了一个计算区域,该区域可跨所有 MPI 进程划分。
对于此示例,我们在每台计算设备(英特尔至强处理器或英特尔至强融核协处理器)上设置了一个 MPI 进程。 这一实施包括 MPI
进程之间(即处理器和协处理器之间)所需的 halo 交换。 当区域分解按照 [1, 2] 中描述的方式应用到 FD stencil
上时,应以每个算法时间步长为单位在子域内实施 halo 交换。 这是因为靠近子域边界的域的点值更新要求值在临近子域上计算:
for(int&k=1; k&=HL; k++)&&&&
&&&&&&&&&&u_0 += W[k]*(
&&&&&&&&&&&&U0(ix+k,iy& ,iz& ) + U0(ix-k,iy& ,iz& ) +
&&&&&&&&&&&&U0(ix& ,iy+k,iz& ) + U0(ix& ,iy-k,iz& ) +
&&&&&&&&&&&&U0(ix& ,iy& ,iz+k) + U0(ix& ,iy& ,iz-k));
三维 stencil 的阶由其半长 (HL) 值定义:比如,一个模板的第八阶 stencil 由其半长 HL=8/2=4 的值定义。
相邻子域之间要交换的 halo 的宽度也等于 HL。
这一示例代码使用对称执行模型:代码在主处理器和协处理器上运行。 这可通过完全对称的 MPI
执行来完成,其中英特尔至强处理器和英特尔至强融核协处理器上可以运行不同的进程。 例如,假定有一个名为hostname1
的双插座系统,其中有两个英特尔至强融核协处理器插卡(名为 hostname1-mic0 和hostname1-mic1)连接至系统的 x16 PCIe* 插槽。
同时假定有两个可执行二进制:rtm.cpu (面向处理器架构编译,如英特尔& 高级矢量扩展指令集 2(英特尔& AVX2)和 rtm.phi
(面向英特尔至强融核协处理器架构编译)。 使用英特尔& MPI 库,开发人员可在 MPI+OpenMP* 对称模式执行中同时利用两个可执行二进制:
-n 1 -host hostname1 -env I_MPI_PIN_DOMAIN=socket -env OMP_NUM_THREADS=14
./rtm.cpu : \
-n 1 -host hostname1 -env I_MPI_PIN_DOMAIN=socket -env OMP_NUM_THREADS=14
./rtm.cpu : \
-n 1 -host hostname1-mic0 &env OMP_NUM_THREADS=244 ./rtm.phi : \
-n 1 -host hostname1-mic1 &env OMP_NUM_THREADS=244 ./rtm.phi
上述简化的单节点示例假定 rtm.cpu 和 rtm.phi 均按照 [1, 2] 中描述的方式通过 OpenMP 线程并行。 MPI
用来帮助在节点、处理器和协处理器之间交换和同步数据。 OpenMP 用来通过指定处理器或协处理器的内核划分 MPI 进程计算工作。
上述示例还可扩展至多个采用处理器和协处理器的节点。 请参见 [3],了解有关 MPI 对称模式执行的更多详情。
以下是简化的 MPI harness: 1) 假定每个英特尔至强融核协处理器相当于一个独立的计算节点,未使用卸载编程语法 2) 允许通过非阻塞 MPI
调用进行异步 halo 交换。 用邻近子域覆盖计算并交换 halo 需要在每个子域上考虑两种计算区域:
本地计算:随距离变化的点 & 距离邻近边界的 HL。 即,进行 stencil 计算的点仅取决于以前在同一个子域计算的值。
Halo 计算:随距离变化的点 &= 距离邻近边界的 HL。 即,进行 stencil 计算的点仅取决于以前在同一个子域计算的值。
按计划,我们应具备以下条件:
MPI 实施的风格是简单的最近邻居 halo 交换。 首先,使用缓冲区 BufferPrev 和 BufferNext 发布邻近子域所需的 halo
异步接收:
接下来,先更新 Halo 计算区域中的点,因为邻近子域将需要这些点:
halo 计算区域中的更新值异步发送至邻近域:
当进行异步 halo 交换后,本地计算区域内的点可进行更新,因为这些计算不依赖于邻近域的值:
然后,使用 MPI_Waitall 同步调用检查异步 halo 交换的完成情况。 最后将传输缓冲区 BufferPrev 和BufferNext
中接收到的值复制到子域:
实际实施可参见本文所附的示例源代码包。 它包含一个运行在 ISO-3DFD 代码(以前在 [1, 2] 中发布)上的 MPI 层。 每个 MPI
进程可通过硬件设置(如睿频加速模式、超线程和 ECC
模式(英特尔至强融核协处理器))调整性能,也可通过软件优化调整高速缓存阻塞、线程关联和数据预取距离进行调整。参考原文,了解有关单个进程优化和调整的详情。
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章

我要回帖

更多关于 分布式计算机控制系统 的文章

 

随机推荐