2009-03-12

[Mac] Xgrid の例

同僚の Guerra さんが Xgrid の簡単なサンプルプログラムを作ってくれたので試しました.

まず,以下のようなプログラムを "testjob.py" という名前を作成しておきます.


#!/usr/bin/env python
from sys import argv
import socket

# Get job id from command line arguments
jobid = argv[1]

# Print something to stdout
print 'Hello World!'
print 'I¥'m job', jobid
print socket.gethostname()

# Write something to a file. The name of
# the file depends on the job id
file = open('message-from-job'+jobid+'.txt','w')
file.write('Hello! This is a message from job %s!¥n' % jobid)
file.close()


でもって,実行するディレクトリに結果を出力するためのディレクトリ
(ここでは "workfolder"としておく)を作成しておく.

以下では,xgrid のコントローラが動いているホストマシンを grigri としています.

1.ジョブをサブミットします.

%xgrid -h grigri.local -job submit -in ./workfolder/ testjob.py ABC

{
jobIdentifier = 10217;
}


2.ジョブのIDを確かめます.

%xgrid -h grigri.local -job list

{
jobList = (
10217
);
}


3.ジョブを実行します

% xgrid -h grigri.local -job results -id 10217 -so ./workfolder/jobstdout.txt -se ./workfolder/jobstderr.txt -out ./workfolder/



4.結果を確かめます

%ls workfolder/

jobstderr.txt jobstdout.txt message-from-jobABC.txt

%cat workfolder/jobstdout.txt

Hello World!
I'm job ABC
hogehoge.machine.org



5.ジョブの実行状況を確認します

%xgrid -h grigri.local -job attributes -id 10217

{
jobAttributes = {
activeCPUPower = 0;
applicationIdentifier = "com.apple.xgrid.cli";
dateNow = 2009-03-12 16:42:36 +0900;
dateStarted = 2009-03-12 15:46:32 +0900;
dateStopped = 2009-03-12 15:46:32 +0900;
dateSubmitted = 2009-03-12 15:46:31 +0900;
jobStatus = Finished;
name = "testjob.py";
percentDone = 100;
taskCount = 1;
undoneTaskCount = 0;
};
}


5.ジョブを削除します

%xgrid -h grigri.local -job delete -id 10217

{
}


6.ジョブが削除されたか確認します

%xgrid -h grigri.local -job list

{
jobList = (
);
}


これでグリッドコンピューティングの仲間入りだよ.
Linux マシンを Xgrid のエージェントとしてリソースを使うようにできるユーティリティもあるそうなので,研究室の様々なマシンをグリッドコンピューティングに
利用できそう.
心配なのは電力の容量ですな.

0 件のコメント:

コメントを投稿

Twitter