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