[gpaw-users] installation of gpaw
Nichols A. Romero
naromero at alcf.anl.gov
Thu Nov 17 18:20:03 CET 2011
Marcin,
This problem is only with using MKL with _gpaw.so. Because I did not
want use the LD_PRELOAD trick, I ended up using reference blas/lapack
for building the _gpaw.so and MKL for building gpaw-python. And thus
two different customize.py files. I will add these to the SVN repository
when I get a chance.
Nichols A. Romero, Ph.D.
Argonne Leadership Computing Facility
Argonne National Laboratory
Building 240 Room 2-127
9700 South Cass Avenue
Argonne, IL 60490
(630) 252-3441
----- Original Message -----
From: "Marcin Dulak" <Marcin.Dulak at fysik.dtu.dk>
To: "Nichols A. Romero" <naromero at alcf.anl.gov>
Cc: "gpaw-users" <gpaw-users at listserv.fysik.dtu.dk>
Sent: Thursday, November 17, 2011 7:55:56 AM
Subject: Re: [gpaw-users] installation of gpaw
Yes, i have seen that too:
http://software.intel.com/en-us/forums/showthread.php?t=60460
Marcin
Nichols A. Romero wrote:
> Marcin,
>
> I tried linking with -lmkl_def and -lmkl_mc and it still failed. Only
> do LD_PRELOAD work. I found the suggestion at the Intel website.
> When I get to the office, I will send the link to the list.
>
> Nichols A. Romero, Ph.D.
> Argonne Leadership Computing Facility
> Argonne National Laboratory
> Building 240 Room 2-127
> 9700 South Cass Avenue
> Argonne, IL 60490
> (630) 252-3441
>
>
> ----- Original Message -----
> From: "Marcin Dulak" <Marcin.Dulak at fysik.dtu.dk>
> To: "Marcin Dulak" <Marcin.Dulak at fysik.dtu.dk>
> Cc: "Nichols A. Romero" <naromero at alcf.anl.gov>, "gpaw-users" <gpaw-users at listserv.fysik.dtu.dk>
> Sent: Thursday, November 17, 2011 3:36:16 AM
> Subject: Re: [gpaw-users] installation of gpaw
>
> Marcin Dulak wrote:
>
>> Hi,
>>
>> Nichols A. Romero wrote:
>>
>>
>>> Hi,
>>>
>>> I am replying to this very old post because I just ran into Boris problem
>>> and was able to solve it.
>>>
>>> If I run the regression test on the _gpaw.so (effectively, the serial binary),
>>> you get the following error when running numpy_zdotc_graphite.py
>>>
>>> *** libmkl_mc.so *** failed with error : /soft/intel/mkl/10.2.5.035/lib/em64t/libmkl_mc.so: undefined symbol: mkl_dft_commit_descriptor_s_c2c_md_omp
>>> *** libmkl_def.so *** failed with error : /soft/intel/mkl/10.2.5.035/lib/em64t/libmkl_def.so: undefined symbol: mkl_dft_commit_descriptor_s_c2c_md_omp
>>> MKL FATAL ERROR: Cannot load neither libmkl_mc.so nor libmkl_def.so
>>>
>>> The correct link line is provided by this handy Java script:
>>> http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/
>>>
>>>
>>>
> what about linking to explicitly mkl_def (or mkl_mc; or both)?
> As this post suggests
> (http://mail.scipy.org/pipermail/numpy-discussion/2009-October/046020.html)
> sometimes only static linking works for mkl.
> Expect the way you link to change with every mkl release.
>
>> in my experience what you get from this tool does not always work.
>> Try to search for the required symbols under
>> /soft/intel/mkl/10.2.5.035/lib/em64t/
>> using nm or strings, make a guess which *.so (many can contain those
>> symbols) is more relevant,
>> and link to it explicitly. I can't guarantee this works, but worked many
>>
>> times for me.
>>
>>
> Just for reference this is how you can search for symbols with nm:
> find . -name "*.so" | xargs -I file sh -c "echo file && nm -a file |
> grep 'T mkl_dft_commit_descriptor_s_c2c_md_omp' "
> For mkl 10.2.4.032 these symbols are in:
> libmkl_intel_thread.so
> libmkl_sequential.so
> libmkl_pgi_thread.so
> libmkl_gnu_thread.so
>
> Marcin
>
>> Marcin
>>
>>
>>> For dynamic linking, all that is needed is:
>>> libraries += ['mkl_intel_lp64',
>>> 'mkl_sequential',
>>> 'mkl_core']
>>>
>>> which is what Boris was using. Thie static linking line is different and
>>> not relevant for _gpaw.so.
>>>
>>> Setting this environment variable solved the problem:
>>> LD_PRELOAD = /soft/mkl/10.2.2.025/lib/em64t/libmkl_core.so:/soft/mkl/10.2.2.025/
>>> lib/em64t/libmkl_sequential.so
>>>
>>> I don't fully comprehend why LD_PRELOAD is needed here, but it seems to solve
>>> the problem. Maybe someone on the list that has in-depth knowledge of the linker
>>> can comment.
>>>
>>> Nichols A. Romero, Ph.D.
>>> Argonne Leadership Computing Facility
>>> Argonne National Laboratory
>>> Building 240 Room 2-127
>>> 9700 South Cass Avenue
>>> Argonne, IL 60490
>>> (630) 252-3441
>>>
>>>
>>> ----- Original Message -----
>>> From: "Marcin Dulak" <Marcin.Dulak at fysik.dtu.dk>
>>> To: "Boris Averkiev" <averkiev75 at yahoo.com>
>>> Cc: "gpaw-users at listserv.fysik.dtu.dk" <gpaw-users at servfys.fysik.dtu.dk>
>>> Sent: Friday, May 21, 2010 2:39:19 AM
>>> Subject: Re: [gpaw-users] installation of gpaw
>>>
>>> Hi,
>>>
>>> let's continue on gpaw-users. The information is useful to the others.
>>>
>>> Boris Averkiev wrote:
>>>
>>>
>>>
>>>> Dear Marcin,
>>>>
>>>> Thank you very much for your reply.
>>>> Of course I have forgotten to uncomment settings in customize.py, so now they worked and now I didn't change config.py (I started everything from the very beginning).
>>>> Now I used gcc x86_64-suse-linux ver 4.1.2
>>>> Open MPI 1.4.1 and the same mkl - mkl/10.2.5.035
>>>>
>>>> I didn't use any blas/lapack to build numpy - it compiled without them.
>>>> So, should I reinstall NumPy with MKL?
>>>>
>>>>
>>>>
>>>>
>>> i would say that is tricky to have both numpy and gpaw-python linked to
>>> non-standard blas/lapack.
>>> As a first try it's USUALLY better to have numpy built with it's
>>> internal defaults.
>>> You may consider downloading the file
>>> https://svn.fysik.dtu.dk/projects/gpaw/trunk/gpaw/test/numpy_zdotc_graphite.py
>>> and run it with gpaw-python.
>>> If it crashes you have some problems with blas/lapack.
>>>
>>>
>>>
>>>
>>>> I also set scalapack = False in customize.py, as you said.
>>>> Now after command "python setup.py build_ext 2>&1 | tee build_ext.log" I've got
>>>> * Scientific is not installed.
>>>> You will not be able to write and read wave functions
>>>> in the netCDF format.
>>>> * Using standard lapack
>>>> * Architecture: linux-x86_64
>>>> * Building a custom interpreter
>>>> So, it doesn't say anything about "Only a serial version of gpaw was built!"
>>>> But gpaw-test still fails with the same output.
>>>>
>>>>
>>>>
>>>>
>>> lines such:
>>>
>>> MKL ERROR: Parameter 5 was incorrect on entry to ZHEEV
>>> 0.036 OK
>>>
>>> suggest that you may have a mismatch in numpy's and gpaw-python
>>> libraries, however:
>>>
>>> *** libmkl_mc.so *** failed with error : /soft/intel/mkl/10.2.5.035/lib/em64t/libmkl_mc.so: undefined symbol: mkl_dft_commit_descriptor_s_c2c_md_omp
>>> *** libmkl_def.so *** failed with error : /soft/intel/mkl/10.2.5.035/lib/em64t/libmkl_def.so: undefined symbol: mkl_dft_commit_descriptor_s_c2c_md_omp
>>> MKL FATAL ERROR: Cannot load neither libmkl_mc.so nor libmkl_def.so
>>>
>>> shows that linking is not correct. I think you should follow the intel
>>> link advisor to find the correct linking.
>>> Start with the minimum recommended, if you use gcc:
>>> "-L$MKLPATH $MKLPATH/libmkl_solver_lp64_sequential.a -Wl,--start-group
>>> -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -Wl,--end-group -lpthread"
>>> which translates probably eventually to (strangely): ['mkl_intel_lp64',
>>> 'mkl_sequential', 'mkl_core', 'guide', 'mkl_lapack', 'mkl_def']
>>>
>>>
>>>
>>>
>>>> May be I should also install SciPy?
>>>>
>>>>
>>>>
>>>>
>>> you can do it later if you find that you need it (some new gpaw
>>> functionality like vdw, response(? i think) needs it).
>>>
>>>
>>>
>>>> Also during building it has messages like
>>>> c/libxc/src/work_lda.c: In function âwork_ldaâ:
>>>> c/libxc/src/lda_c_pw.c:125: warning: âvcpâ may be used uninitialized in this function
>>>> c/libxc/src/lda_c_pw.c:125: warning: âdalphaâ may be used uninitialized in this function
>>>> c/libxc/src/lda_c_pw.c:125: warning: âd2alphaâ may be used uninitialized in this function
>>>>
>>>>
>>>> c/libxc/src/work_gga_x.c:46: warning: âldfdxâ may be used uninitialized in this function
>>>>
>>>> c/libxc/src/gga_xc_hcth.c:203: warning: initialization from incompatible pointer type
>>>>
>>>>
>>>>
>>>>
>>> for the moment ignore this.
>>>
>>> Marcin
>>>
>>>
>>>
>>>> Thank you
>>>>
>>>> Boris
>>>>
>>>>
>>>>
>>>> --- On Tue, 5/18/10, Marcin Dulak <Marcin.Dulak at fysik.dtu.dk> wrote:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>> From: Marcin Dulak <Marcin.Dulak at fysik.dtu.dk>
>>>>> Subject: Re: [gpaw-users] installation of gpaw
>>>>> To: "Boris Averkiev" <averkiev75 at yahoo.com>
>>>>> Cc: gpaw-users at listserv.fysik.dtu.dk
>>>>> Date: Tuesday, May 18, 2010, 11:25 PM
>>>>> Hi,
>>>>>
>>>>> Boris Averkiev wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> I am trying to install gpaw on cluster in my home
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> directory (I am just user, not administrator). As it is
>>>>> written in manual, I first did Custom installation
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> I installed NumPy - numpy-1.3.0 in my home
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> directory
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>> what blas/lapack did you use to build numpy?
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> Also I installed ASE - python-ase-3.3.1.1390
>>>>>> We have blas and lapac libraries in MKL, so I
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> specified the path to these libraries in customize.py
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> #library_dirs =
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> ['/soft/intel/mkl/10.2.5.035/lib/em64t']
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> And libraries themselves
>>>>>> #libraries = ['mkl_lapack', 'mkl_intel_thread',
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> 'mkl_def', 'mkl-mc', 'mkl_core', 'guide', 'mkl_intel_ilp64',
>>>>> 'mkl_blas95_ilp64']
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> However, it didn’t work. When I run “python
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> setup.py build_ext 2>&1 | tee build_ext.log”
>>>>> command, I got error “cannot find -lblas”, so I changed
>>>>> all “blas” to “mkl_blas95_ilp64” and all
>>>>> “lapack” to “mkl_lapack” in config.py. After that it
>>>>> compiled, however it also gave the following message:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>> there is no need to change config.py (it should not be
>>>>> changed), are you sure that your settings in customize.py
>>>>> are uncommented (I see # in front of the variables)?
>>>>> Every time you compile please run `python setup.py clean`
>>>>> (or just remove the build directory).
>>>>> Linking with mkl is tricky: i would start with a guess at
>>>>> http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/,
>>>>> and then search for missing symbols using nm (for
>>>>> undefined reference to symbol_ use: nm
>>>>> /soft/intel/mkl/10.2.5.035/lib/em64t/lib*.so | grep "T
>>>>> symbol_")
>>>>> Please also set scalapack = False in customize.py first.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> * Scientific is not installed.
>>>>>> You will not be able to write and
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> read wave functions
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> in the netCDF format.
>>>>>> * Using standard mkl_lapack
>>>>>> * Compiling with ScaLapack
>>>>>> * Architecture: linux-x86_64
>>>>>> * Only a serial version of gpaw was built!
>>>>>>
>>>>>> We have MPI - intel mpi, but I don't know how should I
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> specify it.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>> let's get the serial version working first.
>>>>>
>>>>> Best regards,
>>>>>
>>>>> Marcin
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> When I run test gpaw-test 2>&1 | tee test.log
>>>>>> it fails. I have attached the test.log file
>>>>>> Information about cluster - SGI Altix XE 1300 Linux
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> Cluster
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> Could you help me to resolve those problems?
>>>>>> Thank you
>>>>>> Boris
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>> ------------------------------------------------------------------------
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> _______________________________________________
>>>>>> gpaw-users mailing list
>>>>>> gpaw-users at listserv.fysik.dtu.dk
>>>>>> https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
>
More information about the gpaw-users
mailing list