Skip to content

0204 Compilation ParMETIS Windows

Kirill Terekhov edited this page Aug 30, 2018 · 7 revisions

Compiling INMOST with ParMETIS on Windows

INMOST may be configured with optional ParMETIS support. In this case INMOST will support calling graph partitioner from ParMETIS package, i.e. you will be able to use Partitioner::Parmetis in Partitioner::SetMethod.

INMOST is compatible with ParMETIS version 4.0.3 and is known to compile well with Visual Studio. For version of Visual Studio greater then 2010 please correct the source code of ParMETIS as suggested in https://github.com/INMOST-DEV/INMOST/issues/14.

Download ParMETIS version 4.0.3 from http://glaros.dtc.umn.edu/gkhome/metis/parmetis/download.

ParMETIS installation guide recommends that you visit metis/include/metis.h and choose IDXTYPEWIDTH and REALTYPEWIDTH to be 32 or 64. If you expect large meshes you may change IDXTYPEWIDTH to 64.

Create "build" directory where visual studio project will be created.

Open cmake-gui application and enter path to the folder where you have unarchived parmetis source code into the field to right to "Where is the source code" text then provide path to your "build" directory.

pic1

Before you click "Configure" button in CMake you have to provide cmake instructions for MPI library.

You can either open CMakeLists.txt in source directory and add find_package(MPI) after Project(ParMETIS) words, then CMake will try to detect MPI library automatically.

Or you may click "Add Entry" button in CMake application and enter MPI_INCLUDE_PATH variable of type path on your own. Note that MPI libraries provided for INMOST library and ParMETIS library should match.

pic2

Click "Configure" and select Visual Studio as your compiler. It is recommended that selected compiler match with compiler for INMOST library.

pic3

Then click "Generate".

pic4

Open your "build" directory and open generated ParMETIS.sln visual studio solution. Switch from Debug to Release mode in "Build/Configuration Manager" menu. Hit F7 to compile the library.

After successful compilation provide path for INMOST library.

Open cmake-gui and by clicking to black triangle at the right end of the field after "Where to build the binaries" and choose your build directory for INMOST.

First activate USE_PARTITIONER_PARMETIS checkbox.

Then add four entries through "Add Entry" button:

METIS_INCLUDE_DIR of type PATH pointing to path_of_parmetis_source/metis/include

METIS_LIBRARY of type FILEPATH pointing to path_of_parmetis_build/libmetis/Release/libmetis.lib

PARMETIS_INCLUDE_DIR of type PATH pointing to path_of_parmetis_source/include

PARMETIS_LIBRARY of type FILEPATH pointing to path_of_parmetis_build/libparmetis/Release/parmetis.lib

pic5

As a result you will be able to use Partitioner::Parmetis in Partitioner::SetMethod.

You can’t perform that action at this time.