最近需要在超算计群上运行julia代码,然而我们的集群上没有julia包的本地镜像,又不能联网,简直是为难我胖虎。
经多方查找,发现知乎上一位老哥帮了我的大忙,以下是他的链接:
在超算集群上离线安装Julia及Julia包
然而他的做法与我的还有那么0.01% 的不同,以下我就把我的做法简要介绍一下。
1. 安装julia(在超算集群上)
我的集群上已经配置好了conda本地镜像,所以我就直接通过conda在虚拟环境中安装julia,在已经创建好的虚拟环境中
conda install -c conda-forge julia
关于conda安装以及虚拟环境创建、激活等操作,可以查看本人以前的文章:
Linux平台安装julia
- 如果超算集群上没有安装配置conda,且您不需要 在虚拟环境中使用julia,可直接查看知乎老哥的文章《在超算集群上离线安装Julia及Julia包》,以下所有内容就不需要看了。
- 如果安装了conda,且需要安装julia在虚拟环境中,但本地镜像search不到julia包,可参考本人的文章《本地julia安装文件安装在conda虚拟环境中》,采用本地安装包安装julia到特定虚拟环境。
2. 在可以联网的本地电脑上安装julia并下载安装所需要的包
-
设置环境变量,将julia源改为国内源,linux系统可采用如下方法
export JULIA_PKG_SERVER=https://mirrors.cernet.edu.cn/julia
其他配置方法参考《Julia 软件仓库镜像使用帮助》
-
进入julia环境,安装所需要的包。以下提供两种安装方法:
方法1: 按下“]”键,然后使用以下命令安装,其中“name_pkg”是所需要安装的包的名。add name_pkg
如图所示
方法2:
在julia环境中执行如下命令using Pkg Pkg.add("name_pkg1"); Pkg.add("name_pkg2"); ...
3. 使用sftp、scp、rz/sz 等方法将本地电脑上存放julia包的目录上传到超算集群,替换掉超算集群上的相应目录。如果不知道该目录具体位置,可分别在本地电脑和超算集群查看环境变量
echo $JULIA_DEPOT_PATH
我习惯使用scp,命令如下
scp -r /the/path/of/JULIA_DEPOT_PATH username@ip.of.super.computer:/the/path/of/JULIA_DEPOT_PATH
4. 在超算集群上使用已上传的包
进入julia环境,可直接using name_pkg,但第一次使用时会有提示信息
[ Info: Precompiling name_pkg [xxxxxxxxxxx]
也可以用下图方法一次性build所有包
using Pkg
Pkg.build()