在集群上运行 Julia 代码

Run Julia codes on a cluster

我的目标是使用 .pbs 文件(和 qsub)在集群上运行一些 Julia 编码的模拟(不涉及复杂的并行处理)

我知道从 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?

您想直接执行 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#### 中的标准错误)。

您可能会发现脚本运行时 'present working directory' 所在的位置存在问题。一些集群被设置为 'cd' 你到 /tmp/ 文件系统,或者只是把你放在你的主目录中,而不是脚本提交的地方。

在这种情况下,简单的解决方案是使用 Julia 脚本的完整路径,但这会导致难以重用您的 PBS 提交脚本。

/Applications/bla/bla/julia/bin/julia ~/mydirectory/myscript.jl