2007年5月8日星期二

尝试在Xserve G5 Cluster上用Xgrid运行Gate

看Gate3.1.1的说明里有对Xgrid的支持,所以试一下。

先编译安装jobsplitter:

[pcsk795:gate_v3.1.0/Cluster_Tools/jobsplitter] zixiongc% make
Making dependency for file gjs.cc ...
Making dependency for file src/GateToPlatform.cc ...
Making dependency for file src/GateSplitManager.cc ...
Making dependency for file src/GateSeeder.cc ...
Making dependency for file src/GateMacfileParser.cc ...
Compiling GateMacfileParser.cc ...
src/GateMacfileParser.cc: In member function 'void GateMacfileParser::CleanAbort()':
src/GateMacfileParser.cc:105: warning: unused variable 'res'
Compiling GateSeeder.cc ...
Compiling GateSplitManager.cc ...
Compiling GateToPlatform.cc ...
Creating/replacing object files in ./tmp/Darwin-g++/gjs/libgjs.a ...
ar: creating archive ./tmp/Darwin-g++/gjs/libgjs.a
Compiling gjs.cc ...
warning: this program uses gets(), which is unsafe.
Using granular libraries ...
Linking gjs ...
... Done!

再编辑安装filemerger:

[pcsk795:gate_v3.1.0/Cluster_Tools/filemerger] zixiongc% make

creating object file for ./gjm

creating object file for src/GateMergeManager
src/GateMergeManager.cc: In member function 'bool GateMergeManager::FastMergeGate(std::string)':
src/GateMergeManager.cc:504: warning: unused variable 'maxtime'
src/GateMergeManager.cc: In member function 'bool GateMergeManager::MergeTree(std::string)':
src/GateMergeManager.cc:495: warning: control reaches end of non-void function

linking gjm

安装后的执行文件gjs在
/Applications/gate_v3.1.0/Cluster_Tools/jobsplitter/bin/Darwin-g++
gjm在
/Applications/gate_v3.1.0/Cluster_Tools/filemerger

在~/G4work下运行:
/Applications/gate_v3.1.0/Cluster_Tools/jobsplitter/bin/Darwin-g++/gjs -numberofsplits 5 -clusterplatform xgrid test.mac

ROOT output is enabled
ASCII output is enabled but no filename is given; using a default one
INTER output is disabled
LMF output is disabled
ECAT output enabled if ECAT + sinogram selected but no filename is given; using a default one
SINO output enabled if ECAT system selected but no filename is given; using a default one
Information : Random seed file $(GC_DOT_GATE_DIR)/seed(n).rndm

在 /Applications/gate_v3.1.0/Cluster_Tools/jobsplitter/dotGate/.Gate/test/下出现

seed1.rndm      seed2.rndm      seed3.rndm      seed4.rndm      seed5.rndm      test.split      test1.mac       test2.mac
test3.mac       test4.mac       test5.mac

其中

test1.mac最后两行:

/random/resetEngineFrom /Applications/gate_v3.1.0/Cluster_Tools/jobsplitter/dotGate/.Gate/test/seed1.rndm
/gate/application/startDAQCluster 0 1 0 s

test2.mac最后两行:

/random/resetEngineFrom /Applications/gate_v3.1.0/Cluster_Tools/jobsplitter/dotGate/.Gate/test/seed2.rndm
/gate/application/startDAQCluster 1 2 0 s


在当前目录~/G4work出现文件test.plist:

{
jobSpecification = {
applicationIdentifier = "com.apple.xgrid.cli";
inputFiles = {};
name = "Gate";
submissionIdentifier = abc;
taskSpecifications = {
0 = {arguments =(/Applications/gate_v3.1.0/Cluster_Tools/jobsplitter/dotGate/.Gate/test/test0.mac); command ="/Applications/gate_v3.1.0/bin/Darwin-g++/Gate"; };
1 = {arguments =(/Applications/gate_v3.1.0/Cluster_Tools/jobsplitter/dotGate/.Gate/test/test1.mac); command ="/Applications/gate_v3.1.0/bin/Darwin-g++/Gate"; };
2 = {arguments =(/Applications/gate_v3.1.0/Cluster_Tools/jobsplitter/dotGate/.Gate/test/test2.mac); command ="/Applications/gate_v3.1.0/bin/Darwin-g++/Gate"; };
3 = {arguments =(/Applications/gate_v3.1.0/Cluster_Tools/jobsplitter/dotGate/.Gate/test/test3.mac); command ="/Applications/gate_v3.1.0/bin/Darwin-g++/Gate"; };
4 = {arguments =(/Applications/gate_v3.1.0/Cluster_Tools/jobsplitter/dotGate/.Gate/test/test4.mac); command ="/Applications/gate_v3.1.0/bin/Darwin-g++/Gate"; };
};
};
}

接下去看如何让xgrid运行这样的任务了。。。

简单地用 xgrid -job batch test.plist 可以提交任务到xgrid controller,但是不能运行。。。





1 条评论:

时间 2007年6月25日 22:51 , Blogger james 说...

请问用什么命令来运行clutter脚本?
我现在用jobsplitter产生出了如下几个文件:
my1.mac my3.mac my5.mac seed1.rndm seed3.rndm seed5.rndm
my2.mac my4.mac my.split seed2.rndm seed4.rndm

接下来如何运行呀,请指教。
还有您所提到的Xgrid平台是要后来自己安装的吗?

 

发表评论

订阅 博文评论 [Atom]

<< 主页