Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • I INMOST
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Kirill Terekhov
  • INMOST
  • Wiki
  • 0204 Compilation ParMETIS Windows

Last edited by Kirill Terekhov Aug 30, 2018
Page history

0204 Compilation ParMETIS Windows

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.

Clone repository
  • 0100 Compilation
  • 0200 Compilation Windows
  • 0201 Obtain MSVC
  • 0202 Obtain MSMPI
  • 0203 Compilation INMOST Windows
  • 0204 Compilation ParMETIS Windows
  • 0205 Compilation Zoltan Windows
  • 0206 Compilation PETSc Windows
  • 0207 Compilation Trilinos Windows
  • 0400 Compilation Linux
  • 0401 Install MPI
  • 0402 Compilation INMOST Linux
  • 0403 Compilation PETSc Linux
  • 0404 Compilation Trilinos Linux
  • 0405 Compilation ParMETIS Linux
View All Pages