[Wien] Compilation: how to specify a path to mpif.h?

Laurence Marks L-marks at northwestern.edu
Fri Oct 10 13:55:36 CEST 2008


What you want to do for a problem such as this is use google (or some
other search engine), then follow the path of links for an answer. A
google search on blacs_gridinfo for instance will show that this is a
scalapack routine (google scalapack as well if needed). This is a set
of routines that you need in addition to an mpi compiler; a version of
the lapack routines that works across many computers. (lapw0 does not
need this, and I guess lapw2 does not as well although I have not
checked in detail.) Best is an optimized library; I don't know exactly
what you have so you might have to compile it yourself.

On Fri, Oct 10, 2008 at 5:50 AM, Yurko Natanzon
<yurko.natanzon at gmail.com> wrote:
> Dear Robert and Laurence,
> Thank you for your advice, it did help.
>
> Now I have another question, let me post it here. I've successfully
> compiled lapw0 and lapw2 in parallel, but still have problems with
> lapw1 on the link stage:
>
> make PARALLEL='-DParallel' TYPE='REAL' TYPE_COMMENT='\!_REAL' \
>          ./lapw1_mpi FORT=/opt/mpich/pgi64/ch_p4/bin/mpif90 FFLAGS='
> -Mfreeform -fast -Kieee '-DParallel''
> make[1]: Entering directory `/home/users/natanzon/dvd/wien2k/SRC_lapw1'
> /opt/mpich/pgi64/ch_p4/bin/mpif90  -o ./lapw1_mpi abc.o atpar.o
> bandv1.o calkpt.o cbcomb.o coors.o cputim.o dblr2k.o dgeqrl.o dgewy.o
> dgewyg.o dlbrfg.o dsbein1.o dscgst.o dstebz2.o dsyevx2.o dsyr2m.o
> dsyrb4.o dsyrb5l.o dsyrdt4.o dsywyv.o dsyxev4.o dvbes1.o eisps.o
> errclr.o errflg.o forfhs.o gaunt1.o gaunt2.o gbass.o gtfnam.o hamilt.o
> hns.o horb.o inikpt.o inilpw.o lapw1.o latgen.o lmsort.o locdef.o
> lohns.o lopw.o matmm.o modules.o nn.o outerr.o outwin.o prtkpt.o
> prtres.o pzheevx16.o rdswar.o rint13.o rotate.o rotdef.o seclit.o
> seclr4.o seclr5.o select.o service.o setkpt.o setwar.o sphbes.o
> stern.o tapewf.o ustphx.o vectf.o warpin.o wfpnt.o wfpnt1.o ylm.o
> zhcgst.o zheevx2.o zher2m.o jacdavblock.o make_albl.o global2local.o
> par_syrk.o my_dsygst.o refblas_dtrsm.o seclit_par.o pdsyevx17.o
> pdstebz17.o -L/home/users/natanzon/acml/pgi64/lib
> -L/opt/pgi/linux86-64/7.1-4/libso/ -L/opt/pgi/linux86-64/7.1-4/libso
> -L/opt/mpich/pgi64/ch_p4/lib -L/home/banatanz/acml/pgi64_mp/lib -lpgmp
> -lpgbind -lacml_mp -lacml_mv -lmpich
> modules.o: In function `parallel_init_parallel_':
> modules_tmp_.F:(.text+0x1ea): undefined reference to `sl_init_'
> modules_tmp_.F:(.text+0x3b2): undefined reference to `sl_init_'
> modules.o: In function `parallel_init_parallelmatrices_':
> modules_tmp_.F:(.text+0x64f): undefined reference to `blacs_gridinfo_'
> modules_tmp_.F:(.text+0x694): undefined reference to `descinit_'
> modules_tmp_.F:(.text+0x6b3): undefined reference to `blacs_gridinfo_'
> modules_tmp_.F:(.text+0x6d1): undefined reference to `numroc_'
> modules_tmp_.F:(.text+0x6fe): undefined reference to `numroc_'
> modules_tmp_.F:(.text+0x72b): undefined reference to `numroc_'
> modules_tmp_.F:(.text+0x781): undefined reference to `descinit_'
> modules_tmp_.F:(.text+0x7c6): undefined reference to `descinit_'
> modules.o: In function `lapw_timer_init_all_timer_':
> modules_tmp_.F:(.text+0x865): undefined reference to `slboot_'
> ...
> and many more error messages like this. I suppose that this is because
> of lack of some libraries so I'be glad if you tell me which ones. The
> important lines of the Makefile for lapw1 are the following:
> FC = /opt/pgi/linux86-64/7.1-4/bin/pgf90
> MPF = /opt/mpich/pgi64/ch_p4/bin/mpif90
> CC = /opt/pgi/linux86-64/7.1-4/bin/pgcc
> FOPT =  -Mfreeform -fast -Kieee
> FPOPT = -Mfreeform -fast -Kieee
> DParallel = '-DParallel'
> FGEN = $(PARALLEL)
> LDFLAGS = -L/home/users/natanzon/acml/pgi64/lib
> -L/opt/pgi/linux86-64/7.1-4/libso/
> R_LIBS = -L/home/users/natanzon/acml/pgi64/lib -lacml
> C_LIBS = $(R_LIBS)
> RP_LIBS =  -L/opt/pgi/linux86-64/7.1-4/libso
> -L/opt/mpich/pgi64/ch_p4/lib -L/home/banatanz/acml/pgi64_mp/lib -lpgmp
> -lpgbind -lacml_mp -lacml_mv -lmpich
> CP_LIBS = $(RP_LIBS)
> DESTDIR = .
>
> with kind regards,
> Yurko
>
> 2008/10/9 Robert Laskowski <rolask at theochem.tuwien.ac.at>:
>> Hi,
>> did you compiled it using mpif90 script, usually this should be set the enviroment for mpi during compilation.
>>
>> regards
>>
>> Robert
>>
>> On Wednesday 08 October 2008 17:04:37 Yurko Natanzon wrote:
>>> Dear wien2k users,
>>> I've successfully compiled Wien2k and now want to recompile it for
>>> parallel execution. I have everything required for this (mpich,
>>> scalapack). It seems, only lapw0, lapw1 and lapw2 should be
>>> recompiled, yes? So, I get the errors like this:
>>>
>>> PGF90-S-0017-Unable to open include file: mpif.h (rean0.F: 23)
>>>
>>> I know where mpif.h is located but how to specify a path? I've tried
>>> it in a different ways, but with no success. So i ended up in
>>> modifying .f files by hand replacing the code:
>>> #ifdef Parallel
>>>   include 'mpif.h'
>>> #endif
>>> by the following:
>>> #ifdef Parallel
>>>   include '/opt/mpich/pgi64/ch_p4/include/mpif.h'
>>> #endif
>>>
>>> It seems to work, but this is not convenient, especially if i want to
>>> install updates. So, could you propose me how to do it in siteconfig?
>>> My siteconfig settings for parralel execution are shown below:
>>>
>>> shared memory: yes
>>> compiler:  /opt/pgi/linux86-64/7.0/bin/pgf95
>>>   RP  RP_LIB(SCALAPACK+PBLAS):
>>> -L/home/users/natanzon/dvd/siesta/lib-pgf -L/opt/mpich/pgi64/ch_p4/lib
>>> -lblacs -lblacsF77init -lblacsCinit -lblacsF77init -lblacs -lscalapack
>>> -lmpich
>>>   FP  FPOPT(par.comp.options): -Mfreeform -fast -Kieee -Wl,
>>> -R/opt/mpich/pgi64/ch_p4/include
>>>
>>> I have a Linux cluster with AMD Opterons, pgf compiler, mpich and ACML
>>> libraries installed.
>>>
>>> regards,
>>> Yurko
>>>
>>
>>
>>
>> --
>> Dr Robert Laskowski
>>
>> Vienna University of Technology,
>> Institute of Materials Chemistry,
>> Getreidemarkt 9/165-TC, A-1060 Vienna
>>
>> tel. +43 1 58801 15686
>> Fax  +43 1 58801 15698
>> _______________________________________________
>> Wien mailing list
>> Wien at zeus.theochem.tuwien.ac.at
>> http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
>>
>
>
>
> --
> Yurko (aka Yuriy, Iurii, Jurij etc) Natanzon
> PhD Student
> Henryk Niewodniczan`ski Institute of Nuclear Physics
> Polish Academy of Sciences
> ul. Radzikowskiego 152,
> 31-342 Krako`w, Poland
> Email: Yurii.Natanzon at ifj.edu.pl, yurko.natanzon at gmail.com
> _______________________________________________
> Wien mailing list
> Wien at zeus.theochem.tuwien.ac.at
> http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
>



-- 
Laurence Marks
Department of Materials Science and Engineering
MSE Rm 2036 Cook Hall
2220 N Campus Drive
Northwestern University
Evanston, IL 60208, USA
Tel: (847) 491-3996 Fax: (847) 491-7820
email: L-marks at northwestern dot edu
Web: www.numis.northwestern.edu
Chair, Commission on Electron Crystallography of IUCR
www.numis.northwestern.edu/
Electron crystallography is the branch of science that uses electron
scattering to study the structure of matter.


More information about the Wien mailing list