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
  • 0203 Compilation INMOST Windows

Last edited by Kirill Terekhov Aug 30, 2018
Page history

0203 Compilation INMOST Windows

Compilation guide for INMOST on Windows

Please share any issues with this compilation guide at https://github.com/INMOST-DEV/INMOST/issues

This guide was tested with:

  • Microsoft Visual Studio 2013 Express and Professional Edition
  • Microsoft Visual Studio 2010 Professional Edition
  • Microsoft Visual Studio 2008 Express Edition
  • Misrosoft Visual Studio 2005 Express Edition

guide for Microsoft Visual Studio

Download source archive from https://github.com/INMOST-DEV/INMOST/releases and unpack it into inmost_source_path.

Create new folder for building purposes. We will refere to it inmost_build_path.

Start CMake-gui application and enter inmost_source_path into the field right after the text "Where is the source code". Enter inmost_build_path into the field to the right from "Where to build the binaries".

pic1

Click on the "Generate" button. You will be prompted to select the compiler which you would like to use.

pic2

Select Visual Studio as your compiler and press "Finish". Once configured it will provide you options that are avialible in INMOST.

pic3

By default USE_MESH, USE_SOLVER, USE_PARTITIONER and USE_AUTODIFF checkboxes are activated. They are related to internal services within INMOST:

  • USE_MESH provides tools to work with mesh and mesh data in distributed parallel environment.
  • USE_SOLVER provides capabilities to solve sparse linear algebraic problem Ax=b in distributed parallel environment and can interface with PETSc and Trilinos libraries.
  • USE_PARTITIONER gives capability to partition the mesh in serial execution and can interface with ParMetis and Zoltan libraries for parallel execution.
  • USE_AUTODIFF is a tool that automatically constructs Jacobian matrix for nonlinear problem, works in parallel.

You can uncheck any of this checkboxes and click "Configure" again.

There are also several options that allows to extend functionality by using side libraries:

  • USE_PARTITIONER_PARMETIScompilation guide with ParMetis
  • USE_PARTITIONER_ZOLTANcompilation guide with Zoltan
  • USE_SOLVER_PETSCcompilation guide with PETSc
  • USE_SOLVER_TRILINOScompilation guide with Trilinos
  • TEST_FORTRAN_ANI3D test for presence of fortran compiler and compile ANI3D serial solver.

In case CMake detects presence of MPI library then it will also activate the following checkboxes:

  • USE_MPI compile INMOST for distributed environment.
  • USE_MPI2 that will activate features from MPI-2, this option is provided to you in the case you have MPI-1 library. Then in order to compile INMOST you will have to uncheck this checkbox manually.
  • USE_MPI_FILE this will activate input-output algorithms using MPI-ROMIO functionality in INMOST. In case your MPI does not have ROMIO you should manualy uncheck this checkbox.
  • USE_MPI_P2P this will activate point to point algorithms using MPI-RDMA functionality in INMOST. In case your MPI does not have RDMA or your hardware does not support RDMA operations you should manualy uncheck this checkbox.

If your MPI library was not detected automatically you may try providing it manually. Click "Add Entry" button and enter:

  • MPI_INCLUDE_PATH type PATH the path to header files of MPI library.
  • MPI_LIBRARY type FILEPATH the MPI library

pic4

Then click "Configure" again and in case you see "MPI FOUND" words then you have successfully activated MPI in INMOST.

MPI is not required for INMOST to work. You may uncheck the checkbox USE_MPI if you don't plan to use INMOST library in parallel. In this case all parallel algorithms would be deactivated.

You may also set two checkboxes:

  • COMPILE_TESTShere
  • COMPILE_EXAMPLEShere

At last you may setup CMAKE_INSTALL_PREFIX variable. By this variable you provide the path where the library and all the relevant header files will be installed. It will also provide instructions for other cmake projects that will have to use INMOST library.

pic5

Then click "Configure" again and then "Generate". In output you should see the words "Generation done".

Go to your inmost_build_path. You should see there multiple files.

pic6

Double click on Visual Studio solution file INMOST.sln. Hit F7 to compile library and additional components.

pic7

Compilation should end successfully. In the case you have activated COMPILE_TESTS you may go to "View/Solution Explorer".

pic8

There you can find "RUN_TESTS" project in the list, right click on it and then click build.

pic9

If everything is fine all testing should end successfully.

pic10

Now you can install library. Go to "View/Solution Explorer" again. Find "INSTALL" project there, right click on it and then click build.

pic11

In output window it should report you destination where it installs library, headers and binaries of examples. This destination should match with the one you have provided through CMAKE_INSTALL_PREFIX.

pic12

Now you are ready to use INMOST. Check examples for practice of using INMOST.

When you are developing your application with INMOST library it is recommended that you use the library in Debug mode. This will activate numerous internal checks within the library. Once you are done you'd better use Release mode. In order to switch the mode go to "Build/Configuration Manager".

pic13

And there switch from Debug to Release mode.

pic14

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