หลังจากติดตั้ง 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 จากการรัน ไฟล์จึงว่างเปล่า