การใช้งาน 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.

Powered by Drupal - Design by Artinet