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, 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
|
| |
|