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

Yurko Natanzon yurko.natanzon at gmail.com
Fri Oct 10 12:50:58 CEST 2008


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


More information about the Wien mailing list