SGEFA_OPEN_MP
Sequential and OpenMP versions of Linpack Solver
SGEFA_OPEN_MP is a C++ program
which reimplements the SGEFA/SGESL linear algebra routines from
LINPACK for use with OpenMP.
Right now, running for N = 10, 100 and 1000, but only using a 2 Processor
Apple G5, the parallel code is not doing well at all. I will try to find
out what is holding it back.
Related Data and Programs:
BLAS1_S
is a C++ library which
contains basic linear algebra routines for vector-vector operations,
using single precision real arithmetic.
FFT_OPEN_MP
is a C++ program which
demonstrates the computation of a Fast Fourier Transform
in parallel, using OpenMP.
LINPACK
is a C++ library which
factors and solves systems of linear equations in a variety of
formats and arithmetic types.
LINPACK_BENCH
is a C++ program which
measures the time taken by LINPACK to solve a particular linear system.
MD_OPEN_MP
is a C++ program which
carries out a molecular dynamics simulation using OpenMP.
MXV_OPEN_MP
is a C++ program which
compares the performance of the matrix multiplication problem
y=A*x, with and without parallelization by OpenMP.
OPEN_MP
is a directory of C++ examples which
illustrate the use of the OpenMP application program interface
for carrying out parallel computations in a shared memory environment.
QUAD_OPEN_MP
is a C++ program which
approximates an integral using a quadrature rule, and carries out the
computation in parallel using OpenMP.
SGEFA_OPEN_MP is also available in
a C version and
a FORTRAN77 version and
a FORTRAN90 version.
Reference:
-
Peter Arbenz, Wesley Petersen,
Introduction to Parallel Computing - A practical guide with examples in C,
Oxford University Press,
ISBN: 0-19-851576-6,
LC: QA76.58.P47.
-
Rohit Chandra, Leonardo Dagum, Dave Kohr, Dror Maydan,
Jeff McDonald, Ramesh Menon,
Parallel Programming in OpenMP,
Morgan Kaufmann, 2001,
ISBN: 1-55860-671-8,
LC: QA76.642.P32.
-
Barbara Chapman, Gabriele Jost, Ruud vanderPas, David Kuck,
Using OpenMP: Portable Shared Memory Parallel Processing,
MIT Press, 2007,
ISBN13: 978-0262533027,
LC: QA76.642.C49.
-
Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart,
LINPACK User's Guide,
SIAM, 1979,
ISBN13: 978-0-898711-72-1,
LC: QA214.L56.
-
Charles Lawson, Richard Hanson, David Kincaid, Fred Krogh,
Algorithm 539:
Basic Linear Algebra Subprograms for Fortran Usage,
ACM Transactions on Mathematical Software,
Volume 5, Number 3, September 1979, pages 308-323.
Source Code:
List of Routines:
-
MAIN is the main program for the SGEFA_OPEN_MP test program.
-
TEST01 runs the sequential version of SGEFA.
-
TEST02 runs the parallel version of SGEFA.
-
TEST03 runs the parallel version of SGEFA in sequential mode.
-
ISAMAX finds the index of the vector element of maximum absolute value.
-
MATGEN generates a "random" matrix for testing.
-
MSAXPY carries out multiple "SAXPY" operations.
-
MSAXPY2 carries out multiple "SAXPY" operations.
-
MSGEFA factors a matrix by gaussian elimination.
-
MSGEFA2 factors a matrix by gaussian elimination.
-
SAXPY computes float constant times a vector plus a vector.
-
SDOT forms the dot product of two vectors.
-
SGEFA factors a double precision matrix by gaussian elimination.
-
SGESL solves a real general linear system A * X = B.
-
SSCAL scales a float vector by a constant.
-
SSWAP interchanges two float vectors.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the C++ source codes.
Last revised on 24 April 2008.