Page 1 of 1

warning: libcudart.so.4 needed

Posted: Thu May 07, 2015 3:11 pm
by Stephan
Hi,
I try to install yambo on our new server and receive an error message concerning a cuda-library:

/usr/bin/ld: warning: libcudart.so.4, needed by /usr/local/lib/libmpich.so, not found (try using -rpath or -rpath-link)
/usr/local/lib/libmpich.so: Nicht definierter Verweis auf `cudaGetDeviceCount'
/usr/local/lib/libmpich.so: Nicht definierter Verweis auf `cudaGetDeviceProperties'
collect2: error: ld returned 1 exit status
make[1]: *** [yambo] Fehler 1
make[1]: Verlasse Verzeichnis '/home/yambo-3.4.1-rev61/driver'
make: *** [yambo] Fehler 2

Nicht definierter Verweis heißt "not defined link"

This is strange since there is a proper link to the mentioned library:

pi1@QuanQal2:/home/yambo-3.4.1-rev61$ echo $PATH
/opt/FPLO/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/opt/intel/composer_xe_2013_sp1.3.174/mkl/bin/intel64:/usr/local/bin/espresso-5.1/bin:/usr/local/cuda-5.5/bin:/opt/intel/mkl/include:/opt/intel/composer_xe_2013_sp1.3.174/mkl/include:/usr/local/bin/yambo-3.4.1/bin:/usr/local/bin/gamess:/opt/intel/composerxe/bin:/opt/intel/composerxe/mkl/bin/intel64:/opt/FPLO/bin:/opt/intel/bin:/opt/FPLO/bin:/usr/local/cuda-5.5/bin

and

pi1@QuanQal2:/home/yambo-3.4.1-rev61$ echo $LD_LIBRARY_PATH
/opt/intel/composer_xe_2013_sp1.3.174/mkl/lib/intel64:/usr/local:/usr/lib:/usr/lib32:/usr/lib64:/usr/local/cuda-5.5/targets/x86_64-linux/lib:/opt/intel/composer_xe_2015.0.090/mkl/lib/intel64/:/usr/local/cuda-5.5/lib64:/usr/lib32/nvidia-331

pi1@QuanQal2:/home/yambo-3.4.1-rev61$ ls /usr/local/cuda-5.5/lib64
libcublas_device.a libcufftw.so libnppc.so
libcublas.so libcufftw.so.5.5 libnppc.so.5.5
libcublas.so.5.5 libcufftw.so.5.5.22 libnppc.so.5.5.22
libcublas.so.5.5.22 libcuinj64.so libnppi.so
libcudadevrt.a libcuinj64.so.5.5 libnppi.so.5.5
libcudart.so.4 libcuinj64.so.5.5.22 libnppi.so.5.5.22
libcudart.so.5.5 libcurand.so libnpps.so
libcudart.so.5.5.22 libcurand.so.5.5 libnpps.so.5.5
libcudart_static.a libcurand.so.5.5.22 libnpps.so.5.5.22
libcufft.so libcusparse.so libnvToolsExt.so
libcufft.so.5.5 libcusparse.so.5.5 libnvToolsExt.so.1
libcufft.so.5.5.22 libcusparse.so.5.5.22 libnvToolsExt.so.1.0.0

Do I have to link the library to yambo in the configuration step? Or is my Cuda version not suitable?

My configuration file is attached. In the config.log there are just a few parts of $PATH mentioned. Does that mean, that most parts of PATH are not recognized?

Thanks and Regards

Stephan

Re: warning: libcudart.so.4 needed

Posted: Fri May 08, 2015 8:05 am
by andrea.ferretti
Hi Stefan,

Cuda should actually not be required to install yambo, and here it seems to come as a requirement because of
mpich. Have you checked you mpich installation works ?

take care
Andrea

Re: warning: libcudart.so.4 needed

Posted: Mon May 11, 2015 10:09 am
by Stephan
Hi Andrea,
thank you for your reply. I meanwhile solved the problem by installing a soft-link to the cuda-library in the /usr/lib/ direction.
(Don't know why that's necessary but I'm glad it helped..)

Now I received a further Error concerning the p2y installation:

>>>[Linking p2y]<<<
make[1]: Verzeichnis »/home/yambo-3.4.1-rev61/interfaces/p2y« wird betreten
qexml_v4.0.f90:30.6:

USE iotk_module
1
Fatal Error: Cannot read module file 'iotk_module.mod' opened at (1), because it was created by a different version of GNU Fortran
make[1]: *** [qexml_v4.0.o] Fehler 1
make[1]: Verzeichnis »/home/yambo-3.4.1-rev61/interfaces/p2y« wird verlassen
make: *** [interfaces] Fehler 2
pi1@QuanQal2:/home/yambo-3.4.1-rev61$


Does it mean, that Quantum-Espresso was installed with an old version of Fortran? I can't imagine since it is version espresso-5.1 so nothing from the last century...
Is it possible fix the problem without reinstall QE?

In the attachment you find the cited mod-file found in /home/espresso-5.1/S3DE/iotk/src (renamed with ending .txt. since I was not able to upload a file with mod-ending. It seems to be the case that my system is interpreting the file as a music-file..)

Re: warning: libcudart.so.4 needed

Posted: Mon May 11, 2015 10:11 am
by Stephan
Hello again,
sorry the mod-file was too big to be uploaded.
So here you can see the header of the file:

FORTRAN module version '6' created from iotk_module.f90 on Mon Sep 22 14:06:16 2014
MD5:584a841efa0825fc62d5b607734a83d6 -- If you edit this, you'll get what you deserve.

(() () () () () () () () () () () () () () () () () () () () () () ()
() () () ())

()

(('iotk_basefmt' 'iotk_fmt_interf' 2) ('iotk_close_write'
'iotk_files_interf' 3) ('iotk_close_read' 'iotk_files_interf' 4) (
'iotk_copy_tag' 'iotk_misc_interf' 5) ('iotk_copyfile' 'iotk_files_interf'
6) ('iotk_error_clear' 'iotk_error_interf' 7 8) (
'iotk_error_pool_pending' 'iotk_error_interf' 9) ('iotk_error_print'
'iotk_error_interf' 10 11) ('iotk_free_unit' 'iotk_unit_interf' 12) (
'iotk_get' 'iotk_misc_interf' 13) ('iotk_getline' 'iotk_scan_interf' 14)
('iotk_init_static_vars' 'iotk_misc_interf' 15) ('iotk_index'
'iotk_misc_interf' 16 17) ('iotk_link' 'iotk_files_interf' 18) (
'iotk_open_read' 'iotk_files_interf' 19) ('iotk_open_write'
'iotk_files_interf' 20) ('iotk_phys_unit' 'iotk_unit_interf' 21) (
'iotk_read' 'iotk_attr_interf' 22 23 24 25 26 27) ('iotk_readcmdline'
'iotk_misc_interf' 28) ('iotk_scan_begin' 'iotk_scan_interf' 29) (
'iotk_scan_attr' 'iotk_attr_interf' 30 31 32 33 34 35 36 37 38 39 40 41
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60) (
'iotk_scan_dat_inside' 'iotk_dat_interf' 61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
95) ('iotk_scan_end' 'iotk_scan_interf' 96) ('iotk_set' 'iotk_misc_interf'
97) ('iotk_scan_pi' 'iotk_scan_interf' 98) ('iotk_scan_empty'
'iotk_scan_interf' 99) ('iotk_scan_dat' 'iotk_dat_interf' 100 101 102
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
121 122 123 124 125 126 127 128 129 130 131 132 133 134) ('iotk_tool'
'iotk_tool_interf' 135) ('iotk_unit_get' 'iotk_unit_interf' 136) (
'iotk_unit_print' 'iotk_unit_interf' 137) ('iotk_print_kinds'
'iotk_misc_interf' 138) ('iotk_write_begin' 'iotk_write_interf' 139) (
'iotk_write_dat' 'iotk_dat_interf' 140 141 142 143 144 145 146 147 148
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166
167 168 169 170 171 172 173 174) ('iotk_write_end' 'iotk_write_interf'
175) ('iotk_write_pi' 'iotk_write_interf' 176) ('iotk_write_empty'
'iotk_write_interf' 177) ('iotk_write_comment' 'iotk_write_interf' 178)
('iotk_write_attr' 'iotk_attr_interf' 179 180 181 182 183 184 185 186
187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
205 206 207 208 209))

()

()

()

Please can anyone help?

Thanks and Regards

Stephan

Re: warning: libcudart.so.4 needed

Posted: Mon May 11, 2015 10:34 am
by andrea.ferretti
Dear Stefan,

as you say, the error message is quite clear, f90 module files were created by different versions of the GNU compiler...
Actually I am not aware of tricks about fixing the mod files. Honestly, I think the easiest option is to recompile QE, usually it takes 5 minutes and then you are done. You do not need to recompile it all (make pw would do since you just need to build the iota library).
Optionally you can save your previous build if you want to keep on using it.

I know this is a bit annoying but should be quick. in any case, exactly because of this, yambo v4.0.0 is able to self-compile iota and there is no longer any need to refer to existing builds of QE.

Andrea