在集群上运行 Julia 时出现问题

问题描述 投票:0回答:1

我正在使用 julia 在 SLURM 集群上运行一些模拟。我是朱莉娅的新手,似乎无法弄清楚缺少什么。我在同一目录中有三个主要代码文件“job.sh”、“main.jl”和“run-experiments.jl”以及一个 proejct.toml 和 Manifest.toml 文件。在“Job.sh”中,我有以下内容:

#!/bin/bash

#SBATCH --job-name=RunDMRG
#SBATCH --nodes=4
#SBATCH --oversubscribe
#SBATCH --time=08:00:00
#SBATCH --output=output_%j.txt
#SBATCH --error=error_%j.txt
#SBATCH --account=myname

module load julia

julia -e 'import Pkg; Pkg.instantiate()'  # Install packages

julia main.jl 256 100

main.jl 文件包含:

using ITensors
using Plots
using Printf
using Statistics
using LaTeXStrings
using CSV

using Pkg; Pkg.instantiate()
include("run-experiments.jl")

disorder = [10.0^i for i in -4:1]
nsites = parse(Int, ARGS[1]) 
nrealizations = parse(Int, ARGS[2]) 
print("Starting...")

main(nsites, nrealizations, disorder)

其中函数

main()
包含在
run-experiments.jl
中。

当我提交作业时,我立即收到一条错误消息,指出“iTensor 未安装”。更具体地说,错误文件显示:

ERROR: LoadError: ArgumentError: Package ITensors not found in current path:
- Run `import Pkg; Pkg.add("ITensors")` to install the ITensors package.

Stacktrace:
 [1] require(into::Module, mod::Symbol)
   @ Base ./loading.jl:893
in expression starting at /scratch/zt1/project/main.jl:1

但这不是 Pkg.instantiate() 应该做的吗?对于如何解决此问题并运行干净的模拟的任何帮助,我们将不胜感激。谢谢!

julia cluster-computing slurm
1个回答
0
投票

Julia 使用内置环境和包系统

Pkg.jl
。这些环境编码在
Project.toml
Manifest.toml
文件中,但为了使用它们,您必须切换到 /
activate
您要使用的环境。第一次在新系统上执行此操作时,
instantiate
确保安装了环境中列出的所有软件包。因此,您的 Slurm 脚本或 Julia 脚本中不一定总是需要
instantiate
,但 Julia 脚本应该以

开头
import Pkg
Pkg.activate(".") # or the actual path to the folder where your Enviromentment is

这只是一个非常简短的解释,如果你不熟悉

Pkg
和环境系统,你真的应该看看文档:https://pkgdocs.julialang.org/v1/getting-started /

© www.soinside.com 2019 - 2024. All rights reserved.