• Mode-1 Multi-Core • Memory Allocators • OpenMP • Intel TBB • Pthreads • Java - Threads • Charm++ Prog. • Message Passing (MPI) • MPI - OpenMP • MPI - Intel TBB • MPI - Pthreads • Compiler Opt. Features • Threads-Perf. Math.Lib. • Threads-Prof. & Tools • Threads-I/O Perf. • PGAS : UPC / CAF / GA • Power-Perf. • Home




hyPACK-2013 Mode 1 : Software Threading : Multi-Cores - Math Lib. Performance

Performance Using Mathematical librareis on Multi-Core Processors

Tuning and Performance of Application Programs using Compiler optimisation techniques, Code restructuring techniques and using System provided Mathematical libraries for on Multi-Core Processors is challenging. Understanding Programming Programming Paradigms (MPI, OpenMP, Pthreads), effective use of right Compiler Optimisation flags and obtaining correct results for given application is important. Enhance performance and scalability on multiple core processors for given application with respect to increase in problem size require serious effrots.

Commerical Systems Math Libraries :     Intel       IBM ESSL       NAG

Open Source Math Libraries : PETSc       Netlib (BLAS, ScaLAPACK, LINPACK)
References : Multi-threading     OpenMP     Java Threads     Books     MPI   Benchmarks  

Compilation and Execution Using MKL



Compilation, Linking and Execution of Pthread Programs using MKL

Two example progams on matrix matrix multiplicaiton algorithms as given in Example 1.6 and Example 1.7 can be complied using the Intel Makefile-MKL and it can be executed on Multi Cores.

To compile and link the programs with the MKL (BLAS) on Intel Multi Cores, use the following commands.

Pthreads code should include the pthread.h header file. On the compilation command line, the Pthreads library should be specified to the linker on UNIX and Linux environments using the -lpthread command-line switch. The specific files to be used will differ with implementation on various platforms. There are two ways i.e Using command line arguments and Using a Makefile to compile pthread codes :

For more control over the process of compiling and linking programs for Pthreads, you should use a 'Makefile'. You may also use some commands in Makefile particularly for programs contained in a large number of files. The user has to specify the names of the program and appropriate paths to link some of the libraries required for Pthreads programs in the Makefile.


  • Compiling Fortran codes . (using Intel fortran compiler)
  • ifort -o -L/opt/intel/mkl/9.1.023/lib/em64t -lmkl_em64t -lguide -lpthread -lm
  • Compiling C codes .. (using Intel C compiler)
  • icc -o -L/opt/intel/mkl/9.1.023/lib/em64t -lmkl_em64t -lguide -lpthread -lm

Centre for Development of Advanced Computing