如何解决如何在模块文件中设置USIF专用变量“ GLIBC”?
我正在基于Slurm的HPC集群中工作,过去五年来我一直在这样做。我们加载和卸载分析所需的模块,其中包括gcc
之类的编译器。直到两天前,这对我来说都是无缝的。在过去的两天内,每次尝试加载任何模块时,都会出现此错误:
Couldn't set USIF specific variable "GLIBC" in modulefile - please contact
system administration! (Refer to UMEA register_USIF.sh utility.)
互联网一直没有帮助,因为似乎已经没有任何问题可以解决。系统管理员当前未回复我的邮件,因此我的工作已完全停止。
我试图从另一台计算机和另一个帐户挂载/卸载模块,并且工作正常,因此问题与我的帐户绑定。
这里的任何人以前有这个问题的经验吗?如果是这样,可能是什么开始了?我什至不知道从哪里开始寻找,或者是什么原因导致的,因为我们没有安装自己的编译器。
编辑#1:
对于我的$LD_LIBRARY_PATH
值得(不确定)的样子:
LD_LIBRARY_PATH=:/cm/shared/apps/slurm/current/lib:/cm/shared/apps/slurm/current/lib/slurm
一开始我对:
有点怀疑。是否缺少第一部分?我还没有碰到这个变量。
编辑#2:
在进行其他一些挖掘之后,将我的环境与一个没有问题的同事进行了比较,我发现env
中缺少以下三个变量:
UMEA_HOME=/opt/sw/UMEA/current
UMEA_INCLUDE=/opt/sw/UMEA/current/include
UMEA_CONfig=/opt/sw/UMEA/current/config
我还发现$CPATH
以:
之类的$LD_LIBRARY_PATH
开头,而他的$CPATH
却不是:
CPATH=:/cm/shared/apps/slurm/current/include
我尝试export ...
他们,但没有帮助。但是,这使我认为存在一个更深层次的问题。
编辑#3:
按照下面注释中的要求,我已经完成module show gcc/5.3
来查看实际的模块文件。这是内容:
#%Module######################################################################
##
source $env(UMEA_INCLUDE)/vsc_include.tcl
source $env(UMEA_INCLUDE)/common_include.tcl
source $env(UMEA_INCLUDE)/prereq_include.tcl
set verbosity 0
set_versions
set base_path [ load_unload ]
set_paths $base_path $module_name
set_version_number 2
setenv CC gcc
setenv CXX g++
setenv FC gfortran
setenv F77 gfortran
setenv F90 f95
setenv GDB gdb
setenv VSC_COMPILER_NAME ${module_name}
setenv VSC_COMPILER_VERSION ${module_version}
解决方法
与HPC群集的sysadmin一起,我们已经解决了它。这确实是一个愚蠢的事情,我发布答案只是为了让其他人也有同样的问题,知道他们要去哪里找,而又不会浪费几天的试验和错误。
问题源于$PATH
。在某些情况下,您可能想通过执行$PATH
来更新PATH=/my/extra/path/directory:${PATH}
变量,但是在这种情况下,我必须像在PATH=${PATH}:/my/extra/path/directory
中那样,将多余的路径放在最后。
直到两天前,这才成为问题,五年来它一直运行良好。也许他们在sysadmin方面做了一些更改,以便在我的$PATH
中找不到所需的可执行文件。
我检查了一下,并且我是唯一在$PATH
中修改了.bashrc
的同事之一。那可以解释为什么只有我有这个问题。
无论如何,如果您正在阅读本文并且遇到相同的问题,那么您知道应该去哪里看看。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。