Compiling Elmer with MPI

Discussion about building and installing Elmer
Takala
Posts: 186
Joined: 23 Aug 2009, 23:59

Compiling Elmer with MPI

Post by Takala »

Hi,

I'm trying to compile Elmer with MPI. I have already compiled it without MPI and it works fine.

I compiled this:
http://www.mcs.anl.gov/research/projects/mpich2/

and then I used it to compile the mathlibs. But when I try to compile the fem -package, I have a problem:
checking for pdneupd_ in -lparpack... no
configure: WARNING: No parallel arpack found.
checking for HYPRE_IJMatrixCreate in -lHYPRE_IJ_mv... no
configure: WARNING: HYPRE not found, some functionaly will be disabled.
checking for umfpack_di_defaults in -lumfpack... yes
checking for mtc_init in -lmatc... yes
checking for main in -lm... yes
configure: error: The MPI version needs parpack. Disabling MPI.
But I'm quite sure that I have the lparpack:
:/opt/elmer/lib$ ls
libamd.a libblas.a libelmersolver-5.5.0.so liblapack.a libumfpack.a
libamdf77.a libeioc.a libelmersolver.so libmatc.a
libarpack.a libeiof.a libhuti.a libparpack.a
do you know what is wrong here?

cheers,
Eelis
mal
Site Admin
Posts: 54
Joined: 21 Aug 2009, 14:21

Re: Compiling Elmer with MPI

Post by mal »

Hi,

Code: Select all

checking for pdneupd_ in -lparpack... no
configure: WARNING: No parallel arpack found.
What says config.log when this error occurs?
Takala
Posts: 186
Joined: 23 Aug 2009, 23:59

Re: Compiling Elmer with MPI

Post by Takala »

mal wrote:Hi,

Code: Select all

checking for pdneupd_ in -lparpack... no
configure: WARNING: No parallel arpack found.
What says config.log when this error occurs?

Hi,

Thanks for the reply.
Here is a piece of the config.log:
configure:13822: checking for pdneupd_ in -lparpack
configure:13873: gcc -o conftest -g -O2 -m64 -fPIC -fPIC -I/opt/elmer/include -I/opt/mpich2/include -L. -L/opt/elmer/lib conftest.c -lparpack -L/opt/mpich2/lib -lmpich -larpack -llapack -lblas -L. -ldl -L/opt/elmer/lib -L/usr/lib/gcc/x86_64-linux-gnu/4.3.3 -L/usr/lib/gcc/x86_64-linux-gnu/4.3.3/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.3.3/../../.. -lgfortranbegin -lgfortran -lm -L/usr/lib/gcc/x86_64-linux-gnu/4.3.3 -L/usr/lib/gcc/x86_64-linux-gnu/4.3.3/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.3.3/../../.. -lgfortranbegin -lgfortran -lm >&5
/opt/mpich2/lib/libmpich.a(allreduce.o): In function `MPIR_Allreduce_inter':
allreduce.c:(.text+0x1c7): undefined reference to `pthread_getspecific'
allreduce.c:(.text+0x1f3): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(allreduce.o): In function `MPIR_Allreduce':
allreduce.c:(.text+0x5f7): undefined reference to `pthread_getspecific'
allreduce.c:(.text+0x62d): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(allreduce.o): In function `MPI_Allreduce':
allreduce.c:(.text+0x117c): undefined reference to `pthread_getspecific'
allreduce.c:(.text+0x125a): undefined reference to `pthread_getspecific'
allreduce.c:(.text+0x162c): undefined reference to `pthread_setspecific'
allreduce.c:(.text+0x1784): undefined reference to `pthread_setspecific'
allreduce.c:(.text+0x1e04): undefined reference to `pthread_getspecific'
allreduce.c:(.text+0x1e32): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(op_create.o): In function `MPI_Op_create':
op_create.c:(.text+0x40): undefined reference to `pthread_getspecific'
op_create.c:(.text+0xa6): undefined reference to `pthread_getspecific'
op_create.c:(.text+0x1ac): undefined reference to `pthread_setspecific'
op_create.c:(.text+0x1d4): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(bcast.o): In function `MPIR_Bcast':
bcast.c:(.text+0x1577): undefined reference to `pthread_getspecific'
bcast.c:(.text+0x15a3): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(bcast.o): In function `MPI_Bcast':
bcast.c:(.text+0x1e75): undefined reference to `pthread_getspecific'
bcast.c:(.text+0x1f47): undefined reference to `pthread_getspecific'
bcast.c:(.text+0x22bc): undefined reference to `pthread_setspecific'
bcast.c:(.text+0x254c): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(reduce.o): In function `MPIR_Reduce':
reduce.c:(.text+0x437): undefined reference to `pthread_getspecific'
reduce.c:(.text+0x467): undefined reference to `pthread_setspecific'
reduce.c:(.text+0x4af): undefined reference to `pthread_getspecific'
reduce.c:(.text+0x4e5): undefined reference to `pthread_setspecific'
reduce.c:(.text+0x1128): undefined reference to `pthread_getspecific'
reduce.c:(.text+0x1158): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(reduce.o): In function `MPIR_Reduce_inter':
reduce.c:(.text+0x1847): undefined reference to `pthread_getspecific'
reduce.c:(.text+0x1873): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(reduce.o): In function `MPI_Reduce':
reduce.c:(.text+0x1b4d): undefined reference to `pthread_getspecific'
reduce.c:(.text+0x1c4a): undefined reference to `pthread_getspecific'
reduce.c:(.text+0x207c): undefined reference to `pthread_setspecific'
reduce.c:(.text+0x251c): undefined reference to `pthread_setspecific'
reduce.c:(.text+0x2f58): undefined reference to `pthread_getspecific'
reduce.c:(.text+0x2f84): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(helper_fns.o): In function `MPIR_Localcopy':
helper_fns.c:(.text+0x4bf): undefined reference to `pthread_getspecific'
helper_fns.c:(.text+0x4eb): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(opsum.o): In function `MPIR_SUM':
opsum.c:(.text+0xac6): undefined reference to `pthread_getspecific'
opsum.c:(.text+0xaf2): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(opmax.o): In function `MPIR_MAXF':
opmax.c:(.text+0x8b7): undefined reference to `pthread_getspecific'
opmax.c:(.text+0x8e3): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(opmin.o): In function `MPIR_MINF':
opmin.c:(.text+0x8b7): undefined reference to `pthread_getspecific'
opmin.c:(.text+0x8e3): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(opband.o): In function `MPIR_BAND':
opband.c:(.text+0x54f): undefined reference to `pthread_getspecific'
opband.c:(.text+0x57b): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(opbor.o): In function `MPIR_BOR':
opbor.c:(.text+0x54f): undefined reference to `pthread_getspecific'
opbor.c:(.text+0x57b): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(opbxor.o): In function `MPIR_BXOR':
opbxor.c:(.text+0x54f): undefined reference to `pthread_getspecific'
opbxor.c:(.text+0x57b): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(opland.o): In function `MPIR_LAND':
opland.c:(.text+0xa97): undefined reference to `pthread_getspecific'
opland.c:(.text+0xac3): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(oplor.o): In function `MPIR_LOR':
oplor.c:(.text+0xb27): undefined reference to `pthread_getspecific'
oplor.c:(.text+0xb53): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(oplxor.o): In function `MPIR_LXOR':
oplxor.c:(.text+0xbd7): undefined reference to `pthread_getspecific'
oplxor.c:(.text+0xc03): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(opprod.o): In function `MPIR_PROD':
opprod.c:(.text+0xbc1): undefined reference to `pthread_getspecific'
opprod.c:(.text+0xbed): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(opminloc.o): In function `MPIR_MINLOC':
opminloc.c:(.text+0x4b7): undefined reference to `pthread_getspecific'
opminloc.c:(.text+0x4e3): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(opmaxloc.o): In function `MPIR_MAXLOC':
opmaxloc.c:(.text+0x4b7): undefined reference to `pthread_getspecific'
opmaxloc.c:(.text+0x4e3): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(commutil.o): In function `MPIR_Get_contextid':
commutil.c:(.text+0xd94): undefined reference to `pthread_getspecific'
commutil.c:(.text+0xdc4): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(commutil.o): In function `MPIR_Get_intercomm_contextid':
commutil.c:(.text+0xfb5): undefined reference to `pthread_getspecific'
commutil.c:(.text+0xfe1): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(errutil.o): In function `MPIR_Nest_decr_export':
errutil.c:(.text+0x1fe7): undefined reference to `pthread_getspecific'
errutil.c:(.text+0x200f): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(errutil.o): In function `MPIR_Nest_incr_export':
errutil.c:(.text+0x203f): undefined reference to `pthread_getspecific'
errutil.c:(.text+0x2067): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(errutil.o): In function `MPIR_Err_return_comm':
errutil.c:(.text+0x22a7): undefined reference to `pthread_getspecific'
errutil.c:(.text+0x22d3): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(errutil.o): In function `MPIR_Err_return_win':
errutil.c:(.text+0x2447): undefined reference to `pthread_getspecific'
errutil.c:(.text+0x2473): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(initthread.o): In function `MPIR_Init_thread':
initthread.c:(.text+0x317): undefined reference to `pthread_getspecific'
initthread.c:(.text+0x33d): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(initthread.o): In function `MPIR_Thread_CS_Finalize':
initthread.c:(.text+0x3cc): undefined reference to `pthread_key_delete'
initthread.c:(.text+0x3df): undefined reference to `pthread_getspecific'
initthread.c:(.text+0x3fc): undefined reference to `pthread_setspecific'
initthread.c:(.text+0x407): undefined reference to `pthread_key_delete'
initthread.c:(.text+0x42c): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(initthread.o): In function `MPIR_Thread_CS_Init':
initthread.c:(.text+0x44f): undefined reference to `pthread_key_create'
/opt/mpich2/lib/libmpich.a(initthread.o): In function `MPI_Init_thread':
initthread.c:(.text+0x5df): undefined reference to `pthread_getspecific'
initthread.c:(.text+0x60b): undefined reference to `pthread_setspecific'
initthread.c:(.text+0x637): undefined reference to `pthread_getspecific'
initthread.c:(.text+0x663): undefined reference to `pthread_setspecific'
initthread.c:(.text+0x677): undefined reference to `pthread_getspecific'
initthread.c:(.text+0x6a3): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(finalize.o): In function `MPI_Finalize':
finalize.c:(.text+0x2b): undefined reference to `pthread_getspecific'
finalize.c:(.text+0x207): undefined reference to `pthread_getspecific'
finalize.c:(.text+0x2d4): undefined reference to `pthread_getspecific'
finalize.c:(.text+0x36c): undefined reference to `pthread_setspecific'
finalize.c:(.text+0x391): undefined reference to `pthread_setspecific'
finalize.c:(.text+0x3b6): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(mpid_type_debug.o): In function `MPIDI_Datatype_printf':
mpid_type_debug.c:(.text+0x927): undefined reference to `pthread_getspecific'
mpid_type_debug.c:(.text+0x94f): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(ch3u_handle_recv_req.o): In function `MPIDI_CH3_ReqHandler_AccumRespDerivedDTComplete':
ch3u_handle_recv_req.c:(.text+0x114f): undefined reference to `pthread_getspecific'
ch3u_handle_recv_req.c:(.text+0x117b): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(ch3u_handle_recv_req.o): In function `MPIDI_CH3_ReqHandler_PutAccumRespComplete':
ch3u_handle_recv_req.c:(.text+0x177f): undefined reference to `pthread_getspecific'
ch3u_handle_recv_req.c:(.text+0x17ab): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(ch3u_rma_sync.o): In function `MPIDI_CH3_PktHandler_Accumulate':
ch3u_rma_sync.c:(.text+0x1307): undefined reference to `pthread_getspecific'
ch3u_rma_sync.c:(.text+0x1333): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(ch3u_rma_sync.o): In function `MPIDI_Win_post':
ch3u_rma_sync.c:(.text+0x26f7): undefined reference to `pthread_getspecific'
ch3u_rma_sync.c:(.text+0x2723): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(ch3u_rma_sync.o): In function `MPIDI_Win_complete':
ch3u_rma_sync.c:(.text+0x5337): undefined reference to `pthread_getspecific'
ch3u_rma_sync.c:(.text+0x5367): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(ch3u_rma_sync.o): In function `MPIDI_Win_fence':
ch3u_rma_sync.c:(.text+0x5dc7): undefined reference to `pthread_getspecific'
ch3u_rma_sync.c:(.text+0x5df7): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(mpid_finalize.o): In function `MPID_Finalize':
mpid_finalize.c:(.text+0x13f): undefined reference to `pthread_getspecific'
mpid_finalize.c:(.text+0x16b): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(barrier.o): In function `MPI_Barrier':
barrier.c:(.text+0x32c): undefined reference to `pthread_getspecific'
barrier.c:(.text+0x3e5): undefined reference to `pthread_getspecific'
barrier.c:(.text+0x58c): undefined reference to `pthread_setspecific'
barrier.c:(.text+0x6e4): undefined reference to `pthread_setspecific'
barrier.c:(.text+0x6f7): undefined reference to `pthread_getspecific'
barrier.c:(.text+0x723): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(red_scat.o): In function `MPIR_Reduce_scatter':
red_scat.c:(.text+0x917): undefined reference to `pthread_getspecific'
red_scat.c:(.text+0x94d): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(red_scat.o): In function `MPI_Reduce_scatter':
red_scat.c:(.text+0x29cf): undefined reference to `pthread_getspecific'
red_scat.c:(.text+0x2aba): undefined reference to `pthread_getspecific'
red_scat.c:(.text+0x2cbc): undefined reference to `pthread_setspecific'
red_scat.c:(.text+0x327c): undefined reference to `pthread_setspecific'
red_scat.c:(.text+0x346a): undefined reference to `pthread_getspecific'
red_scat.c:(.text+0x3496): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(comm_group.o): In function `MPI_Comm_group':
comm_group.c:(.text+0x46): undefined reference to `pthread_getspecific'
comm_group.c:(.text+0xfd): undefined reference to `pthread_getspecific'
comm_group.c:(.text+0x29c): undefined reference to `pthread_setspecific'
comm_group.c:(.text+0x334): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(type_indexed.o): In function `MPI_Type_indexed':
type_indexed.c:(.text+0x3d): undefined reference to `pthread_getspecific'
type_indexed.c:(.text+0x232): undefined reference to `pthread_getspecific'
type_indexed.c:(.text+0x5b5): undefined reference to `pthread_setspecific'
type_indexed.c:(.text+0x608): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(type_free.o): In function `MPI_Type_free':
type_free.c:(.text+0x2a): undefined reference to `pthread_getspecific'
type_free.c:(.text+0x22d): undefined reference to `pthread_getspecific'
type_free.c:(.text+0x36c): undefined reference to `pthread_setspecific'
type_free.c:(.text+0x394): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(group_free.o): In function `MPI_Group_free':
group_free.c:(.text+0x2a): undefined reference to `pthread_getspecific'
group_free.c:(.text+0xe0): undefined reference to `pthread_getspecific'
group_free.c:(.text+0x2c4): undefined reference to `pthread_setspecific'
group_free.c:(.text+0x2ec): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(group_translate_ranks.o): In function `MPI_Group_translate_ranks':
group_translate_ranks.c:(.text+0x52): undefined reference to `pthread_getspecific'
group_translate_ranks.c:(.text+0x11f): undefined reference to `pthread_getspecific'
group_translate_ranks.c:(.text+0x3dc): undefined reference to `pthread_setspecific'
group_translate_ranks.c:(.text+0x4ac): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(recv.o): In function `MPI_Recv':
recv.c:(.text+0x64): undefined reference to `pthread_getspecific'
recv.c:(.text+0x14b): undefined reference to `pthread_getspecific'
recv.c:(.text+0x2bc): undefined reference to `pthread_setspecific'
recv.c:(.text+0x74c): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(send.o): In function `MPI_Send':
send.c:(.text+0x64): undefined reference to `pthread_getspecific'
send.c:(.text+0x13e): undefined reference to `pthread_getspecific'
send.c:(.text+0x522): undefined reference to `pthread_setspecific'
send.c:(.text+0x6ac): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(ch3u_comm_spawn_multiple.o): In function `MPIDI_Comm_spawn_multiple':
ch3u_comm_spawn_multiple.c:(.text+0x401): undefined reference to `pthread_getspecific'
ch3u_comm_spawn_multiple.c:(.text+0x437): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(scatterv.o): In function `MPI_Scatterv':
scatterv.c:(.text+0x440): undefined reference to `pthread_getspecific'
scatterv.c:(.text+0x551): undefined reference to `pthread_getspecific'
scatterv.c:(.text+0x8f4): undefined reference to `pthread_setspecific'
scatterv.c:(.text+0xf8c): undefined reference to `pthread_setspecific'
scatterv.c:(.text+0x1316): undefined reference to `pthread_getspecific'
scatterv.c:(.text+0x1342): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(type_vector.o): In function `MPI_Type_vector':
type_vector.c:(.text+0x54): undefined reference to `pthread_getspecific'
type_vector.c:(.text+0x19e): undefined reference to `pthread_getspecific'
type_vector.c:(.text+0x42c): undefined reference to `pthread_setspecific'
type_vector.c:(.text+0x4a4): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(type_struct.o): In function `MPI_Type_struct':
type_struct.c:(.text+0x40): undefined reference to `pthread_getspecific'
type_struct.c:(.text+0x113): undefined reference to `pthread_getspecific'
type_struct.c:(.text+0x52f): undefined reference to `pthread_setspecific'
type_struct.c:(.text+0x582): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(type_contiguous.o): In function `MPI_Type_contiguous':
type_contiguous.c:(.text+0x32): undefined reference to `pthread_getspecific'
type_contiguous.c:(.text+0x10e): undefined reference to `pthread_getspecific'
type_contiguous.c:(.text+0x394): undefined reference to `pthread_setspecific'
type_contiguous.c:(.text+0x3f4): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(type_hvector.o): In function `MPI_Type_hvector':
type_hvector.c:(.text+0x3d): undefined reference to `pthread_getspecific'
type_hvector.c:(.text+0x1a7): undefined reference to `pthread_getspecific'
type_hvector.c:(.text+0x474): undefined reference to `pthread_setspecific'
type_hvector.c:(.text+0x49c): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(waitall.o): In function `MPI_Waitall':
waitall.c:(.text+0x4c): undefined reference to `pthread_getspecific'
waitall.c:(.text+0x129): undefined reference to `pthread_getspecific'
waitall.c:(.text+0x5a3): undefined reference to `pthread_setspecific'
waitall.c:(.text+0x671): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(mpir_request.o): In function `MPIR_Request_get_error':
mpir_request.c:(.text+0x78f): undefined reference to `pthread_getspecific'
mpir_request.c:(.text+0x7bb): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(mpir_request.o): In function `MPIR_Request_complete':
mpir_request.c:(.text+0xadf): undefined reference to `pthread_getspecific'
mpir_request.c:(.text+0xb0b): undefined reference to `pthread_setspecific'
mpir_request.c:(.text+0xbf7): undefined reference to `pthread_getspecific'
mpir_request.c:(.text+0xc23): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(info_get.o): In function `MPI_Info_get':
info_get.c:(.text+0x52): undefined reference to `pthread_getspecific'
info_get.c:(.text+0x11f): undefined reference to `pthread_getspecific'
info_get.c:(.text+0x34c): undefined reference to `pthread_setspecific'
info_get.c:(.text+0x3ec): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(info_getn.o): In function `MPI_Info_get_nkeys':
info_getn.c:(.text+0x3d): undefined reference to `pthread_getspecific'
info_getn.c:(.text+0xf6): undefined reference to `pthread_getspecific'
info_getn.c:(.text+0x28c): undefined reference to `pthread_setspecific'
info_getn.c:(.text+0x2f4): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(info_getnth.o): In function `MPI_Info_get_nthkey':
info_getnth.c:(.text+0x31): undefined reference to `pthread_getspecific'
info_getnth.c:(.text+0xea): undefined reference to `pthread_getspecific'
info_getnth.c:(.text+0x29c): undefined reference to `pthread_setspecific'
info_getnth.c:(.text+0x304): undefined reference to `pthread_setspecific'
/opt/mpich2/lib/libmpich.a(info_getvallen.o): In function `MPI_Info_get_valuelen':
info_getvallen.c:(.text+0x4d): undefined reference to `pthread_getspecific'
info_getvallen.c:(.text+0x110): undefined reference to `pthread_getspecific'
info_getvallen.c:(.text+0x32c): undefined reference to `pthread_setspecific'
info_getvallen.c:(.text+0x3cc): undefined reference to `pthread_setspecific'
collect2: ld returned 1 exit status
configure:13879: $? = 1
configure: failed program was:
| /* confdefs.h. */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "fem"
| #define VERSION "5.5.0"
| #define HAVE_FTELLO 1
| #define HAVE_FSEEKO 1
| #define REVISION "4230"
| #define LINUX 1
| #define STDCALLBULL
| #define C_DLLEXPORT
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define SIZEOF_VOIDP 8
| #define ARCH_64_BITS 1
| #define F77_FUNC(name,NAME) name ## _
| #define F77_FUNC_(name,NAME) name ## _
| #define FC_FUNC(name,NAME) name ## _
| #define FC_FUNC_(name,NAME) name ## _
| #define ELMER_LINKTYP 1
| #define FC_CHAR_PTR(P,L) char *P
| #define HAVE_F_ETIME 1
| #define HAVE_F_FLUSH 1
| #define HAVE_LIBDL 1
| #define HAVE_DLOPEN 1
| #define HAVE_DLSYM 1
| #define HAVE_DLERROR 1
| #define HAVE_DLCLOSE 1
| #define HAVE_DLOPEN_API 1
| #define ENABLE_DYNAMIC_LINKING 1
| #define SHL_EXTENSION ".so"
| #define HAVE_MPI 1
| #define HAVE_BLAS 1
| #define HAVE_LAPACK 1
| #define HAVE_HUTI 1
| #define HAVE_EIOF 1
| #define HAVE_ARPACK 1
| /* end confdefs.h. */
|
| /* Override any GCC internal prototype to avoid an error.
| Use char because int might match the return type of a GCC
| builtin and then its argument prototype would still apply. */
| #ifdef __cplusplus
| extern "C"
| #endif
| char pdneupd_ ();
| #ifdef F77_DUMMY_MAIN
|
| # ifdef __cplusplus
| extern "C"
| # endif
| int F77_DUMMY_MAIN() { return 1; }
|
| #endif
| #ifdef FC_DUMMY_MAIN
| #ifndef FC_DUMMY_MAIN_EQ_F77
| # ifdef __cplusplus
| extern "C"
| # endif
| int FC_DUMMY_MAIN() { return 1; }
| #endif
| #endif
| int
| main ()
| {
| return pdneupd_ ();
| ;
| return 0;
| }
configure:13898: result: no
configure:13920: WARNING: No parallel arpack found.
mal
Site Admin
Posts: 54
Joined: 21 Aug 2009, 14:21

Re: Compiling Elmer with MPI

Post by mal »

Ok.

Code: Select all

/opt/mpich2/lib/libmpich.a(allreduce.o): In function `MPIR_Allreduce_inter':
allreduce.c:(.text+0x1c7): undefined reference to `pthread_getspecific'
It seems that the linker is unable to find `pthread_getspecific' and other functions related to pthreads.

So, I'd try adding -lpthread to LIBS before running the configure script ($ export LIBS=-lpthread).

Hope this helps.
Mikko
Takala
Posts: 186
Joined: 23 Aug 2009, 23:59

Re: Compiling Elmer with MPI

Post by Takala »

It works, thanks alot.

/Eelis
Takala
Posts: 186
Joined: 23 Aug 2009, 23:59

Similar problem different machine (Compiling Elmer with MPI)

Post by Takala »

Hi,

I have now a different machine and I have similar problem. I tried to use the trick proposed by mal, but now it doesn't work.

here is the config.log:

Code: Select all

configure:13822: checking for pdneupd_ in -lparpack
configure:13873: gcc -o conftest -g -O2 -m64 -fPIC -fPIC -I/home/ettaka/elmer/in
clude -I/opt/mpich2/gnu64//include  -L.  -L/home/ettaka/elmer/lib conftest.c -lp
arpack  -L/opt/mpich2/gnu64//lib -lmpich -larpack -llapack -lblas -L. -ldl -laio
 -L/home/ettaka/elmer/lib  -L/opt/pathscale/lib/2.2.1 -laio -lpathfstart -lpathf
ortran -lmv -lmpath -lm -lpscrt -L/usr/lib/gcc/x86_64-redhat-linux/3.4.4 -L/usr/
lib/gcc/x86_64-redhat-linux/3.4.4/../../../../lib64 -L/usr/lib/gcc/x86_64-redhat
-linux/3.4.4/../../.. -L/lib/../lib64 -L/usr/lib/../lib64  -L/opt/pathscale/lib/
2.2.1 -laio -lpathfstart -lpathfortran -lmv -lmpath -lm -lpscrt -L/usr/lib/gcc/x
86_64-redhat-linux/3.4.4 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.4/../../../../li
b64 -L/usr/lib/gcc/x86_64-redhat-linux/3.4.4/../../.. -L/lib/../lib64 -L/usr/lib
/../lib64 >&5
/opt/mpich2/gnu64//lib/libmpich.so: undefined reference to `MD5'
/opt/mpich2/gnu64//lib/libmpich.so: undefined reference to `aio_read64'
/opt/mpich2/gnu64//lib/libmpich.so: undefined reference to `aio_error64'
/opt/mpich2/gnu64//lib/libmpich.so: undefined reference to `aio_suspend64'
/opt/mpich2/gnu64//lib/libmpich.so: undefined reference to `aio_write64'
/opt/mpich2/gnu64//lib/libmpich.so: undefined reference to `aio_return64'
collect2: ld returned 1 exit status
configure:13879: $? = 1
So I tried: (export LIBS=-laio), but its not working.

Any ideas what I should do. By the way, I tried also to set LD_LIBRARY_PATH to include the path of libaio.so, but the config.log that I pasted is what I have now...

/Eelis
mal
Site Admin
Posts: 54
Joined: 21 Aug 2009, 14:21

Re: Compiling Elmer with MPI

Post by mal »

Hi,

If you want to pass a specific library path to the linker, you can use the LDFLAGS variable, e.g. export LDFLAGS=-L/some/path

LD_LIBRARY_PATH is related to runtime loading of shared libraries.
mal
Site Admin
Posts: 54
Joined: 21 Aug 2009, 14:21

Re: Compiling Elmer with MPI

Post by mal »

One more thing.

Have you checked whether your mpich installation provides MPI-specific wrappers for your compilers? Usually these wrappers are called mpicc, mpic++, mpif90, or something similar. It might be a good idea to use these instead of the plain compiler commands, they should automatically set up correct paths and libs:

Code: Select all

export CC=mpicc
export CXX=mpic++
export FC=mpif90
export F77=mpif90
Takala
Posts: 186
Joined: 23 Aug 2009, 23:59

Re: Compiling Elmer with MPI

Post by Takala »

Hi,

Thanks for the tips. I have been trying to make it work, but without any different results. So the config.log still looks the same...

I guess, I just have to try harder :)

/Eelis

ps. if you still have some ideas, let me know...Thanks
mal
Site Admin
Posts: 54
Joined: 21 Aug 2009, 14:21

Re: Compiling Elmer with MPI

Post by mal »

What says "mpif90 -show"? Does it compile MPI sample programs?

You might also want to manually inspect the dependencies of your mpi lib by typing "ldd libmpich.so".

Finally, try adding the switch "--with-mpi-dir=/path/to/my/mpi" to the configuration script.
Post Reply