首页 理论教育 一种并行计算相关课程实验平台设计

一种并行计算相关课程实验平台设计

时间:2023-03-05 理论教育 版权反馈
【摘要】:随着多核CPU的推广应用,并行计算的重要性进一步提高,具备并行计算的知识与能力已成为21世纪人才的基本素质之一,并行计算相关课程也成为重要的实用课程。设计一个基于PC的并行计算实验平台,需要考虑硬件、操作系统和并行计算软件等方面。每个学生都可以拥有这样的一个并行计算实验平台,这要求整个平台软件应是高性能并且免费,这样才有可能在学生的PC上实现。考虑到普及性,本文选择Linux作为并行计算课程实验平台的操作系统。

一种并行计算相关课程实验平台设计

王慧燕[1]

(浙江工商大学计算机与信息工程学院)

摘 要:传统的并行计算实验平台系统硬件价格昂贵,维护复杂并且成本高,针对上述问题,本文提出了一种新的并行计算实验平台的实现方法,通过XEN进行硬件的虚拟,使得传统上需要多台服务器才可以完成的并行计算课程实验平台可以在1000美元以下的PC上实现。该实验平台硬件价格便宜,维护方便并且成本低,平台安装简单,学生能很容易在自己的个人电脑上安装本实验平台,为并行计算相关课程实验教学提供一个低成本、高可靠性、易管理的实验环境,适应高等学校培养微处理器“多核”发展所紧缺的新型人才的需求。

关键词:XEN;Linux;MPICH;并行计算课程;多核

一、引 言

并行计算被广泛应用于科学与工程领域,如天气预报、天文学计算、视频处理等[1]。随着多核CPU的推广应用,并行计算的重要性进一步提高,具备并行计算的知识与能力已成为21世纪人才的基本素质之一,并行计算相关课程也成为重要的实用课程。对于计算机专业的本科生和研究生而言,应该快速更新知识,改变传统的串行软件设计思路,成为微处理器“多核”发展所紧缺的新型人才。并行计算相关课程将随着多核CPU的普及而成为大学计算机专业本科生和研究生的必修课程,但由于实验条件等很多因素的限制,浙江省内多数学校从来没有开过任何与并行计算相关的课程,与发达国家大力推广并行计算教育有巨大差距,而设计开发与之相应的并行实验平台更是迫在眉睫了。

传统的并行计算实验平台基于多CPU服务器或服务器集群(server cluster)[2],通常运行Unix或Linux系统,这样的实验平台具有稳定、通用性强等优点。但其突出的问题是系统硬件价格昂贵、维护复杂、成本高、实验场地要求高。简言之,无法做到每个学生一个实验平台,必须通过给学生在服务器上开设账号的方式,使所有学生通过登录服务器共享一个并行计算平台。每周维护这样一个7×24小时运行的平台无论对于电力消耗还是人力消耗来讲都是昂贵的,这样的平台上如果有一个学生写了一个坏的死循环的多机器并行程序,就有可能消耗掉所有服务器的硬件资源(CPU、Memory等),这时只有通过管理员来终止该程序,这对管理服务器集群提出了较高的要求。

随着多核CPU的普及和CPU性能的提高,PC(personal computer)的性能得到了很大的进步,这使得我们有可能在PC上实现一个完整的并行计算实验平台,该平台可以作为服务器集群的补充,使每个学生都可以拥有一个属于自己的实验平台,从而使学生能随时在自己的PC上进行并行计算实验,完成课程作业。

本文基于XEN[3]和Open MP[4],在一台hp nx6330(Intel T5600@1.83GHz,1G Memory)笔记本上实现了6台Linux服务器,共12个CPU的虚拟服务器集群,整个实验平台包含了完整的并行计算开发和调试环境,管理方便,移植简单,适合于学生在学习并行计算相关课程时使用。

二、实验平台设计

设计一个基于PC的并行计算实验平台,需要考虑硬件、操作系统和并行计算软件等方面。每个学生都可以拥有这样的一个并行计算实验平台,这要求整个平台软件应是高性能并且免费,这样才有可能在学生的PC上实现。下面从硬件效率、操作系统和编译环境的选择等说明本文实现的并行计算课程实验平台。

(一)操作系统选择

本文并行计算实验平台中的主机和子机等必须基于一个PC操作系统,可选的PC操作系统很多,如windows系列,Linux系列,BSD系列等。

考虑到降低成本,windows操作系统被排除,BSD系列从价格(free)和性能上符合本平台的要求,Linux系列也符合要求。考虑到普及性,本文选择Linux作为并行计算课程实验平台的操作系统。

Linux有非常多的发行版本(distribution),考虑到稳定性和易用性,有Red Hat enterprise(RHEL)和SUSE等发行版可以选择,由于这些都是商业版本,价格很高,因而不适合本文讨论的并行计算课程实验平台。RHEL的克隆版本CentOS[5]是一个免费的发行版,且与RHEL兼容性好,因而本文所讨论的实验平台采用该发行版。

由于需要支持XEN虚拟机,因而选择CentOS 5为本文讨论的并行计算课程实验平台主机的操作系统,选择Cent OS 4为client机器的操作系统。

(二)2.2并行计算软件选择

同样,并行计算软件也必须选择免费的软件,因而选择mpich-1.2.7p1[6]加GCC 3.4.6,采用GDB进行调试。

(三)2.3虚拟机选择

为了实现并行计算平台,必须要有多台机器和多个CPU,要在PC上实现,虚拟机是个经济的选择。虚拟机的选择需要考虑性能稳定性和价格等方面,目前常用的虚拟机软件包括vmware server,virtue PC,XEN,virtuebox等。

在一台普通的PC上实现虚拟多台机器,必须考虑性能问题。相对而言,XEN占用系统资源很少,性能很高。在稳定性方面,Red Hat公司的企业版克隆CentOS可以保证该版本的XEN具有很高的稳定性。因而本平台选用CentOS 5.0自带的Xen 3.0.3-rc5-8.1.15.e。

三、实验平台结构实现

实验平台结构如图1所示,主机运行CentOS 5操作系统,通过网络与外界连接,主机通过XEN虚拟出多个虚拟机器,虚拟机器的个数由主机的性能决定,本文的并行计算课程实验平台实现了7台虚拟机器,其中6台用于并行程序的开发与调试,一台用于连接用户与6台并行程序开发与调试的虚拟机器。

图1 并行计算相关课程实验平台结构

(一)主机设置

如前所述,主机运行CentOS 5.0,并运行自带的Xen3.03。因而主机安装时选用标准的带XEN的安装即可。

主机可以运行在包含图形界面(GUI)的运行级别(run level)5,以方便学生使用。如果硬件配置较低,那么可以运行在不包含图形界面的运行级别(run level)3,以节约主机系统资源。

在各种运行级别(run level)下,都必须运行下列服务(service):

1.network——提供网络连接。

2.xend,xendomains,——运行XEN所必需。

3.nfs-提供子机的文件存储。

本文讨论的并行计算课程实验平台所采用的主机配备1G的虚拟内存。

(二)XEN设置

本平台包含7台虚拟服务器,其中一台提供路由和认证服务(router and auth),6台为mpich子机,这些服务器都由XEN虚拟实现。

其中,1_router是提供路由和认证服务的服务器,mpi_000~mpi_005为mpi子机。其中1_router服务器使用1个虚拟CPU,占用128M内存。用户可以通过1_router服务器登陆到任意的mpi_000~mpi005虚拟服务器。为了节约硬盘空间,mpi_000~mpi_005的xvdb使用同一个image文件,xvda为250M,包含了每个mpi子机的/root和/boot/etc等目录,centos4_mpi_usr.img文件包含了/usr等目录,内有gcc和mpich等并行程序开发调试环境。mpi_000~mpi_005每个虚拟服务器使用2个虚拟CPU,占用64M内存。占用内存的大小受主机的可用内存限制,如果主机内存超过1G,那么可以适当增加每个虚拟机的内存。mpi_000~mpi_005配置如下:

[root@why~]$cat/etc/xen/auto/mpi_000

#Automatically generated xen config file

name="mpi_000"

memory="64"

disk=['tap:aio:/data/virtual_system/mpi/mpi_000/centos4_root__mpi_000.img,xvda,w',\

'tap:aio:/data/virtual_system/common/centos4_mpi_usr.img,xvdb,r',\〗

vif=['mac=00:14:22:1f:f5:02,bridge=xenbr0',]

uuid="2b4abb80-0377-11dc-85fb-001a921191a7"

bootloader="/usr/bin/pygrub"

vcpus=2

on_reboot='restart'

on_crash='restart'

(三)mpi client machine设置

每个Mpi client machine都包含完整的gcc+mpich开发环境,目录结构包含xvda 和xvdb两个虚拟硬盘,其中svda包含了/,/boot和swap,共250M,xvdb是/usr目录,这是所有mpi client共享的一个只读硬盘。通过nfs mount的/home目录是所有mpi client共享的可写目录。

xvda内包含了mpi client的所有配置信息,为了安装和管理方便,mpi_000~mpi_005的xvda虚拟硬盘文件是完全相同的,如果要增加mpi client虚拟机,则只需要拷贝一个新的xvda虚拟硬盘文件即可,这样节省了client安装操作系统的时间,并且维护方便。为了实现这个目的,所有mpi client的配置要完全相同,但是mpi client的hostname和ip address必须唯一,下面说明了如何实现唯一的机器名(hostname)和ip地址(ip address)。

通过在/etc/hosts文件内加入虚拟机的物理地址,虚拟机的物理地址保存在主机的Xen配置中,虚拟机启动后,/etc/sysconfig/network和/etc/sysconfig/networkscripts/ifcfg-eth0会通过查询/etc/hosts中的物理地址得知自己的hostname和ip地址。

每个虚拟机共享的/usr目录里,包含有安装好的gcc和mpich。

所有的虚拟机/home通过nfs共享,这样有助于简化ssh登录认证。

[why@mpi_001~]$cat/etc/hosts

#Do not remove the following line,or various programs

#that require network functionality will fail.

127.0.0.1localhost.localdomain localhost

192.168.1.100 why.zjgsu.edu.cn    why

192.168.1.108 router.why.zjgsu.edu.cn    router

192.168.8.1 router.why.zjgsu.edu.cn    router

192.168.8.2 nfs.why.zjgsu.edu.cn    nfs

192.168.8.100 mpi_000.why.zjgsu.edu.cn    mpi_000 00:14:22:1f:f5:02

192.168.8.101 mpi_001.why.zjgsu.edu.cn    mpi_001 00:14:22:1f:f5:12

192.168.8.102 mpi_002.why.zjgsu.edu.cn    mpi_002 00:14:22:1f:f5:22

192.168.8.103 mpi_003.why.zjgsu.edu.cn    mpi_003 00:14:22:1f:f5:32

192.168.8.104 mpi_004.why.zjgsu.edu.cn    mpi_004 00:14:22:1f:f5:42

192.168.8.105 mpi_005.why.zjgsu.edu.cn    mpi_005 00:14:22:1f:f5:52

[why@mpi_001~]$/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=static

IPADDR=`grep'^[0-9]'/etc/hosts|grep-iw"$HOSTNAME"|awk'{print$1}'`

NETMASK=255.255.255.0

GATEWAY=192.168.8.1

(四)并行计算平台网络设置

如图1所示,并行计算平台分两个网络,其中mpi client使用192.168.8.*的内部网络,互相之间用SSH连接,外部网络将并行计算平台与用户所在网络相连,内外网络由虚拟机router来连接,虚拟机router有两块网卡,分别与内外网络相连。

用户在自己的工作网络,通过ssh或者vnc登录router,即可访问所有的mpi client,在mpi client中可以进行并行计算程序的编辑、编译、运行和调试等,每个mpi client都可以通过mpich调用所有共6个虚拟服务器的资源。

(五)账号认证设置

用户通过账号密码来登录服务器,根据并行计算平台的应用环境不同,有以下两种方法可以选择。

1.基于/etc/passwd。基于/etc/passwd的方法实现简单,适用于用户个数较少的情况下,由于所有的mpi client的xvda image文件完全相同,因而它们的passwd文件也相同,这样用户在所有的mpi client机器上的帐号和密码都相同。在mpi client之间,通过~/.ssh/auth/authorized_keys实现免密码登录,由于用户的home目录是nfs共享的,因而在一台mpi client上实现authorized_keys后所有的mpi client都可以凭密码登录了。

2.基于openldap。基于openldap[7]的认证方法适用于用户数量较多的情况下,此时在虚拟机router上实现openldap server,所有的mpi client通过openldap server来验证,这种方法初始配置较复杂,但用户较多时管理用户比较简单。

由于面向课程,考虑单用户使用方便,本文所讨论的并行计算课程实验平台选择了基于/etc/passwd方法来实现账号认证。

(六)登录与用户界面设置

如前所述,用户可以通过SSH[8]或VNC[9]的方法来登录虚拟机router,在router上访问所有的mpi client。

考虑到节约硬件资源,因而本平台选用较简单的mwm窗口管理器(windows manager),用户可以通过mwm的菜单方便的访问各mpi client。

四、平台使用方法

通过本文讨论的并行计算课程实验平台,学生可以在自己的个人电脑(PC)上进行并行计算的程序编译、运行和调试。学生可以通过SSH或者VNC方法来访问并行计算实验平台,登陆后界面如图2所示。

图2 并行计算课程实验平台登陆后界面

图3为在并行计算课程实验平台下编辑、编译、运行和调试一个计算Π的并行计算程序的过程。可以看出这个并行程序运行在6台服务器的12个CPU上。通过mpicc对cpi.c进行编译,通过mpirun运行并行程序,运行时选择12个CPU,通过hosts文件里包含的6台虚拟机的机器名来指定程序运行在哪些机器上,通过mpirun_dbg.gdb来调用gdb进行并行程序的调试。或者通过mpirun.ddd调用图形化的gdb进行更方便的调试。

图3 编辑、编译、运行和调试一个计算Π的并行计算程序

图4为虚拟机的资源使用情况。

图虚拟机的资源使用情况

图5 为在虚拟机mpi_005内看见的CPU信息。

图5 mpi_005内看见的CPU信息

图6为在虚拟机mpi_005内运行的所有进程。

图6 虚拟机mpi_005内运行的所有进程

图7显示了在主机上启动虚拟机的过程。

图7 在主机上手动启动虚拟机

虚拟机的管理可以通过图形界面的XEN管理器或者文本界面的xm命令完成,对于本文讨论的并行计算课程实验平台,图形界面的XEN管理器可以完成课程实验平台所需的各种功能。

五、总 结

本文介绍了一种完整的、低成本、高可靠、易管理的基于PC的并行计算课程实验平台,解决传统的实验平台系统硬件价格昂贵、维护复杂成本高、实验场地要求高、学生使用不方便等问题,为学习并行计算相关课程的学生提供一个稳定、随时可用的实验环境。本文介绍的平台基于源代码开放的XEN、Linux和MPICH,因而适合于在大学的并行计算相关课程里实现,对于在“多核”处理器的大环境下,培养高素质的计算机研究型和应用型人才具有重要的意义。

参考文献

[1]A.Migdalas,G.Toraldo,and V.Kumar.Nonlinear optimization and parallel computing[J].Parallel Computing,2003,29:375-391.

[2]C.Nevison.Parallel computing in the undergraduate curriculum[J].Computer,1995,28:51-56.

[3]P.Barham et al.,Xen and the art of virtualization[C].Proceedings of the nineteenth ACM symposium on Operating systems principles,Bolton Landing,NY,USA:ACM,2003:164-177.

[4]D.Clark.Open MP:A Parallel Standard for the Masses[J].IEEE Concurrency,1998,6:10-12.

[5]www.centos.org.The Community ENTerprise Operating System[EB].http://ww.centos.org/.

[6]W.Gropp,E.Lusk and A.Skjellum.Using MPI:Portable Parallel Programming with the Message Passing Interface[M].MIT Press,1994.

[7]V.Koutsonikola and A.Vakali.LDAP:framework,practices,and trends[J].Internet Computing,IEEE,2004,8:66-72.

[8]W.Yurcik and Chao Liu.A first step toward detecting SSH identity theft in HPC cluster environments:discriminating masqueraders based on command behavior[C].Cluster Computing and the Grid,2005.CCGrid 2005.IEEE International Symposium on,2005:111-120.

[9]T.Richardson et al.Virtual network computing[J].Internet Computing,IEEE,1998,2:33-38.

【注释】

[1]王慧燕,博士后,副教授,研究方向为图像处理、模式识别、医学信息学。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈