Linux高性能集群-软件体系结构介绍
- 格式:doc
- 大小:125.50 KB
- 文档页数:8
前言高性能计算集群(HPCC-High Performance Computing Cluster)是计算机科学的一个分支,以解决复杂的科学计算或数值计算问题为目的,是由多台节点机(服务器)构成的一种松散耦合的计算节点集合。
为用户提供高性能计算、网络请求响应或专业的应用程序(包括并行计算、数据库、Web)等服务。
相比起传统的小型机,集群系统有极强的伸缩性,可通过在集群中增加或删减节点的方式,在不影响原有应用与计算任务的情况下,随时增加和降低系统的处理能力。
还可以通过人为分配的方式,将一个大型集群系统分割为多个小型集群分给多个用户使用,运行不同的业务与应用。
集群系统中的多台节点服务器系统通过相应的硬件及高速网络互连,由软件控制着,将复杂的问题分解开来,分配到各个计算节点上去,每个集群节点独立运行自己的进程,这些进程之间可以彼此通信(通常是利用MPI -消息传递接口),共同读取统一的数据资源,协同完成整个计算任务,以多台计算节点共同运算的模式来换取较小的计算时间。
根据不同的计算模式与规模,构成集群系统的节点数可以从几个到上千个。
对于以国家政府、军方及大型组织机构来讲,节点数目可以达到数千甚至上万。
而随着HPCC 应用的普及,中小规模的高性能计算集群也慢慢走进中小型用户的视野,高性能计算集群系统的部署,极大地满足了此类用户对复杂运算的能力的需求,大大拓展了其业务范围,为中小型用户的成长提供支持。
本次方案研究适合于中小规模用户的典型系统:基于32个计算节点和In finiBand 高速网络的Linux 集群。
惠普Linux 高性能集群方案方案描述此次方案中,高性能计算集群系统的节点由 HP BladeSystem 刀片服务器搭建,节点间通过InfiniBand 高速网络相连,管理、登录和存储节点由HP ProLiant机架式服务器构成,存储节点通过SAN 交换机外挂HPStorageWorks 磁盘阵列来存储大容量数据。
linux操作系统的结构及详细说明linux的操作系统的结构你了解多少呢?下面由店铺为大家整理了linux操作系统的结构及详细说明的相关知识,希望对大家有帮助!linux操作系统的结构及详细说明:一、 linux内核内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。
系统调用接口:SCI 层提供了某些机制执行从用户空间到内核的函数调用。
这个接口依赖于体系结构,甚至在相同的处理器家族内也是如此。
SCI 实际上是一个非常有用的函数调用多路复用和多路分解服务。
在 ./linux/kernel 中您可以找到 SCI 的实现,并在 ./linux/arch 中找到依赖于体系结构的部分。
1. 内存管理对任何一台计算机而言,其内存以及其它资源都是有限的。
为了让有限的物理内存满足应用程序对内存的大需求量,Linux 采用了称为“虚拟内存”的内存管理方式。
Linux 将内存划分为容易处理的“内存页”(对于大部分体系结构来说都是 4KB)。
Linux 包括了管理可用内存的方式,以及物理和虚拟映射所使用的硬件机制。
不过内存管理要管理的可不止 4KB 缓冲区。
Linux 提供了对 4KB 缓冲区的抽象,例如 slab 分配器。
这种内存管理模式使用 4KB 缓冲区为基数,然后从中分配结构,并跟踪内存页使用情况,比如哪些内存页是满的,哪些页面没有完全使用,哪些页面为空。
这样就允许该模式根据系统需要来动态调整内存使用。
为了支持多个用户使用内存,有时会出现可用内存被消耗光的情况。
由于这个原因,页面可以移出内存并放入磁盘中。
这个过程称为交换,因为页面会被从内存交换到硬盘上。
内存管理的源代码可以在 ./linux/mm 中找到。
2 .进程管理进程实际是某特定应用程序的一个运行实体。
第7卷第4期中国水利水电科学研究院学报voI.7No.42009年12月JoumalofChina1nstituteofWaterResourcesandHydropowerResearchDecember,2009文章编号:1672.303l(2009)04-0302.05基于LINUX和MPICH2的高性能科学计算集群搭建及其性能评测叶茂,缪纶,王志璋,李江华(中国永利水电科学研究院信息网络中心,北京100044)摘要:在水利工程计算中,单机计算已经不能满足实际科研和生产的需要,大型工程的设计、施工、管理和科学研究都越来越依赖于高性能科学计算。
采用并行计算和计算机网络技术构建高性能科学计算集群,能够有效提高计算速度并降低运算成本。
本文探讨了基于Beo讯llf集群模型,利用普通Pc机和以太网,通过在uNUx操作系统下搭建基于MPIcH2的并行计算集群,实现低成本并行计算平台的技术,并介绍了利用unpack测试对并行计算集群进行性能评测的具体方法。
这一技术对于解决较大规模科学和工程计算问题具有重要的实用价值和经济意义。
关键词:科学计算集群;并行运算;性能评测中图分类号:’I鸭93.02文献标识码:A随着科学技术的不断发展,水利科学研究和大型工程的设计、施工、管理等都越来越依赖于高性能科学计算。
但由于超级计算机的价格昂贵并且运行成本高昂,普通用户难以承受其巨大投资。
因此,利用网络和普通Pc机构建集群以支持高性能科学计算,能够大幅度节约投资并有效降低运行维护成本,而倍受欢迎。
本文介绍在uNux环境下利用普通Pc机构建Be洲lf型高性能科学计算集群的搭建技术以及运用UNPACK计算性能测试评价方法。
1集群系统及并行计算原理集群(Cluster)是一组计算机,它们作为一个整体向用户提供一组网络资源。
这些单个的计算机系统就是集群的节点(N0de),从用户的角度来看集群是一个整体系统而非多台计算机,在应用中用户从来不会感觉到集群系统底层的节点;从管理员角度来看集群是由若干计算机节点组成的系统,他可以方便的进行集群系统节点的增减和重新组合。
linux系统结构框架
Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。
内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。
1.内核:内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。
2.Shell:shell是命令行解释器,可以为用户提供对系统的访问,也可以被用作程序或者脚本的命令行环境。
有多种shell可以选择,比如bash,zsh,ksh等。
3.文件系统:Linux系统使用一个基于文件的层级结构来组织和存储系统资源。
每个文件和目录都从根目录“/”开始,然后层层嵌套。
4.应用程序:Linux系统上可以运行各种应用程序,包括文本编辑器、浏览器、开发工具等。
应用程序为用户提供了使用系统的接口。
在更细致的层次结构上,Linux系统的内存管理分为几个主要组件,包括物理内存管理、虚拟内存管理以及内核内存管理等。
物理内存管理负责物理内存的分配和回收,虚拟内存管理则将物理内存映射到虚拟地址空间,并实现内存的共享和保护。
内核内存管理则负责内核空间的分配和释放,以及内核页面的交换等。
linux操作系统的体系结构Linux操作系统的体系结构Linux是一个开源的操作系统内核,它是一个多任务、多用户的操作系统。
它支持大量的硬件平台,可以运行在个人计算机、服务器、移动设备和嵌入式系统中。
Linux操作系统的核心设计是基于UNIX操作系统的设计理念,具有稳定、安全和高性能的特点。
本文将详细介绍Linux操作系统的体系结构。
一、内核空间和用户空间Linux操作系统采用了一种分层的体系结构,将操作系统分为内核空间和用户空间两部分。
内核空间是操作系统内核运行的区域,包括内核代码、驱动程序和中断处理程序等。
用户空间是用户程序运行的区域,包括应用程序、库文件和用户数据等。
内核空间和用户空间通过操作系统提供的系统调用接口进行通信。
用户程序通过系统调用接口请求操作系统提供的服务,如文件操作、进程管理和网络通信等。
操作系统在内核空间中响应这些请求,并将结果返回给用户程序。
二、进程管理Linux操作系统是一个多任务操作系统,能够同时运行多个进程。
进程是程序在操作系统中的实体,它包括代码、数据和运行环境等。
Linux操作系统通过进程管理功能对进程进行管理和调度。
进程管理功能包括创建进程、销毁进程、挂起进程、恢复进程和进程切换等。
Linux操作系统通过调度算法决定哪个进程优先执行,以实现操作系统的高效利用和公平分享。
三、内存管理Linux操作系统通过内存管理功能对内存进行管理和分配。
内存是计算机中重要的资源,操作系统需要有效地管理和分配内存。
Linux操作系统使用虚拟内存管理技术,将物理内存虚拟化为逻辑地址空间。
这样,每个进程都有自己独立的逻辑地址空间,不会相互干扰。
操作系统通过内存管理功能实现虚拟地址到物理地址的转换,并对内存进行分页、分段和交换等操作,以实现内存的高效利用和管理。
四、文件系统Linux操作系统通过文件系统管理文件和目录。
文件系统是一种组织和存储文件的方式,可以将文件组织成层次结构,方便用户访问和管理。
linux分层设计体系结构Linux是一种开源的操作系统,其设计采用了分层的体系结构。
这种设计使得Linux具有高度的灵活性和可扩展性,同时也方便了系统的维护和管理。
本文将详细介绍Linux的分层设计体系结构。
在Linux的分层设计中,最底层是硬件层。
硬件层包括计算机的各种硬件设备,如处理器、内存、硬盘、网络接口等。
Linux通过设备驱动程序来管理和控制这些硬件设备,使其能够与操作系统进行交互。
在硬件层之上是内核层。
内核是操作系统的核心,负责管理系统的资源和提供各种系统服务。
Linux的内核是一个单独的模块,可以独立于其他软件进行开发和维护。
内核提供了各种系统调用接口,以及对进程、文件系统、网络和设备的管理和控制功能。
在内核层之上是库层。
库是一组共享的代码和函数,可以为应用程序提供常用的功能和服务。
Linux提供了许多不同的库,如C库、数学库、网络库等。
这些库可以被开发人员用来开发应用程序,提高开发效率和代码复用性。
在库层之上是应用层。
应用层包括各种应用程序和工具,如文本编辑器、图形界面、网络浏览器等。
这些应用程序可以通过系统调用接口与内核进行交互,并利用库提供的功能来实现各种任务和操作。
除了以上四个层次外,Linux还有其他一些重要的组件和模块。
例如,系统初始化和启动过程中,会加载引导程序和初始化程序;文件系统是用来组织和管理文件和目录的;网络协议栈是用来实现网络通信的;系统服务是用来提供各种系统功能和服务的。
这些组件和模块与其他层次之间相互关联,共同构成了Linux的完整体系结构。
Linux的分层设计体系结构具有许多优点。
首先,分层设计使得系统的各个组件和模块之间相互独立,可以分别进行开发、测试和维护,提高了开发和维护效率。
其次,分层设计使得系统的各个层次之间的接口清晰明确,方便了系统的扩展和升级。
此外,分层设计还提高了系统的稳定性和可靠性,一旦某个层次出现问题,不会对其他层次造成影响。
Linux的分层设计体系结构是一种高效、灵活和可扩展的设计方式。
利用Linux操作系统进行服务器集群管理在当今信息时代,服务器集群已经成为现代企业中不可或缺的一部分。
而要有效地管理服务器集群,利用Linux操作系统是一个明智的选择。
本文将介绍如何利用Linux操作系统进行服务器集群管理。
一、服务器集群管理的基本概念服务器集群是由多台服务器组成的,旨在提高系统的可靠性、可用性和性能。
服务器集群管理的核心目标是促进集群中服务器的协同工作以提供高负载、高性能和高可用性的服务。
二、Linux操作系统简介Linux操作系统是一个免费且开源的操作系统,具有出色的稳定性和安全性,广泛应用于服务器领域。
Linux操作系统提供了一系列工具和命令,用于管理集群中的多台服务器。
三、服务器集群管理工具1. SSH(Secure Shell)SSH是一种网络协议,可用于在两个网络设备之间进行加密通信。
通过SSH,管理员可以在远程终端登录服务器,执行管理操作。
2. Shell脚本Shell脚本是一种在Linux操作系统中编写的可执行脚本,用于批量执行一系列命令。
管理员可以编写Shell脚本来进行服务器集群管理任务,如自动化安装软件、配置系统参数等。
3. rsyncrsync是一种高效的文件复制工具,可用于在服务器之间同步文件和目录。
管理员可以使用rsync命令将文件从一台服务器复制到集群中的其他服务器,实现数据的同步和备份。
4. PacemakerPacemaker是一个开源的高可用性集群管理软件,可用于监控和管理服务器集群中的资源。
通过配置Pacemaker,管理员可以实现自动故障切换和负载均衡等功能。
四、利用Linux操作系统进行服务器集群管理的步骤1. 安装Linux操作系统首先,管理员需要在每台服务器上安装Linux操作系统。
可以选择适合企业需求的Linux发行版,如Ubuntu、CentOS等。
2. 配置SSH登录在每台服务器上,管理员需要配置SSH服务,以便能够通过SSH 协议远程登录服务器。
linux分层设计体系结构Linux分层设计体系结构是一种将Linux操作系统的各个组件和功能分层组织的方式,以实现模块化设计、可维护性和可扩展性。
以下是Linux分层设计体系结构的主要层级:1. 用户接口层:这是用户与Linux系统交互的界面层,包括Shell、命令行工具和图形用户界面。
用户通过这一层来执行操作系统的命令和访问系统资源。
2. 系统调用接口层:这一层提供给应用程序访问Linux内核所提供的功能的接口。
它包括一系列的系统调用(system call),应用程序可以通过这些系统调用来请求内核执行某些操作,例如文件操作、进程控制等。
3. 库函数层:这一层提供了一系列的函数库,供应用程序调用。
这些函数库封装了一些常用的操作,如字符串操作、文件操作、网络操作等。
应用程序通过调用这些函数库来实现特定的功能。
4. 内核层:这一层是操作系统的核心,负责管理和控制计算机的硬件资源,提供各种功能和服务。
Linux内核包含多个子系统,如进程管理、文件系统、网络协议栈、设备驱动等。
5. 设备驱动层:这一层负责与硬件设备进行交互,通过提供特定的接口和功能来控制和管理设备。
设备驱动层包括字符设备驱动、块设备驱动、网络设备驱动等。
6. 硬件层:这一层是真实的物理硬件,包括处理器、内存、外设等。
硬件层由设备驱动来访问和控制。
通过将Linux系统划分为不同的层次,分层设计体系结构提供了一种模块化的方式来开发、维护和扩展Linux系统。
每个层级都有明确定义的职责和接口,不同层级之间的依赖关系也得到了良好的管理。
这种设计使得Linux系统更加灵活、可维护和可扩展。
高性能计算集群1.1什么是高性能计算集群简单的说,高性能计算(High-Performanee Computing)是计算机科学的一个分支,它致力于开发超级计算机,研究并行算法和开发相关软件。
高性能集群主要用于处理复杂的计算问题,应用在需要大规模科学计算的环境中,如天气预报、石油勘探与油藏模拟、分子模拟、基因测序等。
高性能集群上运行的应用程序一般使用并行算法,把一个大的普通问题根据一定的规则分为许多小的子问题,在集群内的不同节点上进行计算,而这些小问题的处理结果,经过处理可合并为原问题的最终结果。
由于这些小问题的计算一般是可以并行完成的,从而可以缩短问题的处理时间。
1.2分类高性能计算的分类方法很多。
这里从并行任务间的关系角度来对高性能计算分类。
1.2.1高吞吐计算有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。
因为这种类型应用的一个共同特征是在海量数据上搜索某些特定模式,所以把这类计算称为高吞吐计算。
所谓的In ternet计算都属于这一类。
按照Flynn的分类,高吞吐计算属于SIMD (Single Instruction/Multiple Data,单指令流-多数据流)的范畴。
1.2.2分布计算另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。
按照Flynn的分类,分布式的高性能计算属于MIMD (Multiple Instruction/Multiple Data,多指令流-多数据流)的范畴。
1.3高性能计算集群系统的特点可以采用现成的通用硬件设备或特殊应用的硬件设备,研制周期短;可实现单一系统映像,即操作控制、IP登录点、文件结构、存储空间、I/O 空间、作业管理系统等等的单一化;高性能(因为CPU处理能力与磁盘均衡分布,用高速网络连接后具有并行吞吐能力);高可用性,本身互为冗余节点,能够为用户提供不间断的服务,由于系统中包括了多个结点,当一个结点出现故障的时候,整个系统仍然能够继续为用户提供服务;高可扩展性,在集群系统中可以动态地加入新的服务器和删除需要淘汰的服务器,从而能够最大限度地扩展系统以满足不断增长的应用的需要;安全性,天然的防火墙;资源可充分利用,集群系统的每个结点都是相对独立的机器,当这些机器不提供服务或者不需要使用的时候,仍然能够被充分利用。
Linux高性能集群-软件体系结构介绍目录1BEOWULF集群软件结构 (3)2操作系统 (3)3文件系统 (4)3.1集群和文件系统 (4)3.2集群中的数据共享形式 (5)3.2.1rsync (5)3.2.2NFS (5)3.2.3GFS (6)3.2.4Intermezzo (7)3.2.5Backend Database (7)4并行化应用程序 (7)4.1确定应用程序的并发部分 (8)4.2分析并行的效率 (8)4.3实现应用程序的并发 (8)1Beowulf集群软件结构图1 是Beowulf集群的软件体系机构。
一般来说,Beowulf集群由如下几个软件部分组成:操作系统:勿容置疑,操作系统是任何计算机系统的软件基础。
相对于桌面系统而言,集群系统对操作系统的任务调度和文件管理方面的要求更高。
并行开发库:只要是指用于集群中进程通信的软件库。
消息传递和线程是两种基本的通信方法。
但是对于Beowulf集群而言,消息传递更适合一些。
Beowulf集群常用的开发库是MPI和PVM。
作业管理:调度作业并管理集群系统的资源,是集群系统的资源得到最大的利用。
系统管理:管理和监控整个集群系统。
开发环境:开发和调试高效能应用的开发工具。
标准应用:一些标准的高性能应用如CFD。
客户应用:客户特别定制的应用。
2操作系统并不是每种操作系统都适合高性能集群系统。
理论上说,硬件的体系结构、操作系统的任务调度方式和IPC的方式是决定应用并行化效果的主要因素。
根据这三个因素,我们可以归纳出如下5种实施应用并行化的平台:单任务操作系统:CPU同时只处理任务队列中的一个任务。
MS DOS是这类系统的代表。
多任务操作系统:基于分时技术的多任务操作系统。
虽然在同一时间段,所有的进程都在运行,但是在某一时间点,CPU只执行一个进程。
这类操作系统可分为抢占式和非抢占式。
单CPU的Unix 和NT属于这种类型。
多CPU多任务操作系统:和单CPU的多任务操作系统不同的是,由于有多个CPU,所以在某个时间点上,可以有多个进程同时运行。
多CPU的Unix和NT属于这种类型。
多CPU多任务操作系统+线程:某些任务当把它分为若干并行的子任务同时在多个CPU上执行时,它会运行的更快,尽管运行这个任务占有的总CPU时间变长了。
由于采用多个CPU而使任务结束的时间缩短了。
由于应用本身的特性,随着CPU个数的增加,性能并不会线性增加。
Amdal 法则说明了这种情况。
运行在同一主板上多个CPU的Unix和NT+线程属于这一类型。
SMP系统合适采用这种方法。
多CPU多任务操作系统+消息传递:在SMP系统中,由于采用共享内存,所以CPU通信的时间几乎可以忽略。
但是在象集群这种系统中,通信时间成为不得不考虑的因素。
这时,使用线程是一种很奢侈的方法。
这种情况下,消息传递是一种比较好的方法。
(本系列文章的第二部分解释了这种情况)。
同一个主板或多个主板上的多个CPU+Unix和NT+消息传递属于这种类型。
Beowulf集群使用第5种类型平台。
它可以由SMP和PC服务器组成,以Linux为操作系统,以MPI或PVM这种消息传递方式作为通信方法。
3文件系统文件系统是操作系统的重要组成部分,用于存储程序和数据。
如何在各节点间高效、一致和简捷的实现数据共享是集群系统对文件系统提出的挑战。
3.1 集群和文件系统很明显,那种仅能管理本地存储的文件系统(如EXT和FAT)是无法满足集群系统对文件共享的要求的。
在集群环境下,最容易想到,也是最容易实现的文件系统就是分布式文件系统。
相当于本地文件系统,分布式文件系统有如下优点:网络透明:对远程和本地的文件访问可以通过相同的系统调用完成。
位置透明:文件的全路径无需和文件存储的服务绑定,也就是说服务器的名称或地址并不是文件路径的一部分。
位置独立:正是由于服务器的名称或地址并不是文件路径的一部分,所以文件存储的位置的改变并不会导致文件的路径改变。
分布式文件系统可以使集群的节点间简捷地实现共享。
但是为了提供性能,分布式文件系统通常需要使用本地的缓存(Cache), 所以它很难保证数据在集群系统范围的一致性。
而且往往分布式文件系统中只有一份数据,所以很容易发生单点失效。
建立在共享磁盘(Share-Disk)上的并行文件系统可以克服分布式文件系统的这些缺点。
通过使用在节点共享的存储设备,并行文件系统具有很多优点:高可用性:克服了分布式文件系统中那种服务器端的单点失效的缺点,提高了文件系统的可用性。
负载均衡:有多个访问点,彼此可以协调负载。
可扩展性:容易扩展容量和访问的带宽。
3.2 集群中的数据共享形式下面通过给出几个集群中使用具体的数据共享的方法。
其中rsync是建立在本地文件系统之上,NFS和Inteemezzo属于分布式文件系统(确切的说,NFS只是网络文件系统),GFS属于并行文件系统,而Backend- database则属于不同于文件共享的另一种形式的共享。
3.2.1 rsyncrsync是一种简单的文件共享实现方式。
集群中的每个节点都有一份数据复本,复本间使用rsync进行同步。
因为节点需要的数据就在本地,所以这种方法具有很高的可用性,不会出现单点失效现象。
如果需要的共享的数据量很小,而且很少更新时,可以采用这种方式。
静态网页和小的FTP站点的可以使用这种共享方式。
3.2.2 NFS这也是一种容易实现的方式。
存储节点通过NFS将自己本地的文件输出,其他节点则把存储节点输出的文件系统mount到本地文件系统。
NFS方式的存在两个很大的缺点:性能差:因为所有的文件访问都必须经过网络和NFS服务器,所以在访问流量比较大的情况下,网络带宽和NFS服务器都会成为系统的瓶颈。
单点失效:如果NFS服务器的系统失效或者网络失效都会使得其他节点无法得到数据,从而使整个集群系统瘫痪。
当然使用多个互为备份的NFS服务器可以改善性能和避免单点失效,但是这样又会带来如何实时保持备份服务器间数据一致性的问题。
NFS方式适合于共享访问数据量不大的小型集群系统。
3.2.3 GFSGFS(Global File System)实现了存储设备的网络共享。
这些存储设备可以是共享SCSI(Shared SCSI)和共享通道(Fibre Channel - FC)。
GFS包装这些存储设备使得它们好像节点本地的文件系统。
GFS的主要优点在于:高可用性:如果一个GFS客户失效,数据还可以通过其他GFS客户访问。
扩展性:因为不需要中心服务器,所有很容易扩展存储容量和访问带宽。
GFS可以将物理上分离的存储设备虚拟为一个存储而且能平衡访问负载。
GFS还实现了文件锁和实时文件系统。
3.2.4 IntermezzoIntermezzo实现了一个分布式的文件系统。
它采用客户/服务器模式。
服务器拥有权威的数据,客户节点仅有本地缓冲的版本。
它们通过普通的网络进行同步。
Intermezzo支持断开连接下文件操作。
在下次恢复连接时,它会集成本地的改动到服务器上。
Intermezzo拥有象GFS一样的可用性和可扩展性。
但是它无法保证数据的实时一致性。
3.2.5 Backend Database基于后端数据库的共享是完全不同于文件共享的方式。
后端数据库系统解决了数据的一致性、性能、可用性和可扩展性问题。
但是数据库的访问方法要比文件访问复杂的多。
4并行化应用程序并行化应用程序,使其更高效的运行是使用Beowulf集群系统的最终目的。
一般说,并行化应用程序分为三个步骤:确定应用程序的并发部分;估计并行的效率;实现应用程序的并发。
在并行化应用程序的过程中,需要开发环境、并行开发库和各种工具的支持。
这些软件都是Beowulf集群软件体系结构中重要的组成部分。
4.1 确定应用程序的并发部分从实用的角度说,应用程序有两种类型的并发:计算和I/O。
尽管在多数情况下这两者是正交的,但是也存在一些应用同时需要这两种并发性。
有一些工具可以用来帮助分析应用程序的并发,而且通常这些工具都是专门为Fortran设计的。
4.2 分析并行的效率分析并行的效率是并行化应用程序中很重要的一个步骤。
正确的分析并行的效率可以帮助你在有限的经费下最大化应用的执行效率。
往往Beowulf集群的需要和应用的需要有些许的差别。
比如,CPU消耗型的应用往往需要的是稍微快一点的CPU和高速低延迟的网络,而I/O消耗型的应用需要的是稍微慢一点的CPU和快速以太网。
如果没有分析工具,你只能使用猜测和估计的办法完成这一步骤。
一般来说,如果在应用的一部分中,计算的时间是分钟级而数据传输的时间是秒级,那么这一部分可以并行执行。
但是如果并行后计算时间降到秒级,你就需要实际测量一下再做权衡。
另外,对于I/O消耗型的应用,Eadline-Dedkov法则对你做决定有些帮助:如果两个并行系统具有相同的CPU指标,慢CPU和相应具有低速CPU间通信网络的系统反而具有较好的性能。
4.3 实现应用程序的并发有两种方法去实现应用程序的并发:显式并发和隐式并发。
显式并行化是指由开发者决定程序的并行。
开发者通过在程序中增加PVM或MPI消息,或者增加程序执行的线程从而达到程序的并行化。
显式并行化通常难以实现和调试。
为了简化显式并行化,某些开发库中增加了一些函数用于简化标准并行方法的实现。