我已经开始在HPC服务器上使用R(R/3.5.1-foss-2018b)
。除了必须处理NetCDF文件时,它似乎工作正常。我正在使用nc_open
中的ncdf4
函数包以读取NetCDF文件。当我调用此函数(无论NetCDF文件的大小)时,该程序都将挂起,并且我完全失去了对它的任何控制。但是,在我自己的笔记本电脑上使用相同版本的R,它可以工作很好(因此它似乎不是R bug),我认为存在与群集上安装的模块(依赖项)兼容的问题,但我无法确定问题是由哪个原因以及为什么发生。这是我输入sessionInfo
()时得到的:
R version 3.5.1 (2018-07-02)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)
>Matrix products: default
BLAS/LAPACK: /mnt/ebinstall/software/OpenBLAS/0.3.1-GCC-7.3.0-2.30/lib/libopenblas_haswellp-r0.3.1.so
locale:
[1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=en_GB.UTF-8 LC_MESSAGES=en_GB.UTF-8
[7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.5.1
我可以使用module list
获取当前加载的模块列表:
1) easybuild/software
2) sge/8.5.5
3) GCCcore/7.3.0
4) binutils/2.30-GCCcore-7.3.0
5) GCC/7.3.0-2.30
6) zlib/1.2.11-GCCcore-7.3.0
7) numactl/2.0.11-GCCcore-7.3.0
8) XZ/5.2.4-GCCcore-7.3.0
9) libxml2/2.9.8-GCCcore-7.3.0
10) libpciaccess/0.14-GCCcore-7.3.0
11) hwloc/1.11.10-GCCcore-7.3.0
12) OpenMPI/3.1.1-GCC-7.3.0-2.30
13) OpenBLAS/0.3.1-GCC-7.3.0-2.30
14) gompi/2018b
15) FFTW/3.3.8-gompi-2018b
16) ScaLAPACK/2.0.2-gompi-2018b-OpenBLAS-0.3.1
17) foss/2018b
18) bzip2/1.0.6-GCCcore-7.3.0
19) expat/2.2.5-GCCcore-7.3.0
20) libpng/1.6.34-GCCcore-7.3.0
21) freetype/2.9.1-GCCcore-7.3.0
22) ncurses/6.1-GCCcore-7.3.0
23) util-linux/2.32-GCCcore-7.3.0
24) fontconfig/2.13.0-GCCcore-7.3.0
25) X11/20180604-GCCcore-7.3.0
26) GMP/6.1.2-GCCcore-7.3.0
27) nettle/3.4-foss-2018b
28) libdrm/2.4.92-GCCcore-7.3.0
29) LLVM/6.0.0-GCCcore-7.3.0
30) Mesa/18.1.1-foss-2018b
31) libGLU/9.0.0-foss-2018b
32) pixman/0.34.0-GCCcore-7.3.0
33) libffi/3.2.1-GCCcore-7.3.0
34) gettext/0.19.8.1-GCCcore-7.3.0
35) PCRE/8.41-GCCcore-7.3.0
36) GLib/2.54.3-GCCcore-7.3.0
37) cairo/1.14.12-GCCcore-7.3.0
38) libreadline/7.0-GCCcore-7.3.0
39) Tcl/8.6.8-GCCcore-7.3.0
40) SQLite/3.24.0-GCCcore-7.3.0
41) NASM/2.13.03-GCCcore-7.3.0
42) libjpeg-turbo/2.0.0-GCCcore-7.3.0
43) LibTIFF/4.0.9-GCCcore-7.3.0
44) Java/1.8.0_181(1.8)
45) Tk/8.6.8-GCCcore-7.3.0
46) cURL/7.60.0-GCCcore-7.3.0
47) Python/3.6.6-foss-2018b
48) Szip/2.1.1-GCCcore-7.3.0
49) HDF5/1.10.2-foss-2018b
50) netCDF/4.6.1-foss-2018b
51) GEOS/3.6.2-foss-2018b-Python-3.6.6
52) JasPer/2.0.14-GCCcore-7.3.0
53) PROJ/5.0.0-foss-2018b
54) libgeotiff/1.4.2-foss-2018b
55) GDAL/2.2.3-foss-2018b-Python-3.6.6
56) NLopt/2.4.2-GCCcore-7.3.0
57) libsndfile/1.0.28-GCCcore-7.3.0
58) ICU/61.1-GCCcore-7.3.0
59) UDUNITS/2.2.26-foss-2018b
60) R/3.5.1-foss-2018b
我以前在ncdump
中遇到过类似的问题,但是我在加载此模块module load netCDF/4.4.1-intel-2016b
时解决了该问题。
此外,当我添加以下模块时:module load HDF5/1.10.2-foss-2018b
我还收到一条错误消息,指出HDF库之间不匹配。就是这样:
Warning! ***HDF5 library version mismatched error***
The HDF5 header files used to compile this application do not match
the version used by the HDF5 library to which this application is linked.
Data corruption or segmentation faults may occur if the application continues.
This can happen when an application was compiled by one version of HDF5 but linked with a different version of static or shared HDF5 library.
You should recompile the application or check your shared library related settings such as 'LD_LIBRARY_PATH'. You can, at your own risk, disable this warning by setting the environment variable 'HDF5_DISABLE_VERSION_CHECK' to a value of '1'.
Setting it to 2 or higher will suppress the warning messages totally.
Headers are 1.10.1, library is 1.10.2
这就是为什么我坚信我的“挂起”问题是由某些模块引起的。 有谁知道什么是解决方案的线索?
答案 0 :(得分:0)
尝试:
export HDF5_DISABLE_VERSION_CHECK=1
在运行R脚本之前。
您可以使用高于1
的值来完全禁止该警告。