-
-
Notifications
You must be signed in to change notification settings - Fork 108
Description
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.