まず,以下のようなプログラムを "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 件のコメント:
コメントを投稿