Hierarchical Iterative Parallel Solver



Pre-requirements :

Installation procedure :

  1. Install SCOTCH 5.xx or METIS 4.0.

  2. Decompress the HIPS archive, go in the HIPS directory and copy from Makefile_In_Example/ a makefile.inc corresponding to our architecture on the root of the HIPS installation directory. For example; if you are installing HIPS on a Linux system :
      tar -xzf hips-*
      cd hips-*
      cp Makefile_Inc_Example/makefile.inc.linux ./makefile.inc

  3. Edit the file makefile.inc which contains the compilation parameters :

    • Comment out one of these lines to compile the complex or the real version of HIPS :

      On some architecture MPI has no complex type. In this case, you can compile HIPS with COEFTYPE = -DTYPE_COMPLEX -DWITH_MPI_DOUBLE.

    • If you are using METIS leave unchanged the line :
      Otherwise, set PARTITIONER = -DSCOTCH_PART to use SCOTCH.

      You can give the installation path of the partitionner library using the variables METIS\_DIR or SCOTCH\_DIR. Alternativly, you can directly set the library path (LMETIS or LSCOTCH) and the include path (IMETIS or ISCOTCH).

    • You can optionnaly define the integer sizes used in HIPS using the variable INTSIZE. Leave this variable unreferenced to use default C type of your machine. It is useful if :
      • you want to use HIPS in a Fortran code,
      • have 32 bits integers by default and encounter overflows (very large problems),
      • if your own code or library define specifically integer sizes.

  4. Set the compiler and linker options specific to your installation :
    • Configure compilers and their flags (use for example COPTFLAGS and FOPTFLAGS to set optimizations flags like -O3).
    • Configure LBLAS variable to link to your BLAS library. For example, use :
      LBLAS = -lblas
      With the Intel Math Kernel Library (MKL), you will need something like :
      -L/mkl/ -lmkl_intel_lp64    \
       -lmkl_sequential -lmkl_core -liomp5 -lpthread

      If you are using a multithreaded BLAS library (ATLAS, MKL, GotoBLAS, ...), disable this feathure (see manual of your BLAS library).

    • If your library path (LD_LIBRARY_PATH) are not properly set, you can add directory where are searched the libraries (variables LSCOTCH, LMETIS, LMPI and LBLAS). For example :
      LBLAS = -L/path/to/libblas/ -lblas

    • The search paths for header files can be controlled throught variables ISCOTCH, IMETIS, IMPI and IBLAS. For example, the following line will add /path/to/mpi/include/ to the include path (to find mpi.h) :
      IMPI = -I/path/to/mpi/include/

  5. Run make all to compile the library and the test programs. HIPS makefile are designed to compile with the GNU make : on certain architectures you will have to use gmake instead of make (MAKE = gmake).