Intel® MPI Library
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.

ntel_Parallel_Studio_XE_Cluster_Edition_2019_Update4_Linux_ubuntu18.04

ab1
Beginner
2,793 Views

Sir

the installed version of ifort is 19.0.4.243 on ubuntu 18.04.  the intel parallel studio xe (clusters) 2019 is the version

i am getting difficulty while compiling ARPACk-NG. It was downloaded from https://github.com/opencollab/arpack-ng/releases

i am following commands mentioned in read.md file to compile ARPACK-NG using CMake functionality:
   
    $ mkdir build
    $ cd build
    $ cmake -D EXAMPLES=ON -D MPI=ON -D BUILD_SHARED_LIBS=ON ..
    $ make
    $ make install

it is expected to build everything including examples and parallel support (with MPI).

-- Detecting Fortran/C Interface - Failed to compile
CMake Warning (dev) at /usr/share/cmake-3.10/Modules/FortranCInterface.cmake:309 (message):
  No FortranCInterface mangling known for sgemm

  The Fortran compiler:

    /opt/intel/compilers_and_libraries_2019.4.243/linux/mpi/intel64/bin/mpiifort

  and the C compiler:

    /opt/intel/compilers_and_libraries_2019.4.243/linux/bin/intel64/icc

  failed to compile a simple test project using both languages.

my bashfile has

   source /opt/intel/compilers_and_libraries_2019/linux/bin/compilervars.sh intel64
    source /opt/intel/compilers_and_libraries_2019.4.243/linux/mkl/bin/mklvars.sh intel64 ilp64 mod

  export CMAKE_INCLUDE_PATH=/opt/intel/compilers_and_libraries_2019.4.243/linux/mkl/include
 export CMAKE_LIBRARY_PATH=/opt/intel/compilers_and_libraries_2019.4.243/linux/mkl/lib/intel64:/opt/intel/compilers_and_libraries_2019.4.243/linux/compiler/lib/intel64
 export LD_LIBRARY_PATH=$CMAKE_LIBRARY_PATH:$LD_LIBRARY_PATH

    export MKLROOT=/opt/intel/mkl
       export FCFLAGS=-i8
     export FFLAGS="-i8"
   
   export CC=$(which icc)
    export CXX=$(which icpc)
    export FC=$(which mpiifort)   

kindly let me know where i am making a mistake.

thanks

ab

0 Kudos
1 Solution
PrasanthD_intel
Moderator
2,793 Views

Hi Vardaan,

 

I have provided you links for steps on how to load intel libraries and compilers you want use.

Here i am again providing the steps to load compilers(icc,mkl,mpi) you need to build your project. Please follow the below steps and confirm:

By default, <install_dir> is:

For root users: /opt/intel/

For non-root users: $HOME/intel/

1)Intel C Compiler/Fortran compiler

source <install_dir>/compilers_and_libraries_2020.<update number>.<package number>/linux/bin/compilervars.sh <ia32|intel64>

2)Intel MPI

source <install_dir>/compilers_and_libraries_<version>/linux/mpi/mpivars.sh

https://software.intel.com/en-us/get-started-with-mpi-for-linux

3) Intel MKL

source <install_dir>/compilers_and_libraries_<version>/linux/mkl/bin/mklvars.sh  <intel64 mod ilp64>

https://software.intel.com/en-us/onemkl-linux-developer-guide-scripts-to-set-environment-variables

https://software.intel.com/en-us/mkl-macos-developer-guide-using-the-ilp64-interface-vs-lp64-interface

 

After loading these scripts set these environment variables to use intel compilers instead of GNU compilers

export CC=$(which icc)
export CXX=$(which icpc)
export FC=$(which mpiifort)
  

These scripts sets all the required environment variables required for intel compilers. 

Let me know if you face any errors

 

Thanks 

Prasanth

 

 

 

 

View solution in original post

0 Kudos
13 Replies
PrasanthD_intel
Moderator
2,793 Views

Hi,

We have tried to reproduce the issue and the cmake ran successfully.

The issue you might be facing is the required impi and fortan compilers are not properly loaded.

Try sourcing the latest version of impi and fortran again and run the cmake.

source /opt/intel/compilers_and_libraries_<version>/linux/bin/compilervars.sh intel64

source <installdir>/intel64/bin/mpivars.sh

Could you please tell me the output of which mpiifort.

 

Thanks 
Prasanth

 

 

 

0 Kudos
PrasanthD_intel
Moderator
2,793 Views

Hi,

Has the given solution worked for you, are you able to run cmake successfully.

Do let us know.

Reach out to us if you need any further help.

 

Thanks 

Prasanth

0 Kudos
sahgal__vardaan
Beginner
2,793 Views

Thanks prashanth

I tried to compile cmake -D EXAMPLES=ON -D INTERFACE64=ON -D MPI=ON -D BUILD_SHARED_LIBS=ON ..

however i am not sure if it has correctly compiled . I am not able to find detailed like integer size / 64 bit interface in build output

 

2   how can i get arpack.a files. i know ar q libarpack.a *.o will create archives but the issue is .f files are scattered in several directories like src/ util/ parpack.....\  which one should i consider if its sequentially compiled or using MPI

thanks

 

 

0 Kudos
PrasanthD_intel
Moderator
2,793 Views

Hi Vardaan,

1)I am attaching my cmake output ,here you can see from the highlighted line 

 INTERFACE64 :1

The 64-bit integer interface (ILP64) for ARPACK, BLAS and LAPACK is set to 1.  Are you looking for this?integer64.png

2)Regarding the second point , could you please rephrase the question with more information of what you want.

 

Thanks

Prasanth

0 Kudos
sahgal__vardaan
Beginner
2,793 Views

Thanks Prashanth for all the pains taken and presenting in a more simple form. I loved the pics attached.

my output differs from yours in several ways

-- MPIFC:                            blank wheras it mentions in your output

-- BLAS:

-- link: /usr/lib/x86_64-linux-gnu/libopenblas.so

-- LAPACK:

-- link: /usr/lib/x86_64-linux-gnu/libopenblas.so

-- link: /usr/lib/x86_64-linux-gnu/libopenblas.so

why is it so ? i understand we are using different compilers. Though I am using intel but i am not getting  same files (.so) as yours. there is no intel file ? is it because of environment settings ? how can  get same as that yours.  I strongly feel mixing is taking place which is affecting me later. It appears I am not using intel mkl libraries .....

My 2nd question is     I require archive file of arpack  ie  libarpack.a.a files

The Cmake command does not produce libarpack.a file (if i am not mistaken). it needs to be created manually using ar q libarpack.a *.o

my concern is  the .o files are in SRC, UTIL and Parpack directories and may also be elsewhere ARPACK-NG folder. which folder should i consider if i am working with MPI/64 bit interface with MPI=ON

2b   what is parapck

3   If I am compiling using simple ifort (without mpi) shoud i keep MPI=0 or OFF   and subsquently do i need parpack files

 

deepest regards

 

vs

0 Kudos
PrasanthD_intel
Moderator
2,793 Views

Hi Vardaan,

 

1) The BLAS and LAPACk comes with intel mkl.  As you have parallel studio installed mkl is included in that.

  Please check your mkl installation by following below link:

   https://software.intel.com/en-us/onemkl-linux-developer-guide-checking-your-installation

  Set the environment variables by running the scripts as mentioned in the below link:

  https://software.intel.com/en-us/onemkl-linux-developer-guide-setting-environment-variables

2) The PARPACK  as mentioned in the readme.md file means Parallel ARPACK routines. The subroutines invloving MPI are considered as parallel and placed under PARPACK . If you want to use MPI subroutines you have to include the *.o files in PARPACK in the static library you are creating.

3) If you do not want the MPI subroutines you can exclude them by setting a flag in CMAKE  -D MPI=OFF which will disable the parallel support and        PARPACK will not be created.

 

If your initial query is resolved please raise a new thread for any further questions.

 

Thanks

Prasanth

 

 

 

 

 

0 Kudos
sahgal__vardaan
Beginner
2,793 Views

hi Prashanth

My simple query is what commands do i need to compile ARPACk using interl compiler and MKL libraries...

by defaults it is taking GNU libraries. example: to test arpack with sequential ILP64 MKL assuming you use gnu compilers
    ```$ ./bootstrap
    $ export FFLAGS='-I/usr/include/mkl'
    $ export FCFLAGS='-I/usr/include/mkl'
    $ export LIBS='-Wl,--no-as-needed -lmkl_sequential -lmkl_core -lpthread -lm -ldl'
    $ export INTERFACE64=1
    $ ./configure --with-blas=mkl_gf_ilp64 --with-lapack=mkl_gf_ilp64
    $ make all check```

How to use INTEL MLL LIb 

The sceenshot that you sent, seems the RPACK was compiled using MKL libraries.

thanks

vs

0 Kudos
PrasanthD_intel
Moderator
2,794 Views

Hi Vardaan,

 

I have provided you links for steps on how to load intel libraries and compilers you want use.

Here i am again providing the steps to load compilers(icc,mkl,mpi) you need to build your project. Please follow the below steps and confirm:

By default, <install_dir> is:

For root users: /opt/intel/

For non-root users: $HOME/intel/

1)Intel C Compiler/Fortran compiler

source <install_dir>/compilers_and_libraries_2020.<update number>.<package number>/linux/bin/compilervars.sh <ia32|intel64>

2)Intel MPI

source <install_dir>/compilers_and_libraries_<version>/linux/mpi/mpivars.sh

https://software.intel.com/en-us/get-started-with-mpi-for-linux

3) Intel MKL

source <install_dir>/compilers_and_libraries_<version>/linux/mkl/bin/mklvars.sh  <intel64 mod ilp64>

https://software.intel.com/en-us/onemkl-linux-developer-guide-scripts-to-set-environment-variables

https://software.intel.com/en-us/mkl-macos-developer-guide-using-the-ilp64-interface-vs-lp64-interface

 

After loading these scripts set these environment variables to use intel compilers instead of GNU compilers

export CC=$(which icc)
export CXX=$(which icpc)
export FC=$(which mpiifort)
  

These scripts sets all the required environment variables required for intel compilers. 

Let me know if you face any errors

 

Thanks 

Prasanth

 

 

 

 

0 Kudos
ab1
Beginner
2,793 Views

Dwadasi, Prasanth (Intel) wrote:

Hi Vardaan,

1)I am attaching my cmake output ,here you can see from the highlighted line 

 INTERFACE64 :1

The 64-bit integer interface (ILP64) for ARPACK, BLAS and LAPACK is set to 1.  Are you looking for this?integer64.png

2)Regarding the second point , could you please rephrase the question with more information of what you want.

 

Thanks

Prasanth

can you pl expalin how do you get link mentioned in MPIFC ?I coud not get it

 

thanks

 

0 Kudos
ab1
Beginner
2,793 Views

Thanks Prashanth for the reply which i was looking for. It is very useful for a fresher like me.

Pl dont mind, if have 2 simple clarifications

1  Interface Libraries and Modules page 53   of the link

https://software.intel.com/sites/default/files/mkl-2020-developer-guide-mac.pdf

libmkl_blas95_ilp64.a                        Fortran 95 wrappers for BLAS (BLAS95) supporting LP64interface.

libmkl_lapack95_ilp64.a                    Fortran 95 wrappers for LAPACK (LAPACK95) supporting ILP64interface.

is it correct description given in above link blas95_ilp     is for LP64 interface !  though it has ilp  

 

2 Defaults MKLROOT refers to link =/opt/intel/mkl     or    /opt/intel/compilers_and_libraries_2019.40.243/linux/mkl in my case ?

thanks for being so patient and helping me

vs

0 Kudos
PrasanthD_intel
Moderator
2,793 Views

Hi Vardaan,

 

1)I don't have a cluster edition of Parallel Studio so the MPI that comes with it does not include Fortran support. I have installed IMPI separately that's why the MPIFC is different from yours.

2)Looks like there is a mistake in the documentation the descriptions got reversed it seems.

3)The default MKLROOT for Parallel Studio is /opt/intel/compilers_and_libraries_2019.40.243/linux/mkl which was set while you source the mkl scripts. 

Are you able to build your project now, if so can we close this thread?

Please raise a new thread if your initial query is resolved,

 

Thanks

Prasanth

 

 

0 Kudos
PrasanthD_intel
Moderator
2,793 Views

Hi,

Is the build successful? Are you facing any errors?

Let us know if you need any help.

 

Thanks 

Prasanth

0 Kudos
PrasanthD_intel
Moderator
2,793 Views

Hi,

We are closing this assuming your problem is resolved.

Please raise a new thread for any further queries.

 

Thanks

Prasanth

0 Kudos
Reply