การใช้งานเบื้องต้น Sun Grid Engine « SpaLinux.com – สปาลีนุกซ์
การใช้งานเบื้องต้น Sun Grid Engine
Saturday 29 January 2011 @ 4:22 pm

หลังจากติดตั้ง Sun Grid ทั้งเครื่อง qmaster และ execd host เรียบร้อยแล้ว บทความนี้จะแนะนำวิธีการใช้งานเบื้องต้นของ Sun Grid Engine เพื่อดูสถานะของเครื่อง งานที่รัน และวิธีการส่งงานอย่างง่ายๆ

ตั้งค่าตัวแปร setting.sh

ต้องรัน source ไฟล์ /gridware/sge/MyCell/common/settings.sh เพื่อตั้งค่าตัวแปรของ sge ก่อนที่จะรันคำสั่ง

วิธีการรัน ใช้คำสั่ง source หรือ . เว้นวรรคแล้วตามด้วยชื่อไฟล์ /gridware/sge/MyCell/common/settings.sh

[root@cent55-sge ~]# . /gridware/sge/MyCell/common/settings.sh

ลองรันคำสั่ง set เพื่อดูค่าตัวแปรที่ถูกตั้งค่า เกี่ยวกับ sge

[root@cent55-sge ~]# set | grep -i sge
MANPATH=/gridware/sge/man:/usr/share/man/en:/usr/share/man:/usr/local/share/man
PATH=/gridware/sge/bin/lx24-amd64:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
SGE_CELL=MyCell
SGE_CLUSTER_NAME=MyCluster
SGE_ROOT=/gridware/sge

คำสั่ง qconf ดูคอนฟิก

ใช้คำสั่ง qconf ตามด้วยออปชั่น เพื่อดูค่าคอนฟิกต่างๆ ของ sge

รันคำสั่ง qconf -ss เพื่อดูชื่อเครื่องที่มีสิทธิส่งงานหรือใช้คำสั่ง qsub ได้ (show a list of all submit hosts)

[root@cent55-sge ~]# qconf -ss
cent55-node1.spalinux.com
cent55-node2.spalinux.com
cent55-sge.spalinux.com

รันคำสั่ง qconf -sel เพื่อดูชื่อเครื่องที่ทำหน้าที่รันงาน (show a list of all exec servers)

[root@cent55-sge ~]# qconf -sel
cent55-node1.spalinux.com
cent55-node2.spalinux.com

คำสั่ง qstat ดูสถานะ

ใช้คำสั่ง qstat ตามด้วยออปชั่น เพื่อดูสถานะของงาน (job) และ queue ในการรันงาน

รันคำสั่ง qstat -f เพื่อดูสถานะของเครื่อง execd host และงานที่รัน

[root@cent55-sge ~]# qstat -f
queuename                      qtype resv/used/tot. load_avg arch          states
---------------------------------------------------------------------------------
all.q@cent55-node1.spalinux.co BIP   0/0/1          0.00     lx24-amd64
---------------------------------------------------------------------------------
all.q@cent55-node2.spalinux.co BIP   0/0/1          0.34     lx24-amd64

ทดสอบการส่ง job

เริ่มต้นจะทดลองส่ง job แบบง่ายๆ รันไฟล์ simple.sh ที่มาจากการติดตั้งโปรแกรม Sun Grid Engine

ไฟล์ simple เป็น shell script ที่รันคำสั่ง date รอ (sleep) 20 วินาที แล้วรันคำสั่ง date อีกครั้ง

[root@cent55-sge ~]# cat /gridware/sge/examples/jobs/simple.sh
#!/bin/sh
#
#
# (c) 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
# This is a simple example of a SGE batch script
# request Bourne shell as shell for job
#$ -S /bin/sh
#
# print date and time
date
# Sleep for 20 seconds
sleep 20
# print date and time again
date

ใช้คำสั่ง qsub ตามด้วยชื่อไฟล์ที่ต้องการรัน

[root@cent55-sge ~]# qsub /gridware/sge/examples/jobs/simple.sh
Your job 206 ("simple.sh") has been submitted

ใช้คำสั่ง qstat -f เพื่อดูสถานะของ job

[root@cent55-sge ~]# qstat -f
queuename                      qtype resv/used/tot. load_avg arch          states
---------------------------------------------------------------------------------
all.q@cent55-node1.spalinux.co BIP   0/0/1          0.00     lx24-amd64
---------------------------------------------------------------------------------
all.q@cent55-node2.spalinux.co BIP   0/0/1          0.09     lx24-amd64
############################################################################
 - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS
############################################################################
    206 0.00000 simple.sh  root         qw    01/29/2011 15:43:06     1

ทดลองพิมพ์คำสั่ง qstat -f ไปเรื่อยๆ ช่วงแรก job 206 จะอยู่ในสถานะ PENDING JOBS คือรอการรัน

ผ่านไปไม่นาน สถานะของ job 206 จะเริ่มรันบนเครื่อง execd host ในตัวอย่างนี้รันบนเครื่อง node1

[root@cent55-sge ~]# qstat -f
queuename                      qtype resv/used/tot. load_avg arch          states
---------------------------------------------------------------------------------
all.q@cent55-node1.spalinux.co BIP   0/1/1          0.00     lx24-amd64
    206 0.55500 simple.sh  root         r     01/29/2011 15:43:15     1
---------------------------------------------------------------------------------
all.q@cent55-node2.spalinux.co BIP   0/0/1          0.09     lx24-amd64

หากล็อกอินเครื่อง node1 แล้วใช้คำสั่ง ps  จะเห็นโปรเซสของ job 206

[root@cent55-node1 ~]# ps -ef
...
sgeadmin  2192  2129  0 15:43 ?        00:00:00 sge_shepherd-206 -bg
root      2193  2192  0 15:43 ?        00:00:00 -sh /gridware/sge/MyCell/spool/cent55-node1/job_scripts/206
root      2218  2193  0 15:43 ?        00:00:00 sleep 20
root      2221  1754  0 15:43 pts/0    00:00:00 ps -ef

ดูไฟล์โปรเซสที่รันบนเครื่อง node1 ซึ่งก็คือไฟล์ simple.sh นั่นเอง

[root@cent55-node1 ~]# cat /gridware/sge/MyCell/spool/cent55-node1/job_scripts/206
#!/bin/sh
#
#
# (c) 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
# This is a simple example of a SGE batch script
# request Bourne shell as shell for job
#$ -S /bin/sh
#
# print date and time
date
# Sleep for 20 seconds
sleep 20
# print date and time again
date

หลังจากรันงานเสร็จสิ้น สถานะ job 206 ก็จะหายไปจากคำสั่ง qstat

[root@cent55-sge ~]# qstat -f
queuename                      qtype resv/used/tot. load_avg arch          states
---------------------------------------------------------------------------------
all.q@cent55-node1.spalinux.co BIP   0/0/1          0.00     lx24-amd64
---------------------------------------------------------------------------------
all.q@cent55-node2.spalinux.co BIP   0/0/1          0.09     lx24-amd64

ผลลัพธ์ที่ได้จากการรันไฟล์ simple.sh จะถูกเก็บไว้บนเครื่อง execd host ที่ทำหน้าที่รัน เช่นในที่นี้คือบน node1

ไฟล์ simple.sh.o206 เก็บผลลัพธ์ standard output จากการรัน job 206

[root@cent55-node1 ~]# cat simple.sh.o206
Sat Jan 29 15:43:14 ICT 2011
Sat Jan 29 15:43:34 ICT 2011

ไฟล์ simple.sh.e206 เก็บผลลัพธ์ standard error จากการรัน job

[root@cent55-node1 ~]# cat simple.sh.e206

ในที่นี้ไม่มี error จากการรัน ไฟล์จึงว่างเปล่า

ข้อมูลอ้างอิง





Leave a comment