我有一个GPU集群,有一个存储节点和几个计算节点,每个节点都有8个GPU。我正在配置集群。
其中一个任务是配置python,我们需要几个版本的Python和一些python包,对于一些包,我们可能需要几个版本,例如不同版本的tensorflow。
所以问题是如何配置python和包,以便方便地使用我想要使用的包的不同版本。
我在每个计算节点和存储节点上都安装了python2.7和python3.6。但我认为,如果有大量的计算节点需要配置,这是一个很好的方法。其中一种解决方案是在集群的共享目录中安装python,而不是默认的/usr/local路径。有没有人有更好的方法呢?
我现在使用的是OpenPBS(扭矩),我对高性能计算还很陌生。
非常感谢。
发布于 2017-12-08 21:32:00
您可以在每个节点上都可以访问的共享目录中安装Modules software environment。然后,加载特定版本的python或TensorFlow将很容易:
module load lang/Python/3.6.0
module load lib/Tensorflow/1.1.0然后,如果对于某些软件包,我们可能需要它的多个版本,您可以查看一下允许安装同一软件包的多个版本的Python virtualenv。要在所有节点上共享它,请考虑在共享挂载点上创建您的virtualenv。
发布于 2017-11-10 20:23:43
您可以在存储节点上的某个目录下安装每个软件,并将该目录挂载到计算节点上。这样你就不必多次安装每个软件了。
这个问题的一个常见解决方案是Environment Modules。您可以将软件作为一个模块进行安装。这意味着软件与模块文件一起安装在某个目录下(例如/opt/modules/python/3.6/)。当您执行module load python/3.6时,模块文件设置环境变量,以便Python3.6位于PATH、PYTHONPATH等中。
这将很好地分离您的软件堆栈,并使您能够安装更新版本的tensorflow,而不会扰乱环境。
https://stackoverflow.com/questions/47201417
复制相似问题