2014-09-03 43 views
2

我正在运行一个程序,并且正在使用调试模式。在调试模式下,程序会打印出一些有用的信息,并且我想在运行过程中检查它。然而,我无法在输出目录中找到输出文件..在代码中可用,或者我可以在代码结束时找到它。MPI pbs输出文件在运行时间内是否可用?

有作业信息:

Job Id: 420302.kavun-ib 
Job_Name = pKmeans 
Job_Owner = [email protected] 
resources_used.cput = 00:00:00 
resources_used.mem = 8148kb 
resources_used.vmem = 138560kb 
resources_used.walltime = 20:27:15 
job_state = R 
queue = cenga 
server = kavun-ib 
Checkpoint = u 
ctime = Wed Sep 3 14:40:27 2014 
Error_Path = nar:/home1/e1893122/10m_data/pKmeans.err 
exec_host = ceng33-ib/7+ceng33-ib/6+ceng33-ib/5+ceng33-ib/4+ceng33-ib/3+ce 
ng33-ib/2+ceng33-ib/1+ceng33-ib/0+ceng34-ib/7+ceng34-ib/6+ceng34-ib/5+ 
ceng34-ib/4+ceng34-ib/3+ceng34-ib/2+ceng34-ib/1+ceng34-ib/0+ceng35-ib/ 
7+ceng35-ib/6+ceng35-ib/5+ceng35-ib/4+ceng35-ib/3+ceng35-ib/2+ceng35-i 
b/1+ceng35-ib/0+ceng36-ib/7+ceng36-ib/6+ceng36-ib/5+ceng36-ib/4+ceng36 
-ib/3+ceng36-ib/2+ceng36-ib/1+ceng36-ib/0+ceng37-ib/7+ceng37-ib/6+ceng 
37-ib/5+ceng37-ib/4+ceng37-ib/3+ceng37-ib/2+ceng37-ib/1+ceng37-ib/0+ce 
ng38-ib/7+ceng38-ib/6+ceng38-ib/5+ceng38-ib/4+ceng38-ib/3+ceng38-ib/2+ 
ceng38-ib/1+ceng38-ib/0+ceng39-ib/7+ceng39-ib/6+ceng39-ib/5+ceng39-ib/ 
4+ceng39-ib/3+ceng39-ib/2+ceng39-ib/1+ceng39-ib/0+ceng40-ib/7+ceng40-i 
b/6+ceng40-ib/5+ceng40-ib/4+ceng40-ib/3+ceng40-ib/2+ceng40-ib/1+ceng40 
-ib/0 
Hold_Types = n 
Join_Path = n 
Keep_Files = n 
Mail_Points = e 
Mail_Users = "[email protected]" 
mtime = Wed Sep 3 14:42:13 2014 
Output_Path = nar:/home1/e1893122/10m_data/pKmeans.out 
Priority = 0 
qtime = Wed Sep 3 14:40:27 2014 
Rerunable = True 
Resource_List.cput = 14400:00:00 
Resource_List.mem = 20gb 
Resource_List.nodect = 8 
Resource_List.nodes = 8:ppn=8 
Resource_List.walltime = 9600:00:00 
session_id = 4383 
Variable_List = PBS_O_HOME=/home1/e1893122,PBS_O_LANG=en_US.UTF-8, 
PBS_O_LOGNAME=e1893122, 
PBS_O_PATH=/usr/mpi/gcc/openmpi-1.2.8/bin:/usr/kerberos/bin:/usr/loca 
l/bin:/bin:/usr/bin,PBS_O_MAIL=/var/spool/mail/e1893122, 
PBS_O_SHELL=/bin/bash,PBS_SERVER=nar,PBS_O_HOST=nar, 
PBS_O_WORKDIR=/home1/e1893122/workspace/parallel-kmeans, 
PBS_O_QUEUE=cenga 
etime = Wed Sep 3 14:40:27 2014 
submit_args = pKmeans.pbs 
start_time = Wed Sep 3 14:40:57 2014 
start_count = 1 
+0

我认为这些文件在您的主目录执行过程中经常可用,但我可能是错误的。它也可以是系统特定的。 – 2014-09-03 13:36:02

+0

PBS/Torque的假脱机目录的位置是可配置的。 AFAIR,默认是/ var中的某个节点本地目录。 – 2014-09-03 14:47:07

回答

1

文件的位置取决于扭矩/ PBS的配置方式。有时它们是在作业工作目录中创建的,有时是在计算节点上创建它们并在作业完成后复制到工作目录中。如果是这种情况,您应该能够在PBS/Torque假脱机目录中找到该输出。/var/spool/torque/spool和/ var/lib/torque/spool是两个开始寻找的地方。您也可以解决此通过重定向你的输出到您指定的文件

mpirun -np 8 ./a.out > /home/neouyghur/job_output 

mpirun -np 8 ./a.out &> /home/neouyghur/job_output 

两全输出和错误。

您可能还想查看qsub手册页中的o,e,j和k开关,因为它们也会影响输出的处理方式。

+0

首先感谢您的回复,但您可能会误解我的意思。我重定向了输出文件,但通常在运行结束后我无法访问它们。 – neouyghur 2014-09-04 08:02:14

+0

我已经发布了我的工作信息,你可以检查它,并告诉我方向如果可能的话...谢谢.. – neouyghur 2014-09-04 08:13:31

+0

我想我明白了。工作完成后,您可以看到pKmeans.out和pKmeans.err,但您希望在运行过程中看到您的工作正在做什么。在您的工作正在运行时,它将作业stdout和stderr存储在您的工作的第一个节点上,即母亲上级。在上面的输出中,它似乎是一台名为ceng33-ib的机器。如果您可以ssh到ceng33-ib并在/ var/spool/torque/spool中四处查看,您应该看到稍后复制到主目录的文件。否则,您可以重新定向输出,如我的答案中所示,并完全绕过扭矩以用于未来运行。 – chuck 2014-09-04 12:50:06

2

如果您的输出文件常常是网络安装位置,那么你可以问管理员设置

$spool_as_final_name true 

在妈妈的配置文件。这将使输出直接写入其最终位置,而不是被其他地方假脱机,然后复制。

+0

谢谢你,我会做的.. – neouyghur 2014-09-06 10:43:06

相关问题