IBM MASS, Turbo MPI, and MIO libraries - PowerPoint PPT Presentation

1 / 14
About This Presentation
Title:

IBM MASS, Turbo MPI, and MIO libraries

Description:

Applications that make heavy use of intrinsic functions, can get a big speedup using MASS ... The MASS library achieves the improved performance at the expense ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 15
Provided by: npa5
Category:
Tags: ibm | mass | mio | mpi | libraries | mass | turbo

less

Transcript and Presenter's Notes

Title: IBM MASS, Turbo MPI, and MIO libraries


1
IBM MASS, Turbo MPI, and MIO libraries
  • Bob Sinkovits
  • Scientific Computing Department
  • SDSC
  • All hands Meeting
  • February 24-28, 2001

2
What is MASS?
  • Mathematical Acceleration SubSystem (MASS) is a
    library containing high performance versions of a
    subset of the Fortran intrinsic functions
  • Can be used with Fortran or C
  • Applications that make heavy use of intrinsic
    functions, can get a big speedup using MASS

3
How to use MASS
  • No source code modifications required. Calls to
    intrinsic functions automatically replaced with
    calls to the MASS library.
  • No need to recompile, simply link
    with -L/usr/local/apps/mass -lmass

4
MASS Accuracy considerations
  • The MASS library achieves the improved
    performance at the expense of a small amount of
    accuracy.
  • The difference between MASS and the standard math
    library (libm.a) is restricted to the last bit of
    the mantissa and should be insignificant for most
    codes.
  • If using MASS makes a noticeable difference in
    results, there is probably a problem with your
    algorithm

5
Vector MASS
  • The MASS library also contains a set of vector
    intrinsic functions that can yield even better
    performance.
  • In a vector version of the intrinsic function,
    operations are pipelined. Can overlap the
    evaluation of the function on successive elements
    of the vector.

Z(3)exp(x(3))
Z(4)exp(x(4))
Z(2)exp(x(2))
Z(1)exp(x(1))
Z(1)exp(x(1))
Z(2)exp(x(2))
Z(3)exp(x(3))
Z(4)exp(x(4))
6
Vector MASS
  • Vector mass routines can be used whenever an
    intrinsic function needs to be applied to a
    vector of variables. The most obvious case is a
    simple loop containing a call to the intrinsic
    function.

!Perfect candidate for replacement with vector
call do i 1,n z(i) exp(x(i)) enddo
7
Using Vector MASSCoding by Hand
  • Loops over calls to intrinsic routines are
    replaced with calls to vector mass routines at
    the source code level do i1,n z(i)
    exp(x(i)) ? call vexp(z,x,n) enddo
  • Need to explicitly link vector mass
    library-L/usr/local/apps/mass -lmassvp3

8
Using Vector MASSLet the compiler do the
substitution
  • Loops over calls to intrinsic routines are
    replaced with calls to vector mass routines at
    the assembly code level. To verify that
    substitution took place, look at the assembly
    code (generated with -S compiler option) do
    i1,n z(i) exp(x(i)) ? bl .__vexpPR
    enddo
  • Need to compile with global optimization level of
    -O5

9
MASS and Vector MASS performance
Time for 106 function evaluations
10
Useful MASS URLs
  • Vector intrinsic functions II IBM SP(This
    content is slightly out of date for XLFortran
    v7.0)www.npaci.edu/online/v3.13/SCAN1.html
  • Vector intrinsic functions I CRAY
    T3Ewww.npaci.edu/online/v3.9/SCAN1.html
  • IBM optimization libraries (including
    MASS)www.research.ibm.com/actc/Opt_Lib/Topic_OptL
    ibraries.html

11
Turbo MPI
  • Turbo MPI library contains a subset of the MPI
    collective operations that have been optimized
    for the clustered SMP architecture
  • MPI_BARRIER
  • MPI_ALLREDUCE
  • MPI_REDUCE
  • MPI_BCAST
  • MPI_ALLTOALL

12
Turbo MPI BCAST example
  • Step 1 N0 ? N1
  • Step 2 N0 ? N2 N1 ? N3
  • Step 3 Shared memory operations within each node

13
Turbo MPI
  • Turbo MPI is not an IBM supported product, Use
    at your own risk!
  • Initial evaluations of Turbo MPI indicate that it
    is slower than the standard IBM MPI library.
    Benchmark your application carefully!
  • To use Turbo MPI, link with-L/usr/local/apps/turb
    oMPI -lTurboMPI
  • Documentation available on Blue Horizon
    at/usr/local/apps/turboMPI/turbo.ps

14
MIO (Modular I/O)
  • MIO is an unsupported I/O optimization library
  • We have very recently received MIO and will be
    installing shortly on Blue Horizon
  • MIO library available on Blue Horizon
    at/usr/local/apps/MIO/libmio.a
  • Documentation on MIO available atwww.research.ibm
    .com/actc/Opt_Lib/mio/mio_doc.htm
Write a Comment
User Comments (0)
About PowerShow.com