做过视频编码的同事在做codec测试的时候都应该有过对PC机性能差的抱怨。其实即使PC测试机的性能非常的好,比如双核 3G CPU 2G内存应该还是无法满足codec的测试的。因为codec测试运算量太大了。
所以如何采用多台电脑同时来完成这么巨大的运算量呢,大家也许会说采用云计算。充分利用所有闲置电脑协同合作正式SGE实现的功能。
SGE的主机类型有:主控主机,管理主机,提交主机,执行主机。每台主机允许兼有多种功能。操作最多的就是主控主机了。 下面看看主控主机的运行情况:
[root@sge-qmaster ~]# qstat -f
queuename qtype resv/used/tot. load_avg arch states
---------------------------------------------------------------------------------
all.q@Brea BIP 0/1/1 0.01 lx24-x86
1232 0.55500 Wels_SVC_e root r 02/05/2010 13:48:21 1
---------------------------------------------------------------------------------
all.q@Carl BIP 0/0/1 -NA- lx24-x86 au
---------------------------------------------------------------------------------
all.q@Dena BIP 0/1/2 0.12 lx24-x86
1230 0.55500 Wels_SVC_e root r 02/05/2010 13:48:21 1
---------------------------------------------------------------------------------
all.q@Eddy BIP 0/1/2 0.16 lx24-x86
1231 0.55500 Wels_SVC_e root r 02/05/2010 13:48:21 1
---------------------------------------------------------------------------------
all.q@Femi BIP 0/1/1 0.31 lx24-x86
1234 0.55500 Wels_SVC_e root r 02/05/2010 13:48:21 1
---------------------------------------------------------------------------------
all.q@Gary BIP 0/0/2 0.00 lx24-x86
---------------------------------------------------------------------------------
all.q@High BIP 0/1/2 0.12 lx24-x86
1235 0.55500 Wels_SVC_e root r 02/05/2010 13:48:21 1
从 上面可以看到有5台执行主机在同时完成一个任务。 r 表示running,正在运行。
下面我简单介绍下如何安装SGE. 过程还是有点复杂的。
1. 获取SGE最新安装包。 http://www.sun.com/software/sge/
一般下载两个 包就可以了 sge-6_2u2_1-bin-linux24-i586.tar.gz sge-6_2u2-common.tar.gz
找 一台PC机作为管理主机。 建立/opt/sge62u2_1/ 目录, 把上面两个包移动到该目录上,最好采用二进制方式移动。 解压这两个包, tar -xzvf *.tar.gz 解压后生成两个安装文件: install_qmaster , install_execd。
2. 在主控主机上添加一个sgeadmin用户, 注意所有的userID需要相同。useradd sgeadmin -g root -u 501 .
3. 在/etc/hosts 文件中添加如下内容:
[root@sge-qmaster ~]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
#127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost0.localdomain localhost0
10.224.174.11 sge-qmaster.webex.com sge-qmaster
10.224.174.13 Carl
10.224.174.12 Brea
10.224.174.14 Dena
10.224.174.15 Eddy
10.224.174.16 Femi
10.224.174.17 Gary
10.224.174.18 High
注意每台执行主机的/etc /hosts内容应该相同。
4. 主机名改成sge-qmaster, 其他的执行主机名分别改为 Carl, Brea, Dena, Eddy, Femi, Gary, High. 当然名字可以取成其他的,但是每台的/etc/hosts内容需要相同。 在/etc/sysconfig/network 中 修改主机名。
[root@sge-qmaster ~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
#HOSTNAME=localhost.localdomain
HOSTNAME=sge-qmaster
[root@sge-qmaster ~]#
5. 因为主控主机需要使用qsub提交任务以及分配任务。所有每台主机的rsh,rlogin需要互通。 用来发送消息。 如何配置自己查资料吧。
[root@sge-qmaster ~]# rsh Brea
Last login: Fri Feb 5 20:36:30 from 10.224.174.144
[root@Brea ~]#
6. 配置sge的通信端口, 每台主机都需要相同的通信端口。 在/etc/services中配置。
###SGE service
sge_qmaster 10536/tcp
sge_execd 10537/tcp
7. 修改环境变量, 在.bash_profile中添加
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/opt/sge62u2_1:/opt/sge62u2_1/bin/lx24-x86:/opt/SDK/bin:/opt/SDK
SGE_ROOT=/opt/sge62u2_1;export SGE_ROOT
SGE_CELL=SVC_SGE1;export SGE_CELL
SGE_QMASTER_PORT="10536";export SGE_QMASTER_PORT
SGE_EXECD_PORT="10537";export SGE_EXECD_PORT
JAVA_HOME=/opt/SDK;export JAVA_HOME
PATH=$PATH:$SGE_ROOT/bin
export PATH
unset USERNAME
~
8. 运行./install_qmaster 按照提示安装。
过程比较繁琐,安装完成后可以提交下任务试试, qsub *.sge / qsub *.sh 方式提交。 最好提交一个运行时间长点的,要不然一下就执行完了不好查询。 提交任务后用 qstat -f 查看运行情况,如我上面所示的那样有r的就说明已经可以使用的。 其他的自己慢慢研究吧。