我的目标是使用.pbs文件(和qsub
)
我知道从Bash运行.jl文件的两种方法。第一个是
/path/to/julia myscript.jl
第二个是
exec '/Applications/bla/bla/julia/bin/julia'
include("myscript.jl")
这是我的.pbs文件。我无法测试它是否有效,因为我还不知道Julia应用程序存储在集群中的哪个位置。
#!/bin/bash
#PBS -l procs=1
#PBS -l walltime=240:00:00
#PBS -N Name
#PBS -m ea
#PBS -M name@something.com
#PBS -l pmem=1000mb
#PBS -t 1-3
echo "Starting run at: `date`"
exec '/Applications/bla/bla/julia/bin/julia'
include("myscript.jl")
echo "Job finished with exit code $? at: `date`"
你觉得这样吗?或者我应该以某种方式从我的.jl中创建一个.exec?
答案 0 :(得分:1)
您希望直接执行Julia,并将.jl程序文件作为参数。
类似的东西:
echo "Starting run at: `date`"
/Applications/bla/bla/julia/bin/julia myscript.jl
echo "Job finished with exit code $? at: `date`"
PBS将捕获标准并将其放入文件中,例如.pbs.o ####(类似于.pbs.e ####中的标准错误)。
您可能会发现脚本运行时“当前工作目录”所在的问题。有些集群设置为'cd'你到/ tmp / filesystem,或者只是把你放在你的主目录中,而不是你提交脚本的地方。
在这种情况下,简单的解决方案是使用Julia脚本的完整路径,但这使得重用PBS提交脚本变得困难。
/Applications/bla/bla/julia/bin/julia ~/mydirectory/myscript.jl