【问题标题】:How to use ld-linux-x86-64.so.2 in bash script for qsub如何在 qsub 的 bash 脚本中使用 ld-linux-x86-64.so.2
【发布时间】:2018-01-23 14:41:17
【问题描述】:

我有 pip 安装的 tensorflow 1.4.1,但系统默认的 gcc 库不是最新的,正在运行

import tensorflow

会导致这个错误

ImportError: /lib64/libc.so.6: version 'GLIBC_2.16' not found

由于我没有root权限,所以我构建了gcc库,并使用

alias python_cpu='/path/ld-linux-x86-64.so.2 --library-path /path/other_libs /path/python'

在 CPU 上运行 tensorflow。

现在我已经生成了数千个 bash 脚本,并希望使用 qsub

运行它们

在每个脚本中oo.sh 写入

#!/usr/bin/bash

python_cpu python_script.py different_params

我尝试了以下想法,但都失败了

  1. 使用qsub -V oo.shalias 传递给oo.sh
  2. 在 bash 脚本中使用 alias python_cpu=""
  3. 没有alias,使用'/path/ld-linux-x86-64.so.2 --library-path /path/other_libs /path/python' python_script.py params

顺便说一下,TF 的alias 可以很好地与 bash shell 命令行配合使用。现在有什么建议吗?

【问题讨论】:

    标签: python linux bash shell qsub


    【解决方案1】:

    让脚本工作

    #!/usr/bin/bash

    python_cpu='/path/ld-linux-x86-64.so.2 --library-path /path/other_libs /path/python'

    $python_cpu python_script.py different_params

    而不是使用alias

    【讨论】:

      【解决方案2】:

      由于您在集群上,您应该尝试使用模块文件。理想情况下,设置集群以使用 python 的系统管理员将为 python 和 tensorflow 提供适当配置的模块。如果不是,您可以提出一个简单的请求来添加或指向适当的libc.so 文件。然后使用命令在oo.sh 中加载模块文件

      module load foo-module

      或者,您可以编写自己的模块文件来设置您需要的环境。

      Basic tutorial here

      【讨论】:

        猜你喜欢
        • 2010-12-18
        • 1970-01-01
        • 1970-01-01
        • 2023-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-07
        • 2017-10-09
        相关资源
        最近更新 更多