<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 9pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>
Hello All,<BR>
&nbsp;<BR>
The post concerns my questions on Torque. <BR>
&nbsp;<BR>
I am new to Torque. Before, I have been programming parallel program with MPI + C++ on a IBM BladeCenter cluster(running Linux) where Torque-2.1.1 is installed.The cluster consists of a admin node and 14 computing nodes.<BR>
&nbsp;<BR>
&nbsp;<BR>
to acquaint myself with Torque, i made a simple MPI + C++ program (just creating files) looking like the following<BR>
&nbsp;<BR>
//&nbsp;&nbsp;&nbsp; #####&nbsp;&nbsp; Test_PBS_Pgm.cpp&nbsp; ######<BR>
&nbsp;<BR>
#include &lt;string&gt;<BR>#include &lt;string.h&gt;<BR>#include &lt;iostream&gt;<BR>int main(int argc, char *argv[])<BR>{&nbsp;&nbsp;&nbsp; <BR>
&nbsp;int User_Close_GtkWindow_MPI = 0;<BR>&nbsp;int Query_FileName_Len;<BR>&nbsp;int i;<BR>&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp;&nbsp; myid, numprocs;<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; double startwtime = 0.0, endwtime;<BR>&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp;&nbsp; namelen;<BR>&nbsp;&nbsp;&nbsp; char&nbsp;&nbsp; processor_name[MPI_MAX_PROCESSOR_NAME];<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; MPI_Init(&amp;argc,&amp;argv);//MPI<BR>&nbsp;&nbsp;&nbsp; MPI_Comm_size(MPI_COMM_WORLD,&amp;numprocs);//MPI<BR>&nbsp;&nbsp;&nbsp; MPI_Comm_rank(MPI_COMM_WORLD,&amp;myid);//MPI<BR>&nbsp;&nbsp;&nbsp; MPI_Get_processor_name(processor_name,&amp;namelen);&nbsp;//MPI<BR>
&nbsp;<BR>
&nbsp;<BR>
// CREATE FILES, File names depend on individual&nbsp;process ID<BR>
<BR>&nbsp;std::string InPut_FileName= "/home/yongchen/Temp___";<BR>
&nbsp;char strMyID[10]; <BR>&nbsp;sprintf(strMyID,"%d",myid );<BR>&nbsp;InPut_FileName += strMyID;<BR>&nbsp;FILE * fileSegedDoc;<BR>&nbsp;fileSegedDoc =fopen(InPut_FileName.c_str(), "w");<BR>
&nbsp;fclose(fileSegedDoc);<BR>
<BR>//////////////////////////////////////////////////////////////////////////<BR>&nbsp;MPI_Finalize();<BR>//////////////////////////////////////////////////////////////////////////<BR>}<BR><BR>
&nbsp;<BR>
It was observed that the program can run successfully with the following command <BR>
&nbsp; <BR>
&nbsp;&nbsp; mpiexec -n NUMBER_NODES ./Test_PBS_Pgm<BR>
&nbsp;<BR>
&nbsp;<BR>
&nbsp;<BR>
Later, I tried to submit the job using Torque.Unfortunately, I encounter some problems.<BR>
&nbsp;<BR>
I initiate 14 computing nodes using the command<BR>
&nbsp;<BR>
&nbsp;&nbsp;&nbsp; mpdboot -n 14<BR>
&nbsp;<BR>
Then I use&nbsp;the command<BR>
&nbsp;<BR>
&nbsp;&nbsp;&nbsp; mpdtrace<BR>
&nbsp;<BR>
to see whether all 14 computing nodes are ready<BR>
&nbsp;<BR>
'mpdtrace' will produce a list of node names of running computing nodes. The list is shown below.Actually, the list is the same as the contents in the file mpd.hosts (mpd.hosts will be used in&nbsp;a script later)<BR>
&nbsp;<BR>
hpc01<BR>
hpc02<BR>
hpc03<BR>
hpc04<BR>
hpc05<BR>
hpc06<BR>
hpc07<BR>
hpc08<BR>
hpc09<BR>
hpc10<BR>
hpc11<BR>
hpc13<BR>
hpc14<BR>
&nbsp;<BR>
&nbsp;<BR>
the script for submitting the job is shown below<BR>
&nbsp;<BR>
<BR>// ######&nbsp; PBS_Test.sh&nbsp; #################<BR>#!/bin/bash<BR>#PBS -l nodes=3:ppn=1<BR>#PBS -V<BR>NCPUS=3<BR>PBS_O_WORKDIR=/home/yong/temp<BR>cd $PBS_O_WORKDIR<BR>myPROG='/home/yong/Test_PBS_Pgm'<BR>
MPIRUN='/home/yong/mpich2-1.0.5p3/bin/mpiexec'<BR>$MPIRUN -np $NCPUS -machinefile ../mpd.hosts $myPROG &gt;&amp; out2<BR>
&nbsp;<BR>
&nbsp;<BR>
&nbsp;<BR>
I use <BR>
&nbsp;<BR>
&nbsp;&nbsp;&nbsp;&nbsp; qsub PBS_Test.sh<BR>
&nbsp;<BR>
to submit the job<BR>
&nbsp;<BR>
After submitting, I got a job number like YY.xcat1 (xcat1 is the name of admin node)<BR>
&nbsp;<BR>
It is observed that Temp___0 Temp___1&nbsp; Temp___2 three files can be created successfully.<BR>
&nbsp;<BR>
However, when I run 'mpdtrace' again.the node&nbsp;names&nbsp;&nbsp;hpc12, hpc13, and&nbsp;hpc14 are absent in the list comaring to the previous list. If I submit the job again,i.e., executing the command 'qsub&nbsp; PBS_Test.sh'again. The job will failed. This means that after executing the job, hpc12, hpc13, and&nbsp;hpc14&nbsp;exit from the computing node&nbsp;community&nbsp;for unknown&nbsp;reason. This is confirmed by&nbsp;the subsequent observation.&nbsp;&nbsp;In the&nbsp;file out2, I can see the following error message<BR>
&nbsp;<BR>
&nbsp;<BR>
mpiexec-hpc14: cannot connect to local mpd (/tmp/mpd2.console.yong)<BR>
possilbe causes:<BR>
1. no mpd is running on this host<BR>
2. an mpd is running but ws stated without a "console"<BR>
&nbsp; <BR>
&nbsp;<BR>
&nbsp;<BR>
However, I can see all 14 nodes is 'free' with the command 'pbsnodes'<BR>
&nbsp;<BR>
&nbsp;<BR>
In addition,in output file Test_PBS_Pgm.oYY, I can see that hpc12, hpc13, and&nbsp;hpc14 were used for this job, but the name of created files&nbsp;were Temp___0 Temp___1&nbsp; Temp___2.<BR>
&nbsp;<BR>
&nbsp;<BR>
Another problem is concerned with execution&nbsp;speed. <BR>
&nbsp;<BR>
It is very quick to run the job with directly using 'mpiexec -n NUMBER_NODES ./Test_PBS_Pgm '<BR>
&nbsp;<BR>
However, it will take 10 seconds if I submit the job using 'qsub'. <BR>
&nbsp;<BR>
I execute 'qstat' after I execut 'qsub PBS_Test.sh'. I observed that the state of job had been in 'Q' state&nbsp;(i.e.,waiting in the queue for execution) for serveral seconds. However, there&nbsp;were no other jobs in the queue at all.<BR>
&nbsp;<BR>
&nbsp;<BR>
These problems have sticked me for a long time.<BR>
&nbsp;<BR>
Please help me. I appreciated any help very&nbsp;much<BR>
&nbsp;<BR>
&nbsp;<BR>
Felix<BR>
&nbsp;<BR>
&nbsp;<BR>
&nbsp;<BR>
&nbsp;<BR>
&nbsp;<BR>
&nbsp;<BR>
&nbsp;<BR>
&nbsp;<BR>
&nbsp;<BR>
&nbsp;<BR>
&nbsp;<BR>
&nbsp;<BR>
&nbsp;<BR><br /><hr />Windows Live Writer,支持离线撰写博客内容,随时随地想写就写。 <a href='http://get.live.cn/product/writer.html' target='_new'>立即使用!</a></body>
</html>