It will create a new directory PseudoPack containing 11 subdirectories and 5 files.
The subdirectories are
Example/ Library/ Source/ Include/
Module/ Makefile/ TestCode/
Library/CRAY-F90/ Library/RS6K-SGI/ Library/SUN/
Library/RS6K_ESSL/ Library/SGI/
Module/CRAY-F90/ Module/RS6K-SGI/ Module/SUN/
Module/RS6K_ESSL/ Module/SGI/
and those 5 makefiles are
makeCF90 makeRS6K makeSGI
makeESSL makeSUN
If the user downloaded pseudopack_2000b.tar.gz, replaces pseudopack_2000 by pseudopack_2000b for the commands above to uncompress and unpack the library.
In this case, there are several subdirectories containing the pre-compiled PseudoPack library for various machines and Options under the Library directory.
Sub-Directory |
Library is compiled with |
CRAY-F90 | SciLib Library (CRAY) using f90 compiler on the J90 |
RS6K-ESSL | ESSL v2 Library (ESSL) on the IBM SP2 with RS6000 CPU |
RS6K-SGI | NetLib Library (SGI ) on the IBM SP2 with RS6000 CPU |
SGI | NetLib Library (SGI ) under SGI IRIX 6.5 OS with R10000 |
SUN | NetLib Library (SGI ) under SUN Ultra 1 |
To use anyone of these precompiled libraries, user can copy the desired library to any user designated directory or just leave it there.
You can skip to Step 3 if you are using the precompiled library version of the PseudoPack.
User should if so desired, read the next step to check out the exact C-Preprocessors macros exercised for the compilation of each library binaries.
Syntax : make -f makeX VERSION
where
X is one of the ( CF90 , ESSL , RS6K , SUN , SGI ).
CF90 : Cray vector machines with SciLib using f90 compiler ESSL : IBM RS6000 with ESSL version 2 library RS6K : IBM RS6000 without ESSL version 2 library SUN : SUN Ultra 1. SGI : SGI MIPS series CPU R4000/R5000/R8000/R10000VERSION is one of the ( S, s , SD, sd , D, d , DD, dd , ALL, all ).
S [s ] : Single_Precision, No Debug SD [sd ] : Single_Precision, Debug D [d ] : Double_Precision, No Debug DD [dd ] : Double_Precision, Debug ALL [all] : All of the aboveExample :
To compile the double precision PseudoPack library with debugging option
(VERSION=dd)
for the IBM RS6000 with ESSL library version 2
(X=ESSL),
the command line syntax is
make -f makeESSL dd
Note :
If Step 1
and 2
are successfully completed, one or more
library binary will be created in the corresponding subdirectory of the
directory Library .
They are
They are
libpseudopack_s.a : Single Precision, No Debug
libpseudopack_sd.a : Single Precision, Debug
libpseudopack_d.a : Double Precision, No Debug
libpseudopack_dd.a : Double Precision, Debug
For the non-Cray machine,
the corresponding module file are kept in the corresponding
subdirectory of the directory Module.
pseudopack.mod : Single Precision
pseudopack_d.mod : Double Precision
pseudopack_s.mod : Single Precision
We will focus on optimization in the software side only. Several macro names are defined in the makefile to use the local copy of the routines (e.g. GEMM) supplied by the authors instead of the one supplied by the native optimized library on a particular computational platform. To use the native optimized one, use must redefine the corresponding macro definition inside the makefile and add non-default the path and the name of the optimized mathematical library used to the compilation statement when linking the PseudoPack Library with the user source code.
In the discussion below, when we say 'comment out the macro name', we mean inserting a pound sign # at the first column in front of the macro name. To define and undefine the macro name in the makefile, please consult your local makefile expert for help. We shall illustrate them by examples instead.
Example
To define the macro NATIVE_LIBRARY, the syntax is
make -f makeSGI NATIVE_LIBRARY="-L /usr/lib -lcomplib.sgimath" ....Example
To undefine the macro CPP_GEMM, the syntax is
make -f makeSGI CPP_GEMM= ....
NATIVE_LIBRARY
If native optimized mathematical library existed, then one can specify the path and the name for the macro name NATIVE_LIBRARY.
CPP_VFFT
If native optimized VFFTPACK from NETLIB existed, then one can deactivate the local one provided by the PseudoPack Library by comment out or undefine the the macro CPP_VFFT.
CPP_GEMM
If native optimized BLAS 3 routines DGEMM/SGEMM existed, then one can deactivate the local one provided by the PseudoPack Library by comment out or undefine the macro CPP_GEMM.
CPP_GAMMA
If native optimized Gamma function routines DGAMMA/SGAMMA existed, then one can deactivate the local one provided by the PseudoPack Library by comment out or undefine the macro CPP_GAMMA.
CPP_GAUSS
If native optimized routines for computing Gauss Quadrature nodes DGAUSSQ/SGAUSSQ existed, then one can deactivate the local one provided by the PseudoPack Library by comment out or undefine the macro CPP_GAUSS.