• 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 : Tuning and Performance of Programs/Benchmarks Using Math Libraries


Tuning and Performance of Application Programs using Compiler optimisation techniques, Codre restructuring techniques and system tuned mathematical libraries on Multi-Core Processors will enhance performance. Performance and scalability of application on multi-core processors with respect to increase in problem size require serious effrots. System provided tuned mathematical libraries on Intel, IBM P690 systems, open source tuned mathematical libraries, commerical software & libraries on scientific computatons are discussed below.


PetSc Tool Kit, NetLib software &, NAG Libraries

(a). PETSc Toolk Kit (ortable, Extensible Toolkit for Scientific Computation)

http://www-unix.mcs.anl.gov/petsc/ The PETSC (Portable, Extensible Toolkit for Scientific Computation) (pronounced PET-see (the S is silent), is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication. The web-page http://www-unix.mcs.anl.gov/petsc/petsc-2/index.html

PETSc is part of the DOE SciDAC (Scientific Discovery through Advanced Computing) TOPS project in algorithms, software, and applications for the scalable solution of PDES. The web page is http://www.scidac.gov/ .

PETSc is intended for use in large-scale application projects, many ongoing computational science projects are built around the PETSc libraries. PETSc is easy to use for beginners. Moreover, its careful design allows advanced users to have detailed control over the solution process. PETSc includes a large suite of parallel linear and nonlinear equation solvers that are easily used in application codes written in C, C++, Fortran and now Python. PETSc provides many of the mechanisms needed within parallel application codes, such as simple parallel matrix and vector assembly routines that allow the overlap of communication and computation. In addition, PETSc includes support for parallel distributed arrays useful for finite difference methods. PETSc is a sophisticated package and fully understanding its usage requires time. However, application programmers can easily begin to use PETSc from a high level and then gradually learn more details according to their needs. Features include:

  • Parallel vectors
  • scatters (handles communicating ghost point information); & gathers
  • Parallel matrices : several sparse storage formats; easy, efficient assembly.
  • Scalable parallel preconditioners
  • Krylov subspace methods
  • Parallel Newton-based nonlinear solvers
  • Parallel timestepping (ODE) solvers

  • The other features are :

  • Complete documentation
  • Automatic profiling of floating point and memory usage
  • Consistent interface
  • Intensive error checking
  • Portable to UNIX and Windows
  • PETSc is supported and will be actively enhanced for many years. It has many example programs that run on message passing Clusters or computing systems supporting MPI.


    (b). Netlib

    The Netlib has repository of mathematical software for for scientific applications as well papers, and databases. Netlib Repository is available at UTK and ORNL The Netlib repository contains freely available software, documents, and databases of interest to the numerical, scientific computing, and other communities. The repository is maintained by AT&T Bell Laboratories, the University of Tennessee and Oak Ridge National Laboratory, and by colleagues world-wide. The collection is replicated at several sites around the world, automatically synchronized, to provide reliable and network efficient service to the global community. The web-page http://www.netlib.org/

    The BLAS (Basic Linear Algebra Subprograms) are high quality "building block" routines for performing basic vector and matrix operations. Level 1 BLAS do vector-vector operations, Level 2 BLAS do matrix-vector operations, and Level 3 BLAS do matrix-matrix operations. Because the BLAS are efficient, portable, and widely available, they're commonly used in the development of high quality linear algebra software, LINPACK and LAPACK for example. LAPACK is designed especially for high-performance computing so the LAPACK group prefers that users use tuned vendor-supplied BLAS whenever possible.

    Software, papers, etc.

    Services provided at Netlib
    Related efforts



    (c). NAG

    The Numerical Algorithms Group ( NAG ) specializes in the provision of software for the solution of mathematical, statistical and data mining problems. These components, together with the visualization software and additional services that NAG offers, are used by companies and institutions in a diverse range of industries spanning the globe. They use them to enrich their applications developed to solve problems in disciplines such as financial analysis, science and engineering and in the fields of education and academia.

    NAG's mathematical and statistical software components underpin thousands of programs and applications spanning the globe in industries as diverse as finance, science, engineering, academia, and research. They are so widely used and trusted because of their outstanding and unrivalled quality, reliability and portability. From PC workstations to a cluster of the world's largest supercomputers, NAG has the numerical software capabilities to suit your modeling and computing needs.

    The libraries such as NAG Fortran Library, NAG Fortran 90 Library, NAG SMP Library, NAG Parallel Library, NAG Daata Mining Components, NAG Toolkit for MATLAB is available.

    Centre for Development of Advanced Computing