我在一个基于 slurm 的 HPC 集群中工作,过去 5 年我一直这样做。我们加载和卸载分析所需的模块,其中编译器如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
而且我还发现 the$CPATH
以:
like the开头$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}