关于 slrum 系统运算节点与登录节点lib不同导致折腾了一晚上的事情

2025 年 2 月 12 日 星期三(已编辑)
/ ,
4
这篇文章上次修改于 2025 年 2 月 12 日 星期三,可能部分内容已经不适用,如有疑问可询问作者。

关于 slrum 系统运算节点与登录节点lib不同导致折腾了一晚上的事情

起因:某个程序年前在登录节点测试通过后就放假没搞了,假期后重新开搞,把脚本什么的都整好,打算一键启动然后摸鱼,突然弹出报错信息,然后开始了漫长的debug...


run task

ImportError: libarchive.so.13: cannot open shared object file: No such file or directory

首先 ldd查看问题 ldd local/gdal/lib/libgdal.so 没有发现问题...

之后思考,猜测是在运算节点的问题,修改sbatch脚本输出 $PATH $LD_LIBRARY_PATH, 和登录节点的对比并无差别。

进入运算节点看看

srun -p cp1 -N 1 -n 1 --time=01:30:00 --pty /bin/bash

ldd发现一堆 not found, 而且都是在 /lib/aarch64-linux-gnu/目录下的 ... ...

之后又回去登录节点查看/aarch64-linux-gnu

ls /lib/aarch64-linux-gnu | grep

... ...

写个脚本把运算节点缺少的动态库记录下来,然后cp到一个新的目录tmp_lib, 并且把这个目录添加到$LD_LIBRARY_PATH

# 运算节点
ldd local/gdal/lib/libgdal.so | grep "not found" > not_found_libraries.txt

之后将not_found_libraries.txt中的所有文件 copy 到tmp_lib中,重复个几回,之后在运算节点测试task就通过。👏👏👏

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...