Help on mixed programming Fortran and C with intel fortran and openmpi

Help on mixed programming Fortran and C with intel fortran and openmpi

Hi, we have linux version intel fortran with openmpi on our
server. Now I have a package coded with C and fortran
languages, for example, as follows, how can I compile and
link them togather with intel fortran and openmpi? thanks.

Best Regards,

James

main.f
integer ncsub
write(*,*)'From main file'
call csub(ncsub)
stop
end

file1.c
int csub_(int ncsub)
{
printf("from csub, ncsub=%d\n",ncsub);
int ii=5;
fsub_(&ii);
return(1);
}

file2.f
subroutine fsub(ii)
integer ii
write(*,*)' From fsub'
write(*,*)' ii=',ii
return
end

31 posts / novo 0
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.

Quoting - james_uta

Hi, we have linux version intel fortran with openmpi on our
server. Now I have a package coded with C and fortran
languages, for example, as follows, how can I compile and
link them togather with intel fortran and openmpi? thanks.

Best Regards,

James

main.f
integer ncsub
write(*,*)'From main file'
call csub(ncsub)
stop
end

file1.c
int csub_(int ncsub)
{
printf("from csub, ncsub=%dn",ncsub);
int ii=5;
fsub_(&ii);
return(1);
}

file2.f
subroutine fsub(ii)
integer ii
write(*,*)' From fsub'
write(*,*)' ii=',ii
return
end

Assuming you built OpenMPI from source using the Intel Fortran compiler:
(see http://software.intel.com/en-us/articles/performance-tools-for-software-developers-building-open-mpi-with-the-intel-compilers/ this doc is a little dated, but it still is applicable)

then mpif77 and mpif90 wrappers will invoke the Intel Fortran compiler, and mpicc mpicxx will invoke gcc and g++.

then it's trivial:

mpicc -c file1.c
mpif77 -c file2.f
mpif77 -o myprog main.f file1.o file2.o

ron

Quoting - Ronald Green (Intel)

Assuming you built OpenMPI from source using the Intel Fortran compiler:
(see http://software.intel.com/en-us/articles/performance-tools-for-software-developers-building-open-mpi-with-the-intel-compilers/ this doc is a little dated, but it still is applicable)

then mpif77 and mpif90 wrappers will invoke the Intel Fortran compiler, and mpicc mpicxx will invoke gcc and g++.

then it's trivial:

mpicc -c file1.c
mpif77 -c file2.f
mpif77 -o myprog main.f file1.o file2.o

ron

I have intel fortran compiler ifort and openmpi compiler mpicc, could you tell me how to compile it? thanks.

Quoting - james_uta

I have intel fortran compiler ifort and openmpi compiler mpicc, could you tell me how to compile it? thanks.

mpicc -c file1.c
ifort -c -I file2.f
ifort -o myprog.exe -I main.f file1.o file2.o -L -lmpi

I haven't check this, so you may need to change the -lmpi to the name of the mpi library (this -lmpi assumes that libmpi.a exists in your lib dir)

For more help, go to open-mpi.org.

ron

Appreciate.

Quoting - Ronald W. Green (Intel)

mpicc -c file1.c
ifort -c -I file2.f
ifort -o myprog.exe -I main.f file1.o file2.o -L -lmpi

I haven't check this, so you may need to change the -lmpi to the name of the mpi library (this -lmpi assumes that libmpi.a exists in your lib dir)

For more help, go to open-mpi.org.

ron

Hi Ron, it works now, appreciate your help.
ButI need to do itat two steps as follows:
1)make libtmp.a from file1.c and file2.f first,
2)link the libtmp.a to main.f next, appreciate.
Could you please show me how to do it? thanks in advance.

James

To make a static (.a) library,

$ ar -cvrs lib.a obj1.o obj2.o obj3.o ......

To link to static lib:

$ ifort (blah blah blah) -L -l

By convention libraries are named "libXXX.a" where XXX is the name of the library that is passed with the -l flag, e.g. -lXXX.

Oh by the way substitute mpi version of ifort etc (which are really just wrappers) as appropriate.....

Does that help, or did you already know that and it wasn't any help at all - or was I wrong and it didn't even work? :)

mrentropy

Quoting - mrentropy

To make a static (.a) library,

$ ar -cvrs lib.a obj1.o obj2.o obj3.o ......

To link to static lib:

$ ifort (blah blah blah) -L -l

By convention libraries are named "libXXX.a" where XXX is the name of the library that is passed with the -l flag, e.g. -lXXX.

Oh by the way substitute mpi version of ifort etc (which are really just wrappers) as appropriate.....

Does that help, or did you already know that and it wasn't any help at all - or was I wrong and it didn't even work? :)

mrentropy

Appreciate Mrentropy, by following your suggestion I did the following way:

$ ar -cvrs libtmp.a file1.o file2.o
a - file1.o
a - file2.o

it is OK, then I did

$ ifort -o my.ex main.f -L./libtmp.a -I./
/tmp/ifort3tgOKM.o(.text+0x53): In function `MAIN__':
: undefined reference to `csub_'
[wenjun@petros new_test]$ ifort -o my.ex main.o -L./libtmp.a -I./
IPO Warning: can not find "main.o"
ld: main.o: No such file: No such file or directory

it is NOT OK, then I did another way
$ ifort -I/opt/openmpi/include -c main.f
$ifort -I/opt/openmpi/include -o my.ex main.o -I./ -L./libtmp.a -L/opt/openmpi/lib/libmpi.a
main.o(.text+0x53): In function `MAIN__':
: undefined reference to `csub_'

Please help me to fix it, appreciate.

James

You didn't follow all of mrentropy's (Peter's) advice. The options are -l (lower-case "l" to name the library), and -L (upper-case "L" to specify the path to it), so -L wasused incorrectly.

Try these steps:

mpicc -c file1.c
ifort -c -I file2.f
ar -cvrs libtmp.a file1.o file2.o
ifort -o my.ex main.f -L./ -ltmp

Quoting - Kevin Davis (Intel)

You didn't follow all of mrentropy's (Peter's) advice. The options are -l (lower-case "l" to name the library), and -L (upper-case "L" to specify the path to it), so -L wasused incorrectly.

Try these steps:

mpicc -c file1.c
ifort -c -I file2.f
ar -cvrs libtmp.a file1.o file2.o
ifort -o my.ex main.f -L./ -ltmp

Appreciate your great help, it works now.
But these are onlysimplified case for what I am doing now. When Iapplied this way to my real package. The lots of error information. Please help me to fix it, appreciate.

James

The lib makefile is
================================================

CC = /opt/openmpi/bin/mpicc
FC = ifort
AR = ar
FFLAGS = -O -I/opt/openmpi/include
CFLAGS = -O

OBJ_BLAS = blas1.o blas2.o blas3.o xerbla.o lsame.o
OBJ_TIME = md_timer_mpi.o
OBJ_MPI = md_wrap_mpi_c.o
OBJ_AZ = az_bilu.o az_cg.o az_cgs.o
az_cgstab.o az_check.o az_comm.o
az_converge.o az_dd_overlap.o az_dgemv2.o
az_dgemv3.o az_domain_decomp.o az_fortran_wrap.o
az_scaling.o az_flop_cnt.o az_gmres.o
az_gmresr.o az_ilu_util.o az_ilut.o
az_interface.o az_lu_y12.o az_matrix_util.o
az_matvec_mult.o az_old_matvec_mult.o az_pad_utils.o
az_poly.o az_precond.o az_qmrcgs.o
az_rilu.o az_solve.o az_sort.o
az_subdomain_solver.o az_tools.o az_util.o
az_icc.o az_fix_pt.o

OBJ_Y12M = y12m.o y12mae.o y12maf.o
y12mbe.o y12mbf.o y12mce.o
y12mcf.o y12mde.o y12mdf.o
y12mfe.o y12mge.o y12mhe.o
y12cck.o

OBJ_LA = la_dgetrf.o la_dgetri.o la_ilaenv.o
la_dgetf2.o la_dlaswp.o la_dtrtri.o
la_dtrti2.o la_dgetrs.o la_dgeco.o
la_dgedi.o la_dgefa.o la_dpotf2.o
la_dpotrf.o la_dlamch.o la_dlaic1.o
la_ieeeck.o

OBJ_F = $(OBJ_LA) $(OBJ_Y12M) $(OBJ_BLAS) az_reorder.o
OBJ_C = $(OBJ_AZ) $(OBJ_TIME) $(OBJ_MPI)
OBJ = $(OBJ_C) $(OBJ_F)

%.o:%.f
$(FC) $(FFLAGS) -c $<
%.o:%.c
$(CC) $(CFLAGS) -c $<

aztec: $(OBJ)

================================================
Application makefile is
================================================

OBJ = az_tutorial_with_MPI.o
CC = /opt/openmpi/bin/mpicc
FC = ifort

LDFLAGS = -L../lib -laztec -lm
CFLAGS = -O -c
FFLAGS = -O -c -I/opt/openmpi/include

all: sample

sample: $(OBJ)
ifort -I/opt/openmpi/include $(OBJ) -o sample $(LDFLAGS)
clean:
@echo "cleaning ..."
/bin/rm -f $(OBJ)

================================================
the link errors are
================================================
ifort -O -c -I/opt/openmpi/include -c -o az_tutorial_with_MPI.o az_tutorial_with_MPI.f
ifort -I/opt/openmpi/include az_tutorial_with_MPI.o -o sample -L../lib -laztec -lm
az_tutorial_with_MPI.o(.text+0x20): In function `MAIN__':
: undefined reference to `mpi_init_'
az_tutorial_with_MPI.o(.text+0x1bf): In function `MAIN__':
: undefined reference to `mpi_finalize_'
../lib/libaztec.a(az_interface.o)(.text+0x7): In function `AZ_second':
: undefined reference to `MPI_WTIME'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0xe): In function `get_parallel_info':
: undefined reference to `ompi_mpi_comm_world'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x13): In function `get_parallel_info':
: undefined reference to `MPI_Comm_size'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x1c): In function `get_parallel_info':
: undefined reference to `ompi_mpi_comm_world'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x21): In function `get_parallel_info':
: undefined reference to `MPI_Comm_rank'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x75): In function `md_read':
: undefined reference to `ompi_mpi_comm_world'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x7e): In function `md_read':
: undefined reference to `ompi_mpi_byte'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x8a): In function `md_read':
: undefined reference to `MPI_Recv'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x9b): In function `md_read':
: undefined reference to `ompi_mpi_comm_world'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0xa4): In function `md_read':
: undefined reference to `ompi_mpi_byte'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0xad): In function `md_read':

../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x3b8): In function `md_mpi_write':
: undefined reference to `ompi_mpi_byte'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x3c4): In function `md_mpi_write':
: undefined reference to `MPI_Send'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x3d5): In function `md_mpi_write':
: undefined reference to `ompi_mpi_byte'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x3de): In function `md_mpi_write':
: undefined reference to `MPI_Send'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x3f8): In function `md_mpi_wait':
: undefined reference to `MPI_Wait'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x42b): In function `md_mpi_wait':
: undefined reference to `ompi_mpi_byte'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x434): In function `md_mpi_wait':
: undefined reference to `MPI_Get_count'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x46e): In function `md_mpi_iwrite':
: undefined reference to `ompi_mpi_byte'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x47a): In function `md_mpi_iwrite':
: undefined reference to `MPI_Isend'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x48c): In function `md_mpi_iwrite':
: undefined reference to `ompi_mpi_byte'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x495): In function `md_mpi_iwrite':
: undefined reference to `MPI_Isend'
make: *** [sample] Error 1

================================================

If you have built openmpi for ifort, you can use mpif90 to link, then the mpi libraries would be searched automatically without naming them or the library path. When using ifort rather than mpif90, you must specify the mpi libraries. Maybe something like -lmpif was meant where you have -lm, which is redundant.

Quoting - tim18
If you have built openmpi for ifort, you can use mpif90 to link, then the mpi libraries would be searched automatically without naming them or the library path. When using ifort rather than mpif90, you must specify the mpi libraries. Maybe something like -lmpif was meant where you have -lm, which is redundant.

Thanks, I try it mpif90 on our server, it shows
$ mpif90
--------------------------------------------------------------------------
Unfortunately, this installation of Open MPI was not compiled with
Fortran 90 support. As such, the mpif90 compiler is non-functional.
--------------------------------------------------------------------------
So we don't have it.

I replaced -lm with -lmpif in application make file on both ways as follows
1)
$ make
ifort -I/opt/openmpi/include az_tutorial_with_MPI.o -o sample -L../lib -laztec -L/opt/openmpi/lib -lmpif
IPO link: can not find -lmpif
ifort: error: problem during multi-file optimization compilation (code 1)
2)
$ make
ifort -I/opt/openmpi/include az_tutorial_with_MPI.o -o sample -L../lib -laztec -lmpif
IPO link: can not find -lmpif
ifort: error: problem during multi-file optimization compilation (code 1)

Please help me to fix it, appreciate.

You will need the ifort compiled openmpi libraries. The setup for ifort with openmpi should have been explained in the URL mentioned above, and information on openmpi web site should be relevant as well.

Quoting - tim18
You will need the ifort compiled openmpi libraries. The setup for ifort with openmpi should have been explained in the URL mentioned above, and information on openmpi web site should be relevant as well.

I agree. But I need the help on the specific step to fix it.

For the simple example at the beginning, they include all the compilation options that are needed for this package, but it can not be applied for this package.

Youcansee that the parameters undifined in theerrorlink information are belong to openmpi includehead file, theyare already included in thelink option inthe application makefile. And those parameters were used in avery simple one-sentence wrap function. I don't knowwhat else I can do to letthe code find them out.

Please help me if you any one has some suggestion on it, thanks in advance.

James

If you want a pre-built MPI with ifort libraries, I don't think you have any choice other than Intel MPI.
If you tried the steps presented in the URL given above to build openmpi with ifort, and had problems, you could ask about it here, on the Intel HPC forum, or on the openmpi help forum.

-lmpi is not being found. you need a -L option to help it along:

-L/opt/openmpi/lib -lmpi

Quoting - tim18
If you want a pre-built MPI with ifort libraries, I don't think you have any choice other than Intel MPI.
If you tried the steps presented in the URL given above to build openmpi with ifort, and had problems, you could ask about it here, on the Intel HPC forum, or on the openmpi help forum.

You are right, it didn't have the Intel MPI library for library compilation.

I thought openmpi library would be enough due to 3-file simple casedidn't needit. Could you please tell me how to add it specifically into library makefile? appreciate.

Quoting - Ronald W. Green (Intel)

-lmpi is not being found. you need a -L option to help it along:

-L/opt/openmpi/lib -lmpi

Appreciate Ron, I changed in the application makefile. Compilation is OK now as follows

$ make
ifort -I/opt/openmpi/include az_tutorial_with_MPI.o -o sample -L../lib -laztec -L/opt/openmpi/lib -lmpi

But when I ran it, it showed
$ ./sample
./sample: symbol lookup error: /opt/lam/gnu/lib/libmpi.so.0: undefined symbol: lam_ssi_base_module_compare

I didn't use the lam parallel library in compilation options, but it showed the running code need it and couldn't find it!
Please help me to fix it, appreciate.

You must set your LD_LIBRARY_PATH on all nodes so that you get the same libmpi shared library at run time which you used when building the application. e.g.
export LD_LIBRARY_PATH=/opt/openmpi/lib:$LD_LIBRARY_PATH
According to the foregoing, I still expect trouble, if you have built with ifort but use a library built with a different Fortran.

Quoting - tim18
You must set your LD_LIBRARY_PATH on all nodes so that you get the same libmpi shared library at run time which you used when building the application. e.g.
export LD_LIBRARY_PATH=/opt/openmpi/lib:$LD_LIBRARY_PATH
According to the foregoing, I still expect trouble, if you have built with ifort but use a library built with a different Fortran.

You are right. Could you please tell me where I should set this path and how I can add it into Makefile? thanks.

Quoting - james_uta

You are right. Could you please tell me where I should set this path and how I can add it into Makefile? thanks.

You set LD_LIBRARY_PATH in your run time environment, not the build Makefile.

Quoting - james_uta

You are right. Could you please tell me where I should set this path and how I can add it into Makefile? thanks.

put the export statement for LD_LIBRARY_PATH in your .bashrc file in your home directory.

Quoting - Ronald W. Green (Intel)

put the export statement for LD_LIBRARY_PATH in your .bashrc file in your home directory.

Thanks, how can I add it into my compilation option?

Quoting - james_uta

Thanks, how can I add it into my compilation option?

Another thing I don't undstand is why my excute code need the following

$ ./sample
./sample: symbol lookup error: /opt/lam/gnu/lib/libmpi.so.0: undefined symbol: lam_ssi_base_module_compare

because I never didn't add any optionof lam-gnu-mpi into my makefiles for the compilation and link.

Please help me, thanks.

Quoting - james_uta

Another thing I don't undstand is why my excute code need the following

$ ./sample
./sample: symbol lookup error: /opt/lam/gnu/lib/libmpi.so.0: undefined symbol: lam_ssi_base_module_compare

because I never didn't add any optionof lam-gnu-mpi into my makefiles for the compilation and link.

Please help me, thanks.

Sorry for the wrong rates on above, it doesn't mean anything. This was myfirst try,I tried to removed them but it didn't let me chang them. Iwish I could remove all of them.

I appreciateyou guys for any helpto me.

Please continue helping me to fix the problem, thanks in advance.

Quoting - james_uta

Another thing I don't undstand is why my excute code need the following

$ ./sample
./sample: symbol lookup error: /opt/lam/gnu/lib/libmpi.so.0: undefined symbol: lam_ssi_base_module_compare

because I never didn't add any optionof lam-gnu-mpi into my makefiles for the compilation and link.

Please help me, thanks.

An mpi program has to be launched by mpiexec, after booting the runtime with mpdboot.

To help with the runtime library dependencies, perhaps you should link with -static option.

At this point you should go out to openmpi.org and read up on running your code. We have helped you get the code compiled. You now need to understand the Open MPI runtime environment and that is outside our scope on this forum.

ron

Quoting - Ronald W. Green (Intel)

An mpi program has to be launched by mpiexec, after booting the runtime with mpdboot.

To help with the runtime library dependencies, perhaps you should link with -static option.

At this point you should go out to openmpi.org and read up on running your code. We have helped you get the code compiled. You now need to understand the Open MPI runtime environment and that is outside our scope on this forum.

ron

Appreciate, Ron. I tried in this way, but it shows many errors in the link as follows. please help me to fix it, appreciate.

James
ifort -I/opt/openmpi/include az_tutorial_with_MPI.o -o sample -static -L/opt/openmpi/lib -lmpi -L../lib -laztec
/opt/openmpi/lib/libmpi.a(comm_init.o)(.text+0x1a5): In function `ompi_comm_init':
: undefined reference to `opal_hash_table_t_class'
/opt/openmpi/lib/libmpi.a(comm_init.o)(.text+0x1b7): In function `ompi_comm_init':
: undefined reference to `opal_hash_table_t_class'
/opt/openmpi/lib/libmpi.a(comm_init.o)(.text+0x1ce): In function `ompi_comm_init':
: undefined reference to `opal_hash_table_t_class'
/opt/openmpi/lib/libmpi.a(comm_init.o)(.text+0x1db): In function `ompi_comm_init':
: undefined reference to `opal_hash_table_t_class'
/opt/openmpi/lib/libmpi.a(comm_init.o)(.text+0x207): In function `ompi_comm_init':
: undefined reference to `opal_hash_table_init'
/opt/openmpi/lib/libmpi.a(comm_init.o)(.text+0x474): In function `ompi_comm_init':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(comm_init.o)(.text+0x489): In function `ompi_comm_init':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(comm_init.o)(.text+0x49e): In function `ompi_comm_init':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(comm_init.o)(.text+0x4b3): In function `ompi_comm_init':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(comm_init.o)(.text+0x4c8): In function `ompi_comm_init':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(comm_init.o)(.text+0x4dd): more undefined references to `opal_class_initialize' follow
/opt/openmpi/lib/libmpi.a(comm_init.o)(.text+0x4ed): In function `ompi_comm_init':
: undefined reference to `opal_hash_table_t_class'
/opt/openmpi/lib/libmpi.a(comm_init.o)(.text+0x4f2): In function `ompi_comm_init':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(comm_init.o)(.text+0x5c0): In function `ompi_comm_allocate':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(comm_init.o)(.text+0x738): In function `ompi_comm_finalize':
: undefined reference to `opal_output'
/opt/openmpi/lib/libmpi.a(comm_init.o)(.data+0x4): undefined reference to `opal_object_t_class'
/opt/openmpi/lib/libmpi.a(comm.o)(.text+0x29c): In function `ompi_comm_set':
: undefined reference to `opal_hash_table_t_class'
/opt/openmpi/lib/libmpi.a(comm.o)(.text+0x2a8): In function `ompi_comm_set':
: undefined reference to `opal_hash_table_t_class'
/opt/openmpi/lib/libmpi.a(comm.o)(.text+0x2c0): In function `ompi_comm_set':
: undefined reference to `opal_hash_table_t_class'
/opt/openmpi/lib/libmpi.a(comm.o)(.text+0x2cd): In function `ompi_comm_set':
: undefined reference to `opal_hash_table_t_class'
/opt/openmpi/lib/libmpi.a(comm.o)(.text+0x2f3): In function `ompi_comm_set':
: undefined reference to `opal_hash_table_init'
/opt/openmpi/lib/libmpi.a(comm.o)(.text+0x3bf): In function `ompi_comm_set':
: undefined reference to `opal_hash_table_t_class'
/opt/openmpi/lib/libmpi.a(comm.o)(.text+0x3c4): In function `ompi_comm_set':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(comm.o)(.text+0x100f): In function `ompi_comm_get_rprocs':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(comm.o)(.text+0x100f): In function `ompi_comm_get_rprocs':
: undefined reference to `orte_buffer_t_class'
: undefined reference to `opal_list_t_class'
/opt/openmpi/lib/libmpi.a(proc.o)(.text+0x7b0): In function `ompi_proc_init':
: undefined reference to `opal_mutex_t_class'
/opt/openmpi/lib/libmpi.a(proc.o)(.text+0x7c2): In function `ompi_proc_init':
: undefined reference to `opal_mutex_t_class'
/opt/openmpi/lib/libmpi.a(proc.o)(.text+0x7d2): In function `ompi_proc_init':
: undefined reference to `opal_mutex_t_class'
/opt/openmpi/lib/libmpi.a(proc.o)(.text+0x801): In function `ompi_proc_init':
: undefined reference to `orte_ns'
/opt/openmpi/lib/libmpi.a(proc.o)(.text+0x8cc): In function `ompi_proc_init':
: undefined reference to `orte_ns'
/opt/openmpi/lib/libmpi.a(proc.o)(.text+0x8e7): In function `ompi_proc_init':
: undefined reference to `orte_errmgr'
/opt/openmpi/lib/libmpi.a(proc.o)(.text+0x905): In function `ompi_proc_init':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(proc.o)(.text+0x91d): In function `ompi_proc_init':
: undefined reference to `orte_schema'
/opt/openmpi/lib/libmpi.a(proc.o)(.text+0x93d): In function `ompi_proc_init':
: undefined reference to `orte_schema'
/opt/openmpi/lib/libmpi.a(proc.o)(.text+0x95c): In function `ompi_proc_init':
: undefined reference to `orte_errmgr'
/opt/openmpi/lib/libmpi.a(proc.o)(.text+0x993): In function `ompi_proc_init':
: undefined reference to `orte_dss'
: undefined reference to `pthread_mutex_lock'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x121): In function `ompi_request_wait':
: undefined reference to `opal_progress'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x14a): In function `ompi_request_wait':
: undefined reference to `pthread_mutex_unlock'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x152): In function `ompi_request_wait':
: undefined reference to `opal_progress'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x15f): In function `ompi_request_wait':
: undefined reference to `pthread_mutex_lock'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x1dd): In function `ompi_request_wait_any':
: undefined reference to `opal_uses_threads'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x211): In function `ompi_request_wait_any':
: undefined reference to `pthread_mutex_unlock'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x219): In function `ompi_request_wait_any':
: undefined reference to `opal_progress'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x226): In function `ompi_request_wait_any':
: undefined reference to `pthread_mutex_lock'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x2b9): In function `ompi_request_wait_any':
: undefined reference to `opal_progress'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x2e2): In function `ompi_request_wait_any':
: undefined reference to `pthread_mutex_unlock'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x2ea): In function `ompi_request_wait_any':
: undefined reference to `opal_progress'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x2f7): In function `ompi_request_wait_any':
: undefined reference to `pthread_mutex_lock'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x3e2): In function `ompi_request_wait_all':
: undefined reference to `opal_uses_threads'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x3fd): In function `ompi_request_wait_all':
: undefined reference to `opal_progress'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x425): In function `ompi_request_wait_all':
: undefined reference to `pthread_mutex_unlock'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x42d): In function `ompi_request_wait_all':
: undefined reference to `opal_progress'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x43a): In function `ompi_request_wait_all':
: undefined reference to `pthread_mutex_lock'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x53e): In function `ompi_request_wait_all':
: undefined reference to `pthread_mutex_unlock'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x546): In function `ompi_request_wait_all':
: undefined reference to `pthread_mutex_unlock'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x546): In function `ompi_request_wait_all':
: undefined reference to `opal_progress'
/opt/openmpi/lib/libmpi.a(req_wait.o)(.text+0x553): In function `ompi_request_wait_all':
: undefined reference to `pthread_mutex_lock'
/opt/openmpi/lib/libmpi.a(ompi_mpi_abort.o)(.text+0xba): In function `ompi_mpi_abort':
: undefined reference to `orte_process_info'
/opt/openmpi/lib/libmpi.a(ompi_mpi_abort.o)(.text+0xc7): In function `ompi_mpi_abort':
: undefined reference to `orte_ns'
/opt/openmpi/lib/libmpi.a(ompi_mpi_abort.o)(.text+0x134): In function `ompi_mpi_abort':
: undefined reference to `orte_ns'
/opt/openmpi/lib/libmpi.a(ompi_mpi_abort.o)(.text+0x176): In function `ompi_mpi_abort':
: undefined reference to `orte_ns'
/opt/openmpi/lib/libmpi.a(ompi_mpi_abort.o)(.text+0x194): In function `ompi_mpi_abort':
: undefined reference to `orte_rmgr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_abort.o)(.text+0x1a9): In function `ompi_mpi_abort':
: undefined reference to `orte_rmgr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_abort.o)(.text+0x1be): In function `ompi_mpi_abort':
: undefined reference to `opal_event_loop'
/opt/openmpi/lib/libmpi.a(ompi_mpi_abort.o)(.text+0x1cd): In function `ompi_mpi_abort':
: undefined reference to `orte_rmgr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0xa): In function `ompi_mpi_init':
: undefined reference to `opal_init'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x23): In function `ompi_mpi_init':
: undefined reference to `orte_init_stage1'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x3b): In function `ompi_mpi_init':
: undefined reference to `orte_process_info'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x49): In function `ompi_mpi_init':
: undefined reference to `orte_init_stage2'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0xa1): In function `ompi_mpi_init':
: undefined reference to `opal_progress_mpi_init'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x2bc): In function `ompi_mpi_init':
: undefined reference to `orte_schema'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x2d1): In function `ompi_mpi_init':
: undefined reference to `orte_process_info'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x2d7): In function `ompi_mpi_init':
: undefined reference to `orte_soh'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x2f0): In function `ompi_mpi_init':
: undefined reference to `orte_gpr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x305): In function `ompi_mpi_init':
: undefined reference to `orte_gpr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x313): In function `ompi_mpi_init':
: undefined reference to `orte_rml'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x416): In function `ompi_mpi_init':
: undefined reference to `orte_system_info'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x432): In function `ompi_mpi_init':
: undefined reference to `orte_process_info'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x432): In function `ompi_mpi_init':
: undefined reference to `orte_process_info'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x438): In function `ompi_mpi_init':
: undefined reference to `orte_soh'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x44f): In function `ompi_mpi_init':
: undefined reference to `opal_progress_events'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x459): In function `ompi_mpi_init':
: undefined reference to `orte_gpr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x467): In function `ompi_mpi_init':
: undefined reference to `orte_rml'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x48d): In function `ompi_mpi_init':
: undefined reference to `opal_progress_mpi_enable'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x49c): In function `ompi_mpi_init':
: undefined reference to `orte_debug_flag'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x4ac): In function `ompi_mpi_init':
: undefined reference to `orte_process_info'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x4e2): In function `ompi_mpi_init':
: undefined reference to `opal_output'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x4fd): In function `ompi_mpi_init':
: undefined reference to `opal_strerror'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x51b): In function `ompi_mpi_init':
: undefined reference to `opal_show_help'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x52e): In function `ompi_mpi_init':
: undefined reference to `orte_process_info'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x53b): In function `ompi_mpi_init':
: undefined reference to `orte_debug_flag'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x549): In function `ompi_mpi_init':
: undefined reference to `orte_gpr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x56a): In function `ompi_mpi_init':
: undefined reference to `orte_errmgr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x592): In function `ompi_mpi_init':
: undefined reference to `orte_errmgr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x5b1): In function `ompi_mpi_init':
: undefined reference to `mca_base_param_find'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x5c9): In function `ompi_mpi_init':
: undefined reference to `mca_base_param_lookup_int'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x5e0): In function `ompi_mpi_init':
: undefined reference to `opal_paffinity_base_set'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x5f0): In function `ompi_mpi_init':
: undefined reference to `orte_process_info'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x5f9): In function `ompi_mpi_init':
: undefined reference to `orte_ns_base_get_vpid_string'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x60d): In function `ompi_mpi_init':
: undefined reference to `opal_show_help'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x625): In function `ompi_mpi_init':
: undefined reference to `opal_maffinity_base_open'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x632): In function `ompi_mpi_init':
: undefined reference to `opal_maffinity_base_open'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x632): In function `ompi_mpi_init':
: undefined reference to `opal_maffinity_base_select'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x658): In function `ompi_mpi_init':
: undefined reference to `orte_errmgr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x677): In function `ompi_mpi_init':
: undefined reference to `orte_errmgr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x696): In function `ompi_mpi_init':
: undefined reference to `orte_errmgr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_init.o)(.text+0x6b5): In function `ompi_mpi_init':
: undefined reference to `orte_errmgr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0x3e): In function `ompi_mpi_finalize':
: undefined reference to `opal_progress_events'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0x53): In function `ompi_mpi_finalize':
: undefined reference to `opal_progress_mpi_disable'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0x5e): In function `ompi_mpi_finalize':
: undefined reference to `orte_process_info'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0x64): In function `ompi_mpi_finalize':
: undefined reference to `orte_soh'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0x76): In function `ompi_mpi_finalize':
: undefined reference to `orte_gpr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0x84): In function `ompi_mpi_finalize':
: undefined reference to `orte_rml'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0x9f): In function `ompi_mpi_finalize':
: undefined reference to `orte_errmgr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0xce): In function `ompi_mpi_finalize':
: undefined reference to `orte_errmgr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0xd9): In function `ompi_mpi_finalize':
: undefined reference to `opal_maffinity_base_close'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0x287): In function `ompi_mpi_finalize':
: undefined reference to `orte_process_info'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0x28d): In function `ompi_mpi_finalize':
: undefined reference to `orte_soh'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0x2a6): In function `ompi_mpi_finalize':
: undefined reference to `orte_errmgr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0x2b4): In function `ompi_mpi_finalize':
: undefined reference to `orte_gpr'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0x2c2): In function `ompi_mpi_finalize':
: undefined reference to `orte_rml'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0x302): In function `ompi_mpi_finalize':
: undefined reference to `opal_show_help'
/opt/openmpi/lib/libmpi.a(ompi_mpi_finalize.o)(.text+0x311): In function `ompi_mpi_finalize':
: undefined reference to `orte_finalize'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x27): In function `ompi_mpi_register_params':
: undefined reference to `mca_base_param_reg_int_name'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x5f): In function `ompi_mpi_register_params':
: undefined reference to `mca_base_param_reg_int_name'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x5f): In function `ompi_mpi_register_params':
: undefined reference to `mca_base_param_reg_int_name'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x7e): In function `ompi_mpi_register_params':
: undefined reference to `mca_base_param_reg_int_name'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0xa2): In function `ompi_mpi_register_params':
: undefined reference to `mca_base_param_reg_int_name'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0xd2): In function `ompi_mpi_register_params':
: undefined reference to `mca_base_param_reg_int_name'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x116): more undefined references to `mca_base_param_reg_int_name' follow
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x147): In function `ompi_mpi_register_params':
: undefined reference to `mca_base_param_reg_string_name'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x16b): In function `ompi_mpi_register_params':
: undefined reference to `mca_base_param_reg_int_name'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x196): In function `ompi_mpi_register_params':
: undefined reference to `mca_base_param_reg_int_name'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x1b4): In function `ompi_mpi_register_params':
: undefined reference to `mca_base_param_reg_int_name'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x1e6): In function `ompi_mpi_register_params':
: undefined reference to `mca_base_param_reg_int_name'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x20a): In function `ompi_mpi_register_params':
: undefined reference to `mca_base_param_reg_int_name'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x26c): In function `ompi_show_all_mca_params':
: undefined reference to `mca_base_param_dump'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x2d1): In function `ompi_show_all_mca_params':
: undefined reference to `mca_base_param_lookup_int'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x302): In function `ompi_show_all_mca_params':
: undefined reference to `opal_output'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x384): In function `ompi_show_all_mca_params':
: undefined reference to `mca_base_param_lookup_string'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x3c2): In function `ompi_show_all_mca_params':
: undefined reference to `mca_base_param_dump_release'
/opt/openmpi/lib/libmpi.a(ompi_mpi_params.o)(.text+0x3ed): In function `ompi_show_all_mca_params':
: undefined reference to `opal_output'
/opt/openmpi/lib/libmpi.a(win.o)(.text+0x1dd): In function `ompi_win_create':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(win.o)(.text+0x3af): In function `ompi_win_set_name':
: undefined reference to `opal_strncpy'
/opt/openmpi/lib/libmpi.a(win.o)(.text+0x490): In function `ompi_win_init':
: undefined reference to `opal_strncpy'
/opt/openmpi/lib/libmpi.a(win.o)(.text+0x4bf): In function `ompi_win_init':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(win.o)(.text+0x4d4): In function `ompi_win_init':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(win.o)(.text+0x4f7): In function `ompi_win_get_name':
: undefined reference to `opal_strncpy'
/opt/openmpi/lib/libmpi.a(win.o)(.text+0x553): In function `ompi_win_construct':
: undefined reference to `opal_strncpy'
/opt/openmpi/lib/libmpi.a(win.o)(.text+0x553): In function `ompi_win_construct':
: undefined reference to `opal_mutex_t_class'
/opt/openmpi/lib/libmpi.a(win.o)(.text+0x565): In function `ompi_win_construct':
: undefined reference to `opal_mutex_t_class'
/opt/openmpi/lib/libmpi.a(win.o)(.text+0x572): In function `ompi_win_construct':
: undefined reference to `opal_mutex_t_class'
/opt/openmpi/lib/libmpi.a(win.o)(.text+0x60f): In function `ompi_win_construct':
: undefined reference to `opal_mutex_t_class'
/opt/openmpi/lib/libmpi.a(win.o)(.text+0x614): In function `ompi_win_construct':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(win.o)(.data+0x4): undefined reference to `opal_object_t_class'
/opt/openmpi/lib/libmpi.a(dt_module.o)(.text+0x291f): In function `ompi_ddt_init':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(dt_module.o)(.text+0x3007): In function `ompi_ddt_dump':
: undefined reference to `opal_output'
/opt/openmpi/lib/libmpi.a(dt_create.o)(.text+0x2df): In function `ompi_ddt_create':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(dt_create.o)(.data.rel+0x4): undefined reference to `opal_object_t_class'
/opt/openmpi/lib/libmpi.a(convertor.o)(.text+0x29e): In function `ompi_convertor_find_or_create_master':
: undefined reference to `opal_output'
/opt/openmpi/lib/libmpi.a(convertor.o)(.text+0x2b7): In function `ompi_convertor_find_or_create_master':
: undefined reference to `opal_output'
/opt/openmpi/lib/libmpi.a(convertor.o)(.text+0x34e): In function `ompi_convertor_create':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(convertor.o)(.text+0xe3d): In function `ompi_ddt_dump_stack':
: undefined reference to `opal_output'
/opt/openmpi/lib/libmpi.a(convertor.o)(.text+0xe8b): In function `ompi_ddt_dump_stack':
: undefined reference to `opal_output'
/opt/openmpi/lib/libmpi.a(convertor.o)(.text+0xeb4): In function `ompi_ddt_dump_stack':
: undefined reference to `opal_output'
/opt/openmpi/lib/libmpi.a(convertor.o)(.text+0xecd): In function `ompi_ddt_dump_stack':
: undefined reference to `opal_output'
/opt/openmpi/lib/libmpi.a(convertor.o)(.text+0xee5): In function `ompi_ddt_dump_stack':
: undefined reference to `opal_output'
/opt/openmpi/lib/libmpi.a(convertor.o)(.data.rel+0x4): undefined reference to `opal_object_t_class'
/opt/openmpi/lib/libmpi.a(ompi_totalview.o)(.text+0x36): In function `ompi_wait_for_totalview':
: undefined reference to `mca_base_param_reg_int_name'
/opt/openmpi/lib/libmpi.a(allocator_base_open.o)(.text+0x2b): In function `mca_allocator_base_open':
: undefined reference to `mca_base_components_open'
/opt/openmpi/lib/libmpi.a(allocator_bucket.o)(.text+0xe5): In function `mca_allocator_bucket_module_open':
: undefined reference to `mca_base_param_register_int'
/opt/openmpi/lib/libmpi.a(allocator_bucket.o)(.text+0xf5): In function `mca_allocator_bucket_module_open':
: undefined reference to `mca_base_param_lookup_int'
/opt/openmpi/lib/libmpi.a(allocator_basic.o)(.text+0x7e): In function `mca_allocator_basic_component_init':
: undefined reference to `opal_list_t_class'
/opt/openmpi/lib/libmpi.a(allocator_basic.o)(.text+0xbe): In function `mca_allocator_basic_component_init':
: undefined reference to `opal_list_t_class'
/opt/openmpi/lib/libmpi.a(allocator_basic.o)(.text+0xbe): In function `mca_allocator_basic_component_init':
: undefined reference to `opal_mutex_t_class'
/opt/openmpi/lib/libmpi.a(allocator_basic.o)(.text+0x160): In function `mca_allocator_basic_component_init':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(allocator_basic.o)(.text+0x171): In function `mca_allocator_basic_component_init':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(allocator_basic.o)(.text+0x17f): In function `mca_allocator_basic_component_init':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(allocator_basic.o)(.text+0x229): In function `mca_allocator_basic_alloc':
: undefined reference to `opal_uses_threads'
/opt/openmpi/lib/libmpi.a(allocator_basic.o)(.text+0x34f): In function `mca_allocator_basic_alloc':
: undefined reference to `pthread_mutex_lock'
/opt/openmpi/lib/libmpi.a(allocator_basic.o)(.text+0x379): In function `mca_allocator_basic_alloc':
: undefined reference to `pthread_mutex_unlock'
/opt/openmpi/lib/libmpi.a(allocator_basic.o)(.text+0x4c8): In function `mca_allocator_basic_free':
: undefined reference to `opal_uses_threads'
/opt/openmpi/lib/libmpi.a(allocator_basic.o)(.text+0x54d): In function `mca_allocator_basic_free':
: undefined reference to `pthread_mutex_lock'
/opt/openmpi/lib/libmpi.a(allocator_basic.o)(.text+0x58d): In function `mca_allocator_basic_free':
: undefined reference to `pthread_mutex_unlock'
/opt/openmpi/lib/libmpi.a(allocator_basic.o)(.text+0x5ae): In function `mca_allocator_basic_free':
: undefined reference to `opal_uses_threads'
/opt/openmpi/lib/libmpi.a(allocator_basic.o)(.text+0x758): In function `mca_allocator_basic_free':
: undefined reference to `pthread_mutex_lock'
/opt/openmpi/lib/libmpi.a(allocator_basic.o)(.text+0x7a1): In function `mca_allocator_basic_free':
: undefined reference to `pthread_mutex_unlock'
/opt/openmpi/lib/libmpi.a(coll_base_comm_unselect.o)(.text+0xa8): In function `mca_coll_base_comm_unselect':
: undefined reference to `opal_show_help'
/opt/openmpi/lib/libmpi.a(coll_base_open.o)(.text+0x17): In function `mca_coll_base_open':
: undefined reference to `opal_output_open'
/opt/openmpi/lib/libmpi.a(coll_base_open.o)(.text+0x3f): In function `mca_coll_base_open':
: undefined reference to `mca_base_components_open'
/opt/openmpi/lib/libmpi.a(coll_base_open.o)(.text+0x64): In function `mca_coll_base_open':
: undefined reference to `mca_base_param_find'
/opt/openmpi/lib/libmpi.a(coll_base_find_available.o)(.text+0x17): In function `mca_coll_base_find_available':
: undefined reference to `opal_list_t_class'
/opt/openmpi/lib/libmpi.a(coll_base_find_available.o)(.text+0xa6): In function `mca_coll_base_find_available':
: undefined reference to `mca_base_component_priority_list_item_t_class'
/opt/openmpi/lib/libmpi.a(coll_base_find_available.o)(.text+0x142): In function `mca_coll_base_find_available':
: undefined reference to `opal_output_verbose'
/opt/openmpi/lib/libmpi.a(coll_base_find_available.o)(.text+0x185): In function `mca_coll_base_find_available':
: undefined reference to `opal_output_verbose'
/opt/openmpi/lib/libmpi.a(coll_base_find_available.o)(.text+0x193): In function `mca_coll_base_find_available':
: undefined reference to `mca_base_component_repository_release'
/opt/openmpi/lib/libmpi.a(coll_base_find_available.o)(.text+0x28c): In function `mca_coll_base_find_available':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(coll_base_find_available.o)(.text+0x28c): In function `mca_coll_base_find_available':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(coll_base_find_available.o)(.text+0x29d): In function `mca_coll_base_find_available':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(coll_base_find_available.o)(.text+0x2de): In function `mca_coll_base_find_available':
: undefined reference to `opal_output_verbose'
/opt/openmpi/lib/libmpi.a(coll_base_find_available.o)(.text+0x374): In function `mca_coll_base_find_available':
: undefined reference to `opal_output_verbose'
/opt/openmpi/lib/libmpi.a(coll_base_find_available.o)(.text+0x3f1): In function `mca_coll_base_find_available':
: undefined reference to `opal_output_verbose'
/opt/openmpi/lib/libmpi.a(coll_base_find_available.o)(.text+0x40d): In function `mca_coll_base_find_available':
: undefined reference to `opal_show_help'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x17): In function `check_components':
: undefined reference to `opal_list_t_class'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x12a): In function `check_components':
: undefined reference to `opal_output_verbose'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x274): In function `check_components':
: undefined reference to `opal_output_verbose'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x285): In function `check_components':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x296): In function `check_components':
: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x351): In function `check_components':
: undefined reference to `opal_list_insert'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x1353): In function `mca_coll_base_comm_select':
: undefined reference to `opal_output_verbose'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x13c3): In function `mca_coll_base_comm_select':
: undefined reference to `mca_base_param_lookup_string'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x13eb): In function `mca_coll_base_comm_select':
: undefined reference to `opal_output_verbose'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x15dc): In function `mca_coll_base_comm_select':
: undefined reference to `opal_output_verbose'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x165a): In function `mca_coll_base_comm_select':
: undefined reference to `opal_show_help'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x167b): In function `mca_coll_base_comm_select':
: undefined reference to `opal_output_verbose'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x16be): In function `mca_coll_base_comm_select':
: undefined reference to `opal_argv_split'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x16c8): In function `mca_coll_base_comm_select':
: undefined reference to `opal_argv_count'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x16e3): In function `mca_coll_base_comm_select':
: undefined reference to `opal_output_verbose'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x1704): In function `mca_coll_base_comm_select':
: undefined reference to `opal_argv_free'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.text+0x1937): In function `mca_coll_base_comm_select':
: undefined reference to `opal_output_verbose'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.data.rel+0x4): undefined reference to `opal_list_item_t_class'
: undefined reference to `opal_output_verbose'
/opt/openmpi/lib/libmpi.a(coll_base_comm_select.o)(.data.rel+0x4): undefined reference to `opal_list_item_t_class'
/opt/openmpi/lib/libmpi.a(coll_base_close.o)(.text+0x4b): In function `mca_coll_base_close':
: undefined reference to `mca_base_components_close'
/opt/openmpi/lib/libmpi.a(coll_base_close.o)(.text+0x9b): In function `mca_coll_base_close':
: undefined reference to `mca_base_components_close'
/opt/openmpi/lib/libmpi.a(coll_tuned_component.o)(.text+0x38): In function `tuned_open':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_tuned_component.o)(.text+0x5c): In function `tuned_open':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_tuned_component.o)(.text+0x80): In function `tuned_open':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_tuned_component.o)(.text+0xaf): In function `tuned_open':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_tuned_component.o)(.text+0xd3): In function `tuned_open':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_tuned_component.o)(.text+0xeb): In function `tuned_open':
: undefined reference to `mca_base_param_find'
/opt/openmpi/lib/libmpi.a(coll_tuned_component.o)(.text+0xff): In function `tuned_open':
: undefined reference to `mca_base_param_lookup_int'
/opt/openmpi/lib/libmpi.a(coll_tuned_component.o)(.text+0x113): In function `tuned_open':
: undefined reference to `opal_output_open'
/opt/openmpi/lib/libmpi.a(coll_tuned_component.o)(.text+0x166): In function `tuned_open':
: undefined reference to `mca_base_param_reg_string'
/opt/openmpi/lib/libmpi.a(coll_tuned_allreduce.o)(.text+0x155): In function `ompi_coll_tuned_allreduce_intra_check_forced':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_tuned_allreduce.o)(.text+0x179): In function `ompi_coll_tuned_allreduce_intra_check_forced':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_tuned_allreduce.o)(.text+0x1a2): In function `ompi_coll_tuned_allreduce_intra_check_forced':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_tuned_allreduce.o)(.text+0x1cb): In function `ompi_coll_tuned_allreduce_intra_check_forced':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_sm_component.o)(.text+0x3c): In function `sm_open':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_sm_component.o)(.text+0x64): more undefined references to `mca_base_param_reg_int' follow
/opt/openmpi/lib/libmpi.a(coll_sm_component.o)(.text+0x8c): In function `sm_open':
: undefined reference to `mca_base_param_reg_string'
/opt/openmpi/lib/libmpi.a(coll_sm_component.o)(.text+0xb4): In function `sm_open':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_sm_component.o)(.text+0xdc): In function `sm_open':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_sm_component.o)(.text+0x12d): In function `sm_open':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_sm_component.o)(.text+0x12d): In function `sm_open':
: undefined reference to `mca_base_param_reg_string'
/opt/openmpi/lib/libmpi.a(coll_sm_component.o)(.text+0x155): In function `sm_open':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_sm_component.o)(.text+0x18b): In function `sm_open':
: undefined reference to `mca_base_param_reg_int'

/opt/openmpi/lib/libmpi.a(btl_self.o)(.text+0xc53): In function `mca_btl_self_prepare_dst':
: undefined reference to `pthread_mutex_unlock'
/opt/openmpi/lib/libmpi.a(btl_self.o)(.text+0xc5b): In function `mca_btl_self_prepare_dst':
: undefined reference to `opal_progress'
/opt/openmpi/lib/libmpi.a(btl_self.o)(.text+0xc64): In function `mca_btl_self_prepare_dst':
: undefined reference to `pthread_mutex_lock'
/opt/openmpi/lib/libmpi.a(coll_tuned_bcast.o)(.text+0x121d): In function `ompi_coll_tuned_bcast_intra_check_forced':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_tuned_bcast.o)(.text+0x1241): In function `ompi_coll_tuned_bcast_intra_check_forced':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_tuned_bcast.o)(.text+0x126a): In function `ompi_coll_tuned_bcast_intra_check_forced':
: undefined reference to `mca_base_param_reg_int'
/opt/openmpi/lib/libmpi.a(coll_tuned_bcast.o)(.text+0x1293): In function `ompi_coll_tuned_bcast_intra_check_forced':

: undefined reference to `opal_class_initialize'
/opt/openmpi/lib/libmpi.a(io_romio_ad_wait.o)(.text+0xb6): In function `ADIOI_GEN_IOComplete':
: undefined reference to `aio_suspend64'
/opt/openmpi/lib/libmpi.a(io_romio_ad_wait.o)(.text+0xc9): In function `ADIOI_GEN_IOComplete':
: undefined reference to `aio_return64'
/opt/openmpi/lib/libmpi.a(io_romio_ad_wait.o)(.text+0xdf): In function `ADIOI_GEN_IOComplete':
: undefined reference to `aio_error64'
../lib/libaztec.a(az_interface.o)(.text+0x7): In function `AZ_second':
: undefined reference to `MPI_WTIME'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0xe0): In function `md_read':
: undefined reference to `MPI_Get_count'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x243): In function `md_wrap_wait':
: undefined reference to `MPI_Wait'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x27f): In function `md_wrap_wait':
: undefined reference to `MPI_Get_count'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x3f8): In function `md_mpi_wait':
: undefined reference to `MPI_Wait'
../lib/libaztec.a(md_wrap_mpi_c.o)(.text+0x434): In function `md_mpi_wait':
: undefined reference to `MPI_Get_count'
/usr/lib/gcc/i386-redhat-linux/3.4.6//libgcc_eh.a(unwind-dw2-fde-glibc.oS)(.text+0x24b): In function `__register_frame_info_bases':
: undefined reference to `pthread_mutex_unlock'
/usr/lib/gcc/i386-redhat-linux/3.4.6//libgcc_eh.a(unwind-dw2-fde-glibc.oS)(.text+0x263): In function `__register_frame_info_bases':
: undefined reference to `pthread_mutex_lock'
/usr/lib/gcc/i386-redhat-linux/3.4.6//libgcc_eh.a(unwind-dw2-fde-glibc.oS)(.text+0x353): In function `__register_frame_info_table_bases':
: undefined reference to `pthread_mutex_lock'
/usr/lib/gcc/i386-redhat-linux/3.4.6//libgcc_eh.a(unwind-dw2-fde-glibc.oS)(.text+0x377): In function `__register_frame_info_table_bases':
: undefined reference to `pthread_mutex_unlock'
/usr/lib/gcc/i386-redhat-linux/3.4.6//libgcc_eh.a(unwind-dw2-fde-glibc.oS)(.text+0x498): In function `__deregister_frame_info_bases':
: undefined reference to `pthread_mutex_unlock'
/usr/lib/gcc/i386-redhat-linux/3.4.6//libgcc_eh.a(unwind-dw2-fde-glibc.oS)(.text+0x4bf): In function `__deregister_frame_info_bases':
: undefined reference to `pthread_mutex_lock'
/usr/lib/gcc/i386-redhat-linux/3.4.6//libgcc_eh.a(unwind-dw2-fde-glibc.oS)(.text+0x4e3): In function `__deregister_frame_info_bases':
: undefined reference to `pthread_mutex_unlock'
/usr/lib/gcc/i386-redhat-linux/3.4.6//libgcc_eh.a(unwind-dw2-fde-glibc.oS)(.text+0x16cb): In function `_Unwind_Find_FDE':
: undefined reference to `pthread_mutex_unlock'
/usr/lib/gcc/i386-redhat-linux/3.4.6//libgcc_eh.a(unwind-dw2-fde-glibc.oS)(.text+0x16dc): In function `_Unwind_Find_FDE':
: undefined reference to `pthread_mutex_lock'
make: *** [sample] Error 1

As we've pointed out before, a properly built openmpi based on ifort, using the mpif90 wrapper in place of ifort, would save you a lot of grief. That would relieve you of knowing specifically which libraries openmpi requires, which seems beyond the scope of this forum.
If you aren't willing to look into configuration of openmpi, there's Intel MPI, which comes configured for both ifort (mpiifort) and gfortran (mpif90). Questions on MPI, particularly Intel MPI, are more topical on the Intel HPC forum.

Quoting - tim18
As we've pointed out before, a properly built openmpi based on ifort, using the mpif90 wrapper in place of ifort, would save you a lot of grief. That would relieve you of knowing specifically which libraries openmpi requires, which seems beyond the scope of this forum.

I heartily agree with what Tim18 said. I didn't see the majority of what was in this thread (Google Alerts pointed me to post #27), but according to the Open MPI FAQ, you should use the Open MPI wrapper compilers unless you absolutely cannot. They are the easiest, best way to compile your application with the proper Open MPI libraries, etc.

See the Open MPI FAQ (http://www.open-mpi.org/faq/?category=mpi-apps) for more information, such as if you absolutely can't build with the wrapper compilers. Feel free to direct further Open MPI-related questions to the Open MPI user's mailing list -- this doesn't really sound like an intel compiler issue.

Quoting - Ronald W. Green (Intel)

An mpi program has to be launched by mpiexec, after booting the runtime with mpdboot.

To help with the runtime library dependencies, perhaps you should link with -static option.

At this point you should go out to openmpi.org and read up on running your code. We have helped you get the code compiled. You now need to understand the Open MPI runtime environment and that is outside our scope on this forum.

ron

I am very sorry to see this suggestion. I really hope my problem can be fixed here.....

Quoting - Jeff Squyres

I heartily agree with what Tim18 said. I didn't see the majority of what was in this thread (Google Alerts pointed me to post #27), but according to the Open MPI FAQ, you should use the Open MPI wrapper compilers unless you absolutely cannot. They are the easiest, best way to compile your application with the proper Open MPI libraries, etc.

See the Open MPI FAQ (http://www.open-mpi.org/faq/?category=mpi-apps) for more information, such as if you absolutely can't build with the wrapper compilers. Feel free to direct further Open MPI-related questions to the Open MPI user's mailing list -- this doesn't really sound like an intel compiler issue.

Thanks for your suggestion. I am very sorry for that none here can help me out ......

Deixar um comentário

Faça login para adicionar um comentário. Não é membro? Inscreva-se hoje mesmo!