利用对文件的读取测试并行系统的I/O性能
(1.内蒙古大学 计算机学院,内蒙古 呼和浩特 010021;2.内蒙古科技信息研究所,内蒙古 呼和浩特 010010)
摘 要:本研究对象为并行计算机的i/o性能,利用负载平衡算法将任务分发给不同的处理结点,通过进程间的相互协调、有序合作完成任务。在完成任务的过程中,通过记录i/o时间与计算时间,求出i/o性能与计算性能,通过分析比较数据从而认识i/o性能的重要性。研究计算机的i/o性能对于如何进一步改进系统以及提高资源利用率具有重要意义。
关键词:并行性;并行程序设计;i/o;mpi;进程
中图分类号:tp316.4 文献标识码:a 文章编号:1007—6921(2008)08—0053—03
并行程序设计方法的一个最基本的观点,就是把一个事物的行为看成是多个事物互相作用的结果。本文的主要研究内容就是在并行环境下,利用c语言和mpi编写程序,对已建立的文件进行读写,进而测试数据在单机上和并行系统中的i/o性能,并对测试数据进行分析,以体现并行系统在处理大规模数据时的优越性。
1 并行程序设计的有关概蓬
1.1 并行计算的概念
并行计算是指有很多小任务合作来求解一个大计算问题的一种方法,而数据并行指的是将相同的操作同时作用于不同的数据,从而提高问题求解速度。长期的实践表明数据并行可以高效地解决大部分科学与工程计算问题。数据并行模型是一种较高层次上的并行计算模型,它提供给程序员一个全局的地址空间。通常这类模型所采用的语言本身就提供有并行执行的语义,因而程序员只需要简单地指明执行什么样的并行操作和并行操作的对象,就实现了数据并行的编程。
1.2 程序并行化的负载平衡方法
本次研究的程序设计用到了程序并行化的负载平衡方法,主要运用了数据分割这一方法,因此对负载平衡方法作一些简单的介绍。
负载平衡群集就是带均衡策略(算法)的服务器群集。负载平衡群集在多节点之间按照一定的策略(算法)分发网络或计算处理负载。负载平衡建立在现有网络结构之上,它提供了一种廉价有效的方法来扩展服务器带宽,增加吞吐量,提高数据处理能力,同时又可以避免单点故障。
1.3 mpi概述
1.3.1 mpi的概念及优点。为了简化并行程序的设计,需要采用合适的并行编程模型。目前两种最重要的并行编程模型是数据并行和消息传递。数据并行编程模型的编程级别较高,编程相对简单,但只适用于解决数据并行问题;消息传递编程模型的编程级别较低,编程相对复杂,但却有着更加广泛的应用范围。
由于消息传递并行编程模型的广泛应用,目前已经出现了许多基于该模型的并行编程语言,其中最流行的是pvm(parallel virtual machine)和mpi(message process interface)。mpi是一种基于消息传递模型的并行编程接口,目前已经发展成为消息传递模型的代表和事实上的工业标准,而不是一门具体的语言。迄今为止,所有的并行计算机制造商都提供对mpi的支持,因而从理论上说任何一个正确的mpi程序可以不加修改地在所有并行计算机上运行。mpi的主要优点是:mpi的实现方式多样化,同一编程界面可有多种开发工具;mpi能实现完全的异步通信;mpi能有效地管理消息缓冲区;mpi能在mpp与工作站机群上有效运行;mpi异步执行时能保护用户的其它软件不受影响;mpi是完全可移植的标准平台。
1.3.2 用到的mpi中的函数的说明。mpi只是一个并行编程语言标准,要编写基于mpi的并行程序,还必须借助某一mpi具体实现。为了保证编译的正确性,程序的首部必须包含mpi的头文件<mpi.h>.该文件给出了mpi所有调用接口的说明,并对所有用到的常量进行了定义。
在点到点的通信中,主要用到的函数是mpi[cd#*4]send(buf,count,datatype,dest,tag,comm) 和mpi[cd#*4]recv(buf,count,datatype,source,tag,comm,status),其中buf为发送(接收)缓冲区的起始地址;count为发送(接收)缓冲区种元素的个数,非负整数;datatype为发送(接收)缓冲区种元素的数据类型;dest为目标进程的逻辑编号,类型为整数;source为数据源的rank值(整数);tag为消息标签,类型为整数;comm为通信子,status时mpi采用的一种能保证一个进程的多个线程都在接受消息时也能可靠的进行的一种方法。
2 算法分析
2.1 测试环境的介绍及课题分析
2.1.1 测试环境。硬件:4台浪潮英信nl120服务器(双intel dp xeon cpu、1 gb 内存);10 mb以太网组成的机群系统;软件:red hat linux 8.0,mpi应用环境,linux c语言,linux vi编辑器。
2.1.2 测试工具。linux vi编辑器,mpi应用环境。
2.1.3 测试对象。生成的大小为1 000×1 000的矩阵,对其进行读取,处理及写回等操作,以测试在单机下或并行系统下的i/o性能。
2.1.4 课题分析。本次研究主要侧重计算机在单机或并行系统中的i/o性能测试,通过进程同时读取、处理和写回数据,并按负载平衡算法对任务数据进行分割,并行处理任务。同时通过对测试数据的分析体现并行处理所带来的优越性。
2.2 算法概述
程序的编写是基于linux操作系统下的mpi和c环境。在程序的开始先定义两个文件file1和file2,file1作为源文件,file2作为目标文件,用来存放经过进程处理后的数据。再定义两个数组array和buffer,
利用对文件的读取测试并行系统的I/O性能
本文2010-04-27 23:07:29发表“财经金融”栏目。
本文链接:https://www.wenmi123.com/article/161235.html
- 2025 年《建设工程项目管理》模考卷一.pdf
- 座谈会发言:体系抓好思政课教育做好贯彻落实下篇文章(02-19).docx
- 组织部机关支部书记2024年度抓基层党建工作述职报告(02-19).docx
- 在县委理论中心组暨2024年度民主生活会学习研讨会上的发言(02-19).docx
- 在2025年市人代会分组讨论会上的发言(02-19).docx
- 医院党委选人用人工作自查报告(02-19).docx
- 宣传部2024年民主生活会个人对照检查发言(02-19).docx
- 行政服务中心民族团结进步创建工作经验材料(02-19).docx
- 校长在中学2025春季开学典礼上的讲话:撷一抹祈望春风掬一程锦绣花开(02-19).docx
- 乡镇领导班子2024年民主生活会对照检查发言材料(五个带头+典型案例)(02-19).docx