Languages
Menus
Search
การใช้งาน MPICH2
MPICH2 สำหรับ GNU คอมไพล์เลอร์
คอมไพล์เลอร์โปรแกรมคุณ
MPICH2 สำหรับ GNU คอมไพลเลอรติดตั้งอยู่ที่์ /share/apps/mpich2/gnu คำแนะนำการใช้งานต่อไปนี้จะเป็นแบบทีละขั้นตอนอย่างละเอียด เพื่อที่จะคอมไพล์โค้ดของคุณ ให้พิมพ์ path แบบเต็มของคอมไพล์เลอร์ ที่คุณจะนำมาใช้ตามภาษาของโปรแกรมคุณ โปรแกรมตัวอย่างที่จะนำมาสาธิตในคู่มือการใช้งานนี้คือ cpi.c
[user@tera mpich2]$ /share/apps/mpich2/gnu/bin/mpicc -o cpi cpi.c
จากตัวอย่างคำสั่งด้านบน ข้อความที่มีสีส้มหมายถึงโค้ดของโปรแกรม MPI และข้อความสีเขียวหมายถึงชื่อโปรแกรมที่สามารถประมวลผลได้ ถ้าคุณต้องการตัวอย่างโค้ดโปรแกรม MPI สามารถดาวน์โหลดได้ที่นี่
ประมวลผลโปรแกรม
หลังจากที่คอมไพล์โปรแกรมของคุณเีรียบร้อยแล้วนั้น คุณจำเป็นต้องส่งงานมาที่ระบบกระจายงาน (scheduling system) โดยคลัสเตอร์นี้ใช้ SGE (Sun Grid Engine) เป็นระบบกระจายงาน วิธีการที่จะประมวลผลโปรแกรมแสดง เป็นทีละขั้นตอนดังต่อไปนี้
สร้าง job submission สคริปต์สำหรับตัวกระจายงาน SGE ด้วยโปรแกรมสร้างเอกสารที่คุณถนัด เช่น vi หรือว่า nano
[user@tera mpich2]$ vi mpich2_test.job
ตัวอย่างเนื้อหาที่เขียนลงใน job สคริปต์ คุณสามารถศึกษาเป็นตัวอย่างได้ โดยคุณจะต้องตรวจสอบข้อมูลว่าตำแหน่งโปรแกรมของคุณอยู่ที่ใด แล้วให้ระบุที่ตัวแปร APP และ argument ของโปรแกรมที่ตัวแปร ARG สำหรับตัวแปร $NSLOTS และ $TMPDIR ระบบกระจายงานจะเป็นตัวให้ค่าตัวแปรเหล่านี้
#!/bin/bash
#$ -cwd
#$ -S /bin/bash
#$ -j y
export MPICH2_HOME=/share/apps/mpich2/intel
export MPICH2_BIN=$MPICH2_HOME/bin
export MPICH2_CONF="$HOME/.mpd.conf"
APP=/home/user1/cpi
if [ ! -r $MPICH2_CONF ]; then
SECRET=`mkpasswd -l 7 -s 0`
echo "secretword=$SECRET" > $MPICH2_CONF
chmod 600 $MPICH2_CONF
fi
$MPICH2_BIN/mpdboot -n "$NHOSTS" -f "$TMPDIR/machines"
$MPICH2_BIN/mpiexec -l -machinefile $TMPDIR/machines -n $NSLOTS $APP
jobs=`$MPICH2_BIN/mpdlistjobs`
if [ X"$jobs" = X ]; then
$MPICH2_BIN/mpdallexit
fi
เวลาที่จะ้ส่งงานไปที่ระบบกระจายงาน SGE จะต้องมีการกำหนดตัวเลือกเพิ่มเติมในขณะส่งงานไปที่ระบบกระจายงาน เพราะ่ว่าโปรแกรมนี้จะเป็นโปรแกรมแบบขนาน คุณจะต้องกำหนดสภาพแวดล้อมของระบบกระจายงานให้เป็นแบบขนาน (ที่เน้นสีเขียว)และจำนวนโปสเซสเซอร์ที่ต้องใช้ในการประมวลผล (ที่เน้นที่ส้ม)ด้วยตัวเลือก
-peคุณสามารถที่จะระบุคิวอื่นที่นอกเหนือจากคิวมาตราฐานด้วยตัวเลือก-qคุณสามารถศึกษาการใช้งานคำสั่งของ SGE เพิ่มเติมได้ที่ SGE Usage[user@tera mpich2]$ qsub -pe mpich 4 mpich2_test.job
แสดงสถานะการทำงานของงานที่ส่งไปที่ระบบกระจายงาน
[user@tera mpich2]$ qstat
ผลลัพทธ์และข้อความการทำงานผิดพลาดของโปรแกรมจะถูกสร้างที่ไดเร็กทอรี่ ที่ส่งงานไปทีระบบกระจายงาน
MPICH2 สำหรับ Intel คอมไพลเลอร์
MPICH2 สำหรับ Intel คอมไพล์เลอร์จะแนะนำให้คุณนำมาใช้ก็ต่อเมื่อคุณต้องการคอมไพล์โปรแกรม MPI ด้วย Intel คอมไพล์เลอร์ แต่ถ้าคุณใช้งาน MPICH2 ด้วยคอมไพล์เลอร์ไหนก็ได้ ทางทีมงานขอแนะนำให้ใช้คอมไพล์เลอร์ของ GNU
การใช้งาน MPICH2 สำหรับ Intel คอมไพล์เลอร์เหมือนกับการใช้งานของ MPICH2 สำหรับ gnu คอมไพล์เลอร์ แต่มีข้อแตกต่างเล็กน้อยคือ คุณจะต้องแทนที่ path ของ MPICH2 คอมไพล์เลอร์จาก /share/fs/mpich2/gnu เป็น /share/fs/mpich2/intel.
