R зависает при вызове ncdf4 nc_open в кластере HPC - PullRequest
0 голосов
/ 31 января 2019

Я начал использовать R (R/3.5.1-foss-2018b) на сервере HPC. Кажется, что он работает нормально, за исключением случаев, когда он имеет дело с файлами NetCDF. Я использую функцию nc_open из пакета ncdf4 для чтения файла NetCDF.Когда я вызываю эту функцию (независимо от размера файла NetCDF), программа просто зависает, и я полностью теряю контроль над ней, однако с той же версией R на моем ноутбуке она работает нормально (так что непохоже, ошибка R). Я скорее думаю, что существует проблема совместимости с модулями (зависимостями), установленными в кластере, но я не могу определить, по какому из них и почему возникает проблема. Это то, что я получаю, когдавведите 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

Вот почему я твердо верю, что моя «зависшая» проблема вызвана некоторыми модулями.Кто-нибудь знает, что может быть решением?

...