[Paraview] Building parallel pvserver with MPICH2 on Mac OS X

Shigenobu Hirose shirose at jamstec.go.jp
Sat Jan 17 01:07:53 EST 2009


Hi Berk,

Thank you. That solved the problem.
(I didn't realize that libpmpich.a (rather than libmpichxx.a) had the
MPI functions.)

Shigenobu

On Sat, Jan 17, 2009 at 00:51, Berk Geveci <berk.geveci at kitware.com> wrote:
> Try adding libpmpich.a to the MPI_EXTRA_LIBRARY:
>
> MPI_EXTRA_LIBRARY
> /opt/local/lib/libmpich.a;/opt/local/lib/libpmpich.a
>
> By the way, unless you are building ParaView statically, I recommend
> using shared MPI libraries as well.
>
> -berk
>
> On Fri, Jan 16, 2009 at 9:55 AM, Shigenobu Hirose <shirose at jamstec.go.jp> wrote:
>> Hi,
>>
>> I want to build a parallel pvserver on Mac OS X 10.5.6 (Intel) with
>> paraview-3.4.0 and MPICH2, which fails as follows. It seems that
>> ccmake cannot find MPI libraries, but I'm sure that the parameters
>> point correct locations of the libraries. Also, I've confirmed that
>> MPICH2 are correctly installed on the system. (I also tried the CVS
>> source, which failed in the same way.)
>> Could anyone give me suggestions?
>>
>> Thank you.
>> Shigenobu
>>
>> - MPI-related parameters for ccmake:
>> MPI_EXTRA_LIBRARY                /opt/local/lib/libmpich.a
>> MPI_INCLUDE_PATH                 /opt/local/include/mpich2
>> MPI_LIBRARY                      /opt/local/lib/libmpichcxx.a
>>
>> - Errors:
>> Linking CXX executable ../../../../bin/DistributedData
>> Undefined symbols:
>>  "_MPI_Comm_dup", referenced from:
>>      vtkMPICommunicator::Duplicate(vtkMPICommunicator*)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Reduce", referenced from:
>>      vtkMPICommunicatorReduceData(void const*, void*, int, int, int,
>> int, int*)in libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Cancel", referenced from:
>>      vtkMPICommunicator::Request::Cancel()     in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Irecv", referenced from:
>>      int vtkMPICommunicatorNoBlockReceiveData<int>(int*, int, int,
>> int, int, vtkMPICommunicator::Request&, int*)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      int vtkMPICommunicatorNoBlockReceiveData<unsigned long>(unsigned
>> long*, int, int, int, int, vtkMPICommunicator::Request&, int*)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      int vtkMPICommunicatorNoBlockReceiveData<char>(char*, int, int,
>> int, int, vtkMPICommunicator::Request&, int*)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      int vtkMPICommunicatorNoBlockReceiveData<float>(float*, int,
>> int, int, int, vtkMPICommunicator::Request&, int*)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Isend", referenced from:
>>      int vtkMPICommunicatorNoBlockSendData<int>(int const*, int, int,
>> int, int, vtkMPICommunicator::Request&, int*)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      int vtkMPICommunicatorNoBlockSendData<unsigned long>(unsigned
>> long const*, int, int, int, int, vtkMPICommunicator::Request&, int*)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      int vtkMPICommunicatorNoBlockSendData<char>(char const*, int,
>> int, int, int, vtkMPICommunicator::Request&, int*)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      int vtkMPICommunicatorNoBlockSendData<float>(float const*, int,
>> int, int, int, vtkMPICommunicator::Request&, int*)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Comm_free", referenced from:
>>      vtkMPICommunicator::~vtkMPICommunicator()in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::~vtkMPICommunicator()in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::~vtkMPICommunicator()in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::InitializeCopy(vtkMPICommunicator*)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Errhandler_set", referenced from:
>>      vtkMPICommunicator::GetWorldCommunicator()       in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Gatherv", referenced from:
>>      vtkMPICommunicator::GatherVVoidArray(void const*, void*, int,
>> int*, int*, int, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::GatherVVoidArray(void const*, void*, int,
>> int*, int*, int, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Comm_rank", referenced from:
>>      vtkMPICommunicator::InitializeNumberOfProcesses()       in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::ScatterVVoidArray(void const*, void*, int*,
>> int*, int, int, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::GatherVVoidArray(void const*, void*, int,
>> int*, int*, int, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Comm_size", referenced from:
>>      vtkMPICommunicator::InitializeNumberOfProcesses()       in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::GetWorldCommunicator()       in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::GatherVoidArray(void const*, void*, int,
>> int, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::AllGatherVoidArray(void const*, void*, int,
>> int)in libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::AllGatherVVoidArray(void const*, void*, int,
>> int*, int*, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::ScatterVVoidArray(void const*, void*, int*,
>> int*, int, int, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::GatherVVoidArray(void const*, void*, int,
>> int*, int*, int, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Op_create", referenced from:
>>      vtkMPICommunicator::ReduceVoidArray(void const*, void*, int,
>> int, vtkCommunicator::Operation*, int)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::AllReduceVoidArray(void const*, void*, int,
>> int, vtkCommunicator::Operation*)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Ssend", referenced from:
>>      int vtkMPICommunicatorSendData<char>(char const*, int, int, int,
>> int, int, int*, int, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>      int vtkMPICommunicatorSendData<char>(char const*, int, int, int,
>> int, int, int*, int, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Group_free", referenced from:
>>      vtkMPICommunicator::Initialize(vtkProcessGroup*)        in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::Initialize(vtkProcessGroup*)        in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::Initialize(vtkProcessGroup*)        in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::Initialize(vtkProcessGroup*)        in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::Initialize(vtkProcessGroup*)        in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::Initialize(vtkProcessGroup*)        in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Group_incl", referenced from:
>>      vtkMPICommunicator::Initialize(vtkProcessGroup*)        in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Allgatherv", referenced from:
>>      vtkMPICommunicator::AllGatherVVoidArray(void const*, void*, int,
>> int*, int*, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Gather", referenced from:
>>      vtkMPICommunicator::GatherVoidArray(void const*, void*, int,
>> int, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Op_free", referenced from:
>>      vtkMPICommunicator::ReduceVoidArray(void const*, void*, int,
>> int, vtkCommunicator::Operation*, int)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::AllReduceVoidArray(void const*, void*, int,
>> int, vtkCommunicator::Operation*)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Errhandler_create", referenced from:
>>      vtkMPICommunicator::GetWorldCommunicator()       in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Allreduce", referenced from:
>>      vtkMPICommunicatorAllReduceData(void const*, void*, int, int,
>> int, int*)in libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Barrier", referenced from:
>>      vtkMPICommunicator::Barrier()      in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Request_free", referenced from:
>>      vtkMPICommunicator::Request::Cancel()     in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Finalize", referenced from:
>>      vtkMPIController::Finalize(int)   in libvtkParallel.a(vtkMPIController.o)
>>  "_MPI_Error_string", referenced from:
>>      vtkMPIController::ErrorString(int)    in
>> libvtkParallel.a(vtkMPIController.o)
>>      vtkMPICommunicatorMPIErrorHandler(int*, int*, ...)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Init", referenced from:
>>      vtkMPIController::Initialize(int*, char***, int)in
>> libvtkParallel.a(vtkMPIController.o)
>>  "_MPI_Comm_group", referenced from:
>>      vtkMPICommunicator::Initialize(vtkProcessGroup*)        in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Allgather", referenced from:
>>      vtkMPICommunicator::AllGatherVoidArray(void const*, void*, int,
>> int)in libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Errhandler_free", referenced from:
>>      vtkMPICommunicator::GetWorldCommunicator()       in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Get_processor_name", referenced from:
>>      vtkMPIController::Initialize(int*, char***, int)in
>> libvtkParallel.a(vtkMPIController.o)
>>  "_MPI_Recv", referenced from:
>>      int vtkMPICommunicatorReceiveData<char>(char*, int, int, int,
>> int, int, int*, int, int&)in libvtkParallel.a(vtkMPICommunicator.o)
>>      int vtkMPICommunicatorReceiveData<char>(char*, int, int, int,
>> int, int, int*, int, int&)in libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Send", referenced from:
>>      int vtkMPICommunicatorSendData<char>(char const*, int, int, int,
>> int, int, int*, int, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>      int vtkMPICommunicatorSendData<char>(char const*, int, int, int,
>> int, int, int*, int, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Test", referenced from:
>>      vtkMPICommunicator::Request::Test()     in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Wait", referenced from:
>>      vtkMPICommunicator::Request::Wait()     in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Scatter", referenced from:
>>      vtkMPICommunicator::ScatterVoidArray(void const*, void*, int,
>> int, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Comm_create", referenced from:
>>      vtkMPICommunicator::Initialize(vtkProcessGroup*)        in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Abort", referenced from:
>>      vtkMPICommunicatorMPIErrorHandler(int*, int*, ...)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Bcast", referenced from:
>>      vtkMPICommunicator::BroadcastVoidArray(void*, int, int, int)in
>> libvtkParallel.a(vtkMPICommunicator.o)
>>  "_MPI_Scatterv", referenced from:
>>      vtkMPICommunicator::ScatterVVoidArray(void const*, void*, int*,
>> int*, int, int, int)in libvtkParallel.a(vtkMPICommunicator.o)
>>      vtkMPICommunicator::ScatterVVoidArray(void const*, void*, int*,
>> int*, int, int, int)in libvtkParallel.a(vtkMPICommunicator.o)
>> ld: symbol(s) not found
>> collect2: ld returned 1 exit status
>> make[2]: *** [bin/DistributedData] Error 1
>> make[1]: *** [VTK/Parallel/Testing/Cxx/CMakeFiles/DistributedData.dir/all]
>> Error 2
>> make: *** [all] Error 2
>> _______________________________________________
>> ParaView mailing list
>> ParaView at paraview.org
>> http://www.paraview.org/mailman/listinfo/paraview
>>
>


More information about the ParaView mailing list