logging - PBS 脚本 -o 文件到多个位置

标签 logging pbs supercomputers

有时,当我在 PBS 集群上运行作业时,我真的希望作业日志(-o 文件)位于两个位置。一个位于 $PBS_O_WORKDIR 中,用于将所有内容保存在一起,另一个位于 ${HOME}/jobOuts/ 中,用于 grep/awking/etc...

使用 tee 从命令行进行测试:

echo "hello" | qsub -o `tee $HOME/out1.o $HOME/out2.o $HOME/out3.o`

但是一旦我尝试将其放入 PBS 脚本中,如果将其放入 PBS 脚本和 qsub 中,它就不起作用

####Parameterized PBS Script ####
#PBS -S /bin/bash
#PBS -l nodes=1
#PBS -l walltime=0:01:00
#PBS -j oe
#PBS -o `tee TEE_TEST.o TEE_TEST.${PBS_JOBID}.o`
#PBS -M me@email.com
#PBS -m abe
#PBS -V

cd $PBS_O_WORKDIR

echo `date`

这是 qsub 和错误:

qsub  TEST.pbs
qsub: directive error: -o `tee TEE_TEST.o TEE_TEST.${PBS_JOBID}.o`

我尝试了下面的其他一些方法 - 没有任何效果。

一行 -o(逗号、分号和空格):

#PBS -o ${PBS_JOBNAME}.${PBS_JOBID}.o,${HOME}/jobOuts/${PBS_JOBNAME}.${PBS_JOBID}.o
#PBS -o ${PBS_JOBNAME}.${PBS_JOBID}.o,${HOME}/jobOuts/${PBS_JOBNAME}.${PBS_JOBID}.o
#PBS -o ${PBS_JOBNAME}.${PBS_JOBID}.o ${HOME}/jobOuts/${PBS_JOBNAME}.${PBS_JOBID}.o

和两行:

#PBS -o ${PBS_JOBNAME}.${PBS_JOBID}.o
#PBS -o ${HOME}/jobOuts/${PBS_JOBNAME}.${PBS_JOBID}.o

两个工作类轮只采用第二个 -o 选项,而一个类轮不起作用。

有什么建议吗?是否可以?

最佳答案

我很惊讶你的命令行示例有效。你的工作真的运行了吗?我的猜测是运行

echo "hello" | qsub -o `tee $HOME/out1.o $HOME/out2.o $HOME/out3.o`

短路正在运行的作业,实际上只是抓取“hello”并将其传递给发球台。我的猜测是,更了解 bash 的人可以解释这里实际发生的情况。

我能想到的使您请求的内容起作用的唯一方法是让您的脚本将内容写入发球台。为了使其工作,您需要将这些位置放置在可从任何可能的计算节点访问的网络文件系统上。

关于logging - PBS 脚本 -o 文件到多个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16051964/

相关文章:

git - 让 git log --graph --all 像 hg glog 一样显示当前位置

Magento 中的 JavaScript 控制台日志

c++ - boost 日志 : How to forward a loging source

javascript - WebWorkers 可以用于 super 计算机吗?

java - 这在小型 super 计算机上实用吗?

cluster-computing - Cluster 和 MPP super 计算机架构之间有什么区别?

c# - 如何追踪 AppInsights 内部错误

c - MPI 和 C : loop through file of commands in file

python - 使用qsub提交连续和独立的作业有多快?

python - 使用批量提交系统时调试潜在的整数溢出?