Skip to content

Parallel interface - undefined reference to kaffpaE #35

@IgorBaratta

Description

@IgorBaratta

I'm trying to add and test kahip as a mesh partitioner in FEniCs. I am particularly interested in the parallel interface parhip_interface.h.

As FEniCs uses Cmake, I've created a FindKaHIP.cmake file to find the directory that contains the header files and libraries libparhip.a and libkahip.a. So far so good.
I can use the sequential interface correctly, and add both headers to cpp file.

However when I try to call the ParHIPPartitionKWay function, I get the following build error:

...KaHIP/deploy/libparhip.a(distributed_evolutionary_partitioning.o): In function `distributed_evolutionary_partitioning::perform_partitioning(int, PPartitionConfig&, parallel_graph_access&)':
distributed_evolutionary_partitioning.cpp:(.text+0x1a98): undefined reference to `kaffpaE'
collect2: error: ld returned 1 exit status

One can find a minimum example in https://github.com/IgorBaratta/GSOC2019/tree/master/example
with CMakeLists.txt, FindKaHIP.cmake and ex.cpp files.

If I suppress the call to ParHIPPartitionKWay , it builds fine (but of course the partition is not performed).

I've tried both scripts compile.h and compile_withcmake.sh. But the issue persists.

All in all, I can use the sequential interface (kaffpa) following these same procedures, but I get an error when trying to use the parallel interface ParHIPPartitionKWay.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions