- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When I installed the Intel Cluster Studio XE 2013 evaluation version on my x86_64 linux CentOS workstation with Intel Sandy Bridge processors, the prerequisite check said that my linux operating system was unsupported. Does that mean that the Intel compiler, Intel MPI or Intel MKL libraries may not work properly after they are installed? I proceeded to install the software anyway.
I wanted to use the Intel MPI and Intel compiler ifort and MKL library to compile a code. But now when I try to use the Intel compiler from the installed directory in my makefile
F90 = /opt/intel/impi/4.1.0.024/intel64/bin/mpif90
I get the message: ifort: command not found
What file should F90= point to?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You need to use the "source" command to define ifort (and establish libraries), as explained in the documentation. For example:
source /opt/intel/bin/compilervars.sh intel64
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Intel MPI has mpif90 as a wrapper for gfortran. If you are combining with a build which uses ifort, you need mpiifort. Some customers alter their installation so that mpif90 acts as an alias for mpiifort.
In order to use Intel MPI, you need both the Intel compilervars source which Steve quoted, and the
source /opt/intel/impi/bin64/mpivars.sh
Note the different way in which you select 64-bit mode for impi.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for the info. I used the source commands and compiled the code ok. I used the compiler flags in makefile.comm:
INTELMODULES=true
LD_LIBRARY_PATH=/opt/intel/mpi-rt/4.1.0/bin64
LFLAGS= -lm -shared-intel -lstdc++
CPPFLAGS = -cpp -O3 -DUSE_64
FFLAGS = -r8 -O3 -ipo -DNONVERBOSE -extend-source 132
F90 = /opt/intel/impi/4.1.0.024/intel64/bin/mpiifort
My question is are the Intel MKL BLAS libraries included in this compiled code?
I ran the code with the executable and it was 35% faster than the code compiled with gfortran and openmpi.
But when I compiled the code explicitly including the MKL library using:
CPPFLAGS += -D_ENABLE_BLAS
FFLAGS += -mkl=cluster
the code ran slower, but the code is supposed to run faster when the BLAS library is included.
Could you please tell me how I can include the MKL BLAS library that will speed up the code?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
According to
I guess you may want the plain -mkl option, which enables the use of BLAS functions which use OpenMP library for threading support. These are OK to use in a cluster application; any BLAS call will execute within the same node where it is called. The reference doesn't make clear the exact intended purpose of the "cluster" option, but it may pertain to built-in MKL clustering facilities such as pardiso.
If your application has a flag such as you quote, setting it on and linking with -mkl flag presumably will get you the MKL BLAS functions. If your data sets are too small for efficient use of MKL (e.g. matrix multiplication with maximum dimension < 16) you may find that MKL doesn't improve performance. BLAS level 1 calls typically are faster with in-line code than with any version of library function calls (provided that you have normal compiler optimization turned on). ifort does an excellent job with in-line compilation at -O3 even of matrix multiplication when the data set is small enough not to benefit from threading.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page