第一章绪论全部为PC,则可能平均每一天都会有机器崩溃。当然,对于普通研究组而言,情况没有那么夸张。读者根据自已的需要决定是选择PC还是服务器。控制节点。集群中需要多台计算机相互协作的完成任务,因此必须有一台计算机作为“核心”领导者,控制其它的计算机,为其它的计算机分配计算任务,调整负载等等。这个节点习惯称为控制节点。一般而言,控制节点可以选一台CPU、内存一般(512MB内存足!)的机器以节约成本,但是必须有大容量的硬盘来存储用户的文件,即使是很小的组也一般最好是1TB以上(貌似更小容量的硬盘已经没有卖的了),根据本组的人员数量和科研任务决定,作者知道某个分子动力学研究组每个月都会有几个TB的轨迹文件产生。计算节点。计算节点就是集群中直接进行计算任务的计算机,这是决定计算机集群性能的最关键因素之一。自然,CPU主频越高,内存越大,总线带宽越高,对计算就越有利。当然,具体的任务对这些硬件的要求不同。对于分子动力学模拟计算,内存的要求很低,一般1~4GB的内存就可以,但是要求CPU具有强大的计算能力,最好在8核(或双4核)、主频2.5GHz以上。对于量子化学计算,除了要求有强劲的CPU外,还要求有高容量和高读写速度的内存、硬盘,因为量子化学计算常常需要大容量的缓存文件,如果存储容量不够,会对计算速度带来很大的影响。通常,内存最好在16GB以上,如果经常计算金属有机化合物,内存32GB也不嫌多;硬盘最好在1TB以上,特别是需要大量相关方法计算(如MP2或CCSD(T)计算)时,硬盘的读写速度也十分重要。有些计算,诸如分子对接这种计算,对计算机性能要求很低,普通的高端配置即可。现代计算机有32位,64位等多种架构。64位架构的机器当然是最好,但是大多数研究组可能无法承担它的购买成本。现在的计算主流是选用虚拟64位的机器,如em64t和AMD64等。本教程就是以虚拟64位机器为例介绍的,即所谓x86_64或者amd64机器。通信网络。顾名思义,就是集群中连接各个节点的网络。这是决定计算机集群性能的另一个最关键因素。在进行并行计算时,网络速度是整个计算速度的瓶颈。这个网络,当然可以选择使用普通实验室中的局域网连接即“宽带网加路由器”结构。集群中,这个网的带宽最低不能低于百兆,即至少在千兆以上,再低的网在计算时可能会出显各种由于网络延时过长而导致的错误。如果读者能使用第3页
第一章 绪论 第 3 页 全部为 PC,则可能平均每一天都会有机器崩溃。当然,对于普通研究组而言, 情况没有那么夸张。读者根据自己的需要决定是选择 PC 还是服务器。 控制节点。集群中需要多台计算机相互协作的完成任务,因此必须有一台计 算机作为“核心”领导者,控制其它的计算机,为其它的计算机分配计算任务, 调整负载等等。这个节点习惯称为控制节点。一般而言,控制节点可以选一台 CPU、内存一般(512MB 内存足矣!)的机器以节约成本,但是必须有大容量 的硬盘来存储用户的文件,即使是很小的组也一般最好是 1TB 以上(貌似更小 容量的硬盘已经没有卖的了),根据本组的人员数量和科研任务决定,作者知道 某个分子动力学研究组每个月都会有几个 TB 的轨迹文件产生。 计算节点。计算节点就是集群中直接进行计算任务的计算机,这是决定计算 机集群性能的最关键因素之一。自然,CPU 主频越高,内存越大,总线带宽越 高,对计算就越有利。当然,具体的任务对这些硬件的要求不同。对于分子动力 学模拟计算,内存的要求很低,一般 1~4GB 的内存就可以,但是要求 CPU 具 有强大的计算能力,最好在 8 核(或双 4 核)、主频 2.5GHz 以上。对于量子化 学计算,除了要求有强劲的 CPU 外,还要求有高容量和高读写速度的内存、硬 盘,因为量子化学计算常常需要大容量的缓存文件,如果存储容量不够,会对计 算速度带来很大的影响。通常,内存最好在 16GB 以上,如果经常计算金属有机 化合物,内存 32GB 也不嫌多;硬盘最好在 1TB 以上,特别是需要大量相关方 法计算(如 MP2 或 CCSD(T)计算)时,硬盘的读写速度也十分重要。有些计算, 诸如分子对接这种计算,对计算机性能要求很低,普通的高端配置即可。 现代计算机有 32 位,64 位等多种架构。64 位架构的机器当然是最好,但是 大多数研究组可能无法承担它的购买成本。现在的计算主流是选用虚拟 64 位的 机器,如 em64t 和 AMD64 等。本教程就是以虚拟 64 位机器为例介绍的,即所 谓 x86_64 或者 amd64 机器。 通信网络。顾名思义,就是集群中连接各个节点的网络。这是决定计算机集 群性能的另一个最关键因素。在进行并行计算时,网络速度是整个计算速度的瓶 颈。这个网络,当然可以选择使用普通实验室中的局域网连接即“宽带网加路由 器”结构。集群中,这个网的带宽最低不能低于百兆,即至少在千兆以上,再低 的网在计算时可能会出显各种由于网络延时过长而导致的错误。如果读者能使用
第一章绪论高性能的集群专用网络,如Myrinet或者InfinitBand,那当然更好,这可以大大地提升集群的并行效率!不过,这是要很高的成本的。维护部件。这是维持集群能够正常工作的部件,包括散热系统如空调和电源、机柜等。因为集群常常要长时间高功耗的工作,如果不能保持适当的温度和稳定的电源,计算机内部出错的概率就会大大的提高,轻则死机导致作业失败,重则烧毁硬件造成损失。特别是热天,集群高速运转时会有很高的温度,一定要做好降温的工作;如果有断电通知,记得事先将总插头拔下,以免恢复供电时瞬时电流的冲击将机器烧毁。好了,下面我们来讨论一下构建集群所需要的软件基础。离开之前,我们必须声明,本教程介绍的是面向科学计算用户的“高性能集群(HighPerformanceCluster,HPC)”,而不是面向企业的“高可用集群(HighAvailabilityCluster,HAC)”。后者常常用于建立企业网站,服务器,大型数据库(如Oracle数据库)。这两者,应该来说,完全不同!S1.2计算机集群的软件结构有了硬件后,要真正实现集群,还必须有优秀的软件进行支持。集群的软件结构包括以下几部分:操作系统。虽然世界top100的集群中确实有Windows集群,但是我们强烈推荐读者使用Linux操作系统。Linux免费,方便,最重要的是效率高,很多计算化学软件都是专门为Linux编写的,而且Linux非常适合于程序开发和批量处理,这都是Windows难以实现的,即使能,往往也比较臃肿。Linux操作系统也有很多不同的分支。比较常见的就是RedHat系列,但是本教程不使用它。我们选择Debian操作系统,与RedHat相比它有很多优点,最大的优点是体积小,安装完系统后只有不到100MB,并且随时可以扩充新的功能,没有几余的文件,因此非常适合于科学计算。关于Debian可以在网上找到很多信息。本教程不会直接讲解Linux或者Debian的使用方法,对Linux不熟悉的读者可以参考:王旭。Debian标准教程。北京:人民邮电出版社,2009网络通信系统。这是集群得以成为“集群”的核心系统。没有这个系统,集第4页
第一章 绪论 第 4 页 高性能的集群专用网络,如 Myrinet 或者 InfinitBand,那当然更好,这可以大大 地提升集群的并行效率!不过,这是要很高的成本的。 维护部件。这是维持集群能够正常工作的部件,包括散热系统如空调和电源、 机柜等。因为集群常常要长时间高功耗的工作,如果不能保持适当的温度和稳定 的电源,计算机内部出错的概率就会大大的提高,轻则死机导致作业失败,重则 烧毁硬件造成损失。特别是热天,集群高速运转时会有很高的温度,一定要做好 降温的工作;如果有断电通知,记得事先将总插头拔下,以免恢复供电时瞬时电 流的冲击将机器烧毁。 好了,下面我们来讨论一下构建集群所需要的软件基础。 离开之前,我们必须声明,本教程介绍的是面向科学计算用户的“高性能集群(High Performance Cluster,HPC)”,而不是面向企业的“高可用集群(High Availability Cluster, HAC)”。后者常常用于建立企业网站,服务器,大型数据库(如 Oracle 数据库)。这两 者,应该来说,完全不同! §1.2 计算机集群的软件结构 有了硬件后,要真正实现集群,还必须有优秀的软件进行支持。集群的软件 结构包括以下几部分: 操作系统。虽然世界 top100 的集群中确实有 Windows 集群,但是我们强烈 推荐读者使用 Linux 操作系统。Linux 免费,方便,最重要的是效率高,很多计 算化学软件都是专门为 Linux 编写的,而且 Linux 非常适合于程序开发和批量处 理,这都是 Windows 难以实现的,即使能,往往也比较臃肿。 Linux 操作系统也有很多不同的分支。比较常见的就是 RedHat 系列,但是 本教程不使用它。我们选择 Debian 操作系统,与 RedHat 相比它有很多优点,最 大的优点是体积小,安装完系统后只有不到 100MB,并且随时可以扩充新的功 能,没有冗余的文件,因此非常适合于科学计算。关于 Debian 可以在网上找到 很多信息。本教程不会直接讲解 Linux 或者 Debian 的使用方法,对 Linux 不熟 悉的读者可以参考: 王旭。Debian 标准教程。北京:人民邮电出版社,2009 网络通信系统。这是集群得以成为“集群”的核心系统。没有这个系统,集
第一章绪论群只是几台互不相干的计算机组成的“机群”。这里的网络通信系统,不止是TCP/IP协议等网络连接功能,还包括文件共享系统、远程登录系统、信息管理系统等,只有这样才能使集群中的计算机成为一个相互协作的整体。这些功能可以直接使用Debian操作系统的组件完成,并行计算系统。这是实现高性能计算的平台。并行计算系统是实现某种并行计算协议的软件,各种并行计算的程序都要调用并行计算的函数和库才能运行,例如量子化学软件GAMESS,NWChem和分子动力学软件NAMD,Gromacs,Amber等。它本质上是一种通信协议。本教程将使用MPICH2作为并行计算系统。作业管理系统。这是管理集群的工具。它负责计算作业的提交、管理、控制,集群资源的分配、调度,用户权限的分配、区分等,对于管理、维护特别是使用集群具有重要的意义。本教程使用免费软件TORQUE和Maui实现。应用软件。这是集群的实用部分,比如Gaussian,NAMD和各种编译器等等。本教程涉及到的软件,除了Windows操作系统和Gaussian等以外,所有软件均为免费软件!在继续之前,有一些话需要交代给读者。Linux系列的软件和其它免费学术类软件都是自由开发的,因此,它们的不同版本之间可能有某些不兼容情形,一些安装时候发生的状况和本教程所描述的可能有很大的不同。作者曾经帮人装过NWChem,因为作者本人安装过NWChem5.2,没有遇到过什么问题。可是别人安装的是6.0版本,在安装的时候碰到了无数编译错误,最后通过作者手动修改了NWChem6.0的源码才得以解决(有经验的读者应该意识到这是编译器版本的问题)。读者在继续之前,应该意识到在组建集群的过程中可能会遇到巨大的困难。这时,可以在网上搜索或咨询身边有经验的人。不要灰心,一旦集群组建完成,读者的计算机水平会有质的飞跃!好了,现在说一下本教程的集群的各种信息:1个控制节点,8个计算节点,千兆局域网,安装Debian6系统,安装有:Gaussian,Gamess,NWChem,NAMDGromacs,Autodock,以及GNU和intel编译器等等,这个集群可以实现各种计算化学软件的运行,并提供完整的编程开发功能!第5页
第一章 绪论 第 5 页 群只是几台互不相干的计算机组成的“机群”。这里的网络通信系统,不止是 TCP/IP 协议等网络连接功能,还包括文件共享系统、远程登录系统、信息管理 系统等,只有这样才能使集群中的计算机成为一个相互协作的整体。这些功能可 以直接使用 Debian 操作系统的组件完成。 并行计算系统。这是实现高性能计算的平台。并行计算系统是实现某种并行 计算协议的软件,各种并行计算的程序都要调用并行计算的函数和库才能运行, 例如量子化学软件 GAMESS,NWChem 和分子动力学软件 NAMD,Gromacs, Amber 等。它本质上是一种通信协议。本教程将使用 MPICH2 作为并行计算系 统。 作业管理系统。这是管理集群的工具。它负责计算作业的提交、管理、控制, 集群资源的分配、调度,用户权限的分配、区分等,对于管理、维护特别是使用 集群具有重要的意义。本教程使用免费软件 TORQUE 和 Maui 实现。 应用软件。这是集群的实用部分,比如 Gaussian,NAMD 和各种编译器等 等。 本教程涉及到的软件,除了 Windows 操作系统和 Gaussian 等以外,所有软 件均为免费软件! 在继续之前,有一些话需要交代给读者。Linux 系列的软件和其它免费学术 类软件都是自由开发的,因此,它们的不同版本之间可能有某些不兼容情形,一 些安装时候发生的状况和本教程所描述的可能有很大的不同。作者曾经帮人装过 NWChem,因为作者本人安装过 NWChem5.2,没有遇到过什么问题。可是别人 安装的是 6.0 版本,在安装的时候碰到了无数编译错误,最后通过作者手动修改 了 NWChem6.0 的源码才得以解决(有经验的读者应该意识到这是编译器版本的 问题)。读者在继续之前,应该意识到在组建集群的过程中可能会遇到巨大的困 难。这时,可以在网上搜索或咨询身边有经验的人。不要灰心,一旦集群组建完 成,读者的计算机水平会有质的飞跃! 好了,现在说一下本教程的集群的各种信息:1 个控制节点,8 个计算节点, 千兆局域网,安装 Debian6 系统,安装有;Gaussian, Gamess, NWChem, NAMD, Gromacs, Autodock,以及 GNU 和 intel 编译器等等,这个集群可以实现各种计算 化学软件的运行,并提供完整的编程开发功能!
第一章绪论说了那么多,读者读完本教程并搭建完成了二个计算机集群后,对于使用集群的人,集群无非是这样一个东西:..他装了个集群,在隔壁房间里,好像是好多台计算机,有啥计算节点控制节点的,好像还装得神马Linux,我也不懂。我就知道,我每天在我的实验室,打开Win7,用putty登陆到集群,输入命qstat,我发现有两个Gaussian和一个NAMD任务在运行。哦,我前天算的那个NAMD的任务已经结束了,算了七天可算完了,把输出文件下下来看看。我这有还个gif,传上去,好,算上了。现在关了putty,分析分析NAMD的轨迹吧...”好了,概念性的东西到此结束,下面,我们组建集群的激动人心的过程就开始了!第6页
第一章 绪论 第 6 页 说了那么多,读者读完本教程并搭建完成了一个计算机集群后,对于使用集 群的人,集群无非是这样一个东西: “.他装了个集群,在隔壁房间里,好像是好多台计算机,有啥计算节点控制节点的, 好像还装得神马 Linux,我也不懂。我就知道,我每天在我的实验室,打开 Win7,用 putty 登陆到集群,输入命令 qstat,我发现有两个 Gaussian 和一个 NAMD 任务在运行。哦,我前 天算的那个 NAMD 的任务已经结束了,算了七天可算完了,把输出文件下下来看看。我这 有还个 gjf,传上去,好,算上了。现在关了 putty,分析分析 NAMD 的轨迹吧.” 好了,概念性的东西到此结束,下面,我们组建集群的激动人心的过程就开 始了!
第二章集群的系统配置第二章集群的系统配置$2.1操作系统的安装到2011年5月时,Debian的最新版本为6.0,可以在Debian社区的网站http://cdimage.debian.org上获得其DVD镜像文件。根据读者的机器架构下载到相应的镜像,由于我们的机器是amd64架构,只需要下载第一个debian-6.0.1a-amd64-CD-1.iso当然,完整的镜像包括50多个iso文件,但出于我们组建集群的目的只需要第一个就可以。如果读者有兴趣可以全部下载下来。将第一个iso刻录为DVD光盘,利用光盘进行安装。注意,安装操作系统的过程中,一定要保证外网的连通,因为安装过程需要在外网下载一些组件。安装操作系统的步骤对控制节点和全部计算节点基本一致,叙述如下。注意:读者在初学时,可以只装两台机器:一台compuchem,一台nodeo21,等把全部细节弄懂之后,再根据自己的需要扩充新的节点。事实上,如果读者的计算节点的硬件完全相同的话,完全可以在配置好一台计算节点以后,用Ghost软件拷贝到其它所有机器上,然后将其IP(修改/etc/network/interface)和主机名(修改/etc/hostname)修改成正确的即可。当然,逐台计算机修改IP和主机名也可以使用shell脚本在控制节点上轻松的实现,因此,工作量不是问题。下面提到的“在全部计算节点上…”是为了让读者明确的知道,哪些操作只在控制节点上做,哪些只在计算节点上做,哪些在全部节点上做。1.将Debian6.0的光盘插入光驱,在BIOS中选择光盘启动,启动计算机。2.如启动成功,屏幕出现Debian的logo,选择textmode按Enter键开始安装。3.语言选择American,后面的选项根据具体情况选择,这里选择默认选项。4.进入Network设置界面时,选择Cancle取消DHCP,选择手动安装网络,在随后将出现一系列对话框,分别设置IP地址、子网掩码、默认网关、DNS服务器、主机名、域名。其中IP地址、主机名设置如表2-1-1。其它选项根据实验室的实际情况设定。第7页
第二章 集群的系统配置 第 7 页 第二章 集群的系统配置 §2.1 操作系统的安装 到 2011 年 5 月时,Debian 的最新版本为 6.0,可以在 Debian 社区的网站 http://cdimage.debian.org 上获得其 DVD 镜像文件。根据读者的机器架构下载 到相应的镜像,由于我们的机器是 amd64 架构,只需要下载第一个: debian-6.0.1a-amd64-CD-1.iso 当然,完整的镜像包括 50 多个 iso 文件,但出于我们组建集群的目的只需 要第一个就可以。如果读者有兴趣可以全部下载下来。 将第一个 iso 刻录为 DVD 光盘,利用光盘进行安装。注意,安装操作系统 的过程中,一定要保证外网的连通,因为安装过程需要在外网下载一些组件。安 装操作系统的步骤对控制节点和全部计算节点基本一致,叙述如下。 注意:读者在初学时,可以只装两台机器:一台 compuchem,一台 node021,等把全部 细节弄懂之后,再根据自己的需要扩充新的节点。事实上,如果读者的计算节点的硬件完全 相同的话,完全可以在配置好一台计算节点以后,用 Ghost 软件拷贝到其它所有机器上,然 后将其 IP(修改/etc/network/interface)和主机名(修改/etc/hostname)修改成正确的即可。 当然,逐台计算机修改 IP 和主机名也可以使用 shell 脚本在控制节点上轻松的实现,因此, 工作量不是问题。下面提到的“在全部计算节点上.”是为了让读者明确的知道,哪些操 作只在控制节点上做,哪些只在计算节点上做,哪些在全部节点上做。 1. 将 Debian 6.0 的光盘插入光驱,在 BIOS 中选择光盘启动,启动计算机。 2. 如启动成功,屏幕出现 Debian 的 logo,选择 text mode 按 Enter 键开始 安装。 3. 语言选择 American,后面的选项根据具体情况选择,这里选择默认选项。 4. 进入 Network 设置界面时,选择 Cancle 取消 DHCP,选择手动安装网络, 在随后将出现一系列对话框,分别设置 IP 地址、子网掩码、默认网关、DNS 服 务器、主机名、域名。其中 IP 地址、主机名设置如表 2-1-1。其它选项根据实验 室的实际情况设定