我有一个GPU集群,一个存储节点和几个计算节点,每个节点有8个GPU。我正在配置群集。
其中一个任务是配置python,我们需要的是几个版本的Python和一些python包,对于某些包我们可能需要它的几个版本,例如tensorflow的不同版本。
所以问题是如何配置python和包以便它“#”;方便使用我想要使用的不同版本的包。
我在每个计算节点和存储节点中都安装了python2.7和python3.6。但我认为,如果要配置大量的计算节点,这是一个好方法。其中一个解决方案是在群集的共享目录中安装python而不是默认的/ usr / local路径。 任何人都有更好的方法来做到这一点?
我现在使用的是OpenPBS(Torque),我是HPC的新手。
非常感谢。
答案 0 :(得分:1)
您可以在每个节点上都可访问的共享目录中安装Modules software environment。然后很容易加载特定版本的python或TensorFlow:
module load lang/Python/3.6.0
module load lib/Tensorflow/1.1.0
然后,如果对于某些软件包我们可能需要它的几个版本,您可以查看允许安装同一软件包的多个版本的Python virtualenv。要在所有节点上共享它,请考虑在共享挂载点上创建virtualenv。
答案 1 :(得分:0)
您可以在特定目录下的存储节点上安装每个软件,并将该目录安装在计算节点上。然后,您不必多次安装每个软件。
此问题的常见解决方案是Environment Modules。您将软件安装为模块。这意味着该软件与模块文件一起安装在某个目录(例如/opt/modules/python/3.6/
)中。执行module load python/3.6
时,模块文件设置环境变量,使Python3.6位于PATH
,PYTHONPATH
等。
这样可以很好地分离您的软件堆栈,还可以安装更新版本的tensorflow而不会弄乱环境。