Files
lapack/TIMING/Makefile
T

434 lines
14 KiB
Makefile

#######################################################################
# This makefile runs the timing programs for the linear equation routines
# and the eigenvalue routines in LAPACK. The timing output files
# are grouped as follows:
#
# SLINTIM,SEIGTIM -- Single precision real time routines
# CLINTIM,CEIGTIM -- Single precision complex time routines
# DLINTIM,DEIGTIM -- Double precision real time routines
# ZLINTIM,ZEIGTIM -- Double precision complex time routines
#
# Timing programs can be executed for all or some of the four different
# precisions. Enter 'make' followed by one or more of the data types
# desired.
#
# By default, 'make' alone executes the timings with SMALL data sets.
# (the data files with _small in the name)
#
# Some examples:
# make single
# make single complex
# make single double complex complex16
# Alternatively, the command
# make
# without any arguments runs all eight test programs with the SMALL
# timing data files.
#
# If you wish to use the LARGE data sets for your timingsi ( the data
# files with _large in their names), you
# need to type
# make large
# for all tests, which would be equivalent to typing
# make single_large double_large complex_large complex16_large
# which could also be executed separately, for example, as
# make single_large
#
# The executable files are called:
# xlintims, xlintimd, xlintimc, and xlintimz for LIN
# xeigtims, xeigtimd, xeigtimc, and xeigtimz for EIG
# and exist in the current directory level.
#
# To remove the output files after the tests have been run, enter
# make clean
#
# To re-run specific tests after a make, enter (for example):
# 'rm stime.out; make' or:
# 'make stime.out' or:
# 'touch stime.in; make' (to re-run the timings.)
#
# 'rm *time.out; make' (to re-run all the timings.)
#
#######################################################################
include ../make.inc
all:
$(MAKE) single
$(MAKE) complex
$(MAKE) double
$(MAKE) complex16
large:
$(MAKE) single_large
$(MAKE) complex_large
$(MAKE) double_large
$(MAKE) complex16_large
small:
$(MAKE) single
$(MAKE) complex
$(MAKE) double
$(MAKE) complex16
SEIGTIM= sgeptim_small.out \
sneptim_small.out \
sseptim_small.out \
ssvdtim_small.out
SEIGTM2= sgeptim_large.out \
sneptim_large.out \
sseptim_large.out \
ssvdtim_large.out
CEIGTIM= cgeptim_small.out \
cneptim_small.out \
cseptim_small.out \
csvdtim_small.out
CEIGTM2= cgeptim_large.out \
cneptim_large.out \
cseptim_large.out \
csvdtim_large.out
DEIGTIM= dgeptim_small.out \
dneptim_small.out \
dseptim_small.out \
dsvdtim_small.out
DEIGTM2= dgeptim_large.out \
dneptim_large.out \
dseptim_large.out \
dsvdtim_large.out
ZEIGTIM= zgeptim_small.out \
zneptim_small.out \
zseptim_small.out \
zsvdtim_small.out
ZEIGTM2= zgeptim_large.out \
zneptim_large.out \
zseptim_large.out \
zsvdtim_large.out
SLINTIM= stime_small.out \
sband_small.out \
stime2_small.out
SLINTM2= stime_large.out \
sband_large.out \
stime2_large.out
CLINTIM= ctime_small.out \
cband_small.out \
ctime2_small.out
CLINTM2= ctime_large.out \
cband_large.out \
ctime2_large.out
DLINTIM= dtime_small.out \
dband_small.out \
dtime2_small.out
DLINTM2= dtime_large.out \
dband_large.out \
dtime2_large.out
ZLINTIM= ztime_small.out \
zband_small.out \
ztime2_small.out
ZLINTM2= ztime_large.out \
zband_large.out \
ztime2_large.out
single: xlintims xeigtims
for outfile in $(SLINTIM) $(SEIGTIM) ; do $(MAKE) $$outfile; done
complex: xlintimc xeigtimc
for outfile in $(CLINTIM) $(CEIGTIM) ; do $(MAKE) $$outfile; done
double: xlintimd xeigtimd
for outfile in $(DLINTIM) $(DEIGTIM) ; do $(MAKE) $$outfile; done
complex16: xlintimz xeigtimz
for outfile in $(ZLINTIM) $(ZEIGTIM) ; do $(MAKE) $$outfile; done
single_large: xlintims xeigtims
for outfile in $(SLINTM2) $(SEIGTM2) ; do $(MAKE) $$outfile; done
complex_large: xlintimc xeigtimc
for outfile in $(CLINTM2) $(CEIGTM2) ; do $(MAKE) $$outfile; done
double_large: xlintimd xeigtimd
for outfile in $(DLINTM2) $(DEIGTM2) ; do $(MAKE) $$outfile; done
complex16_large: xlintimz xeigtimz
for outfile in $(ZLINTM2) $(ZEIGTM2) ; do $(MAKE) $$outfile; done
#
# ======== SINGLE LIN TIMINGS ===========================
stime_small.out: stime_small.in xlintims
@echo Timing square REAL LAPACK linear equation routines
./xlintims < stime_small.in > $@ 2>&1
stime_large.out: stime_large.in xlintims
@echo Timing square REAL LAPACK linear equation routines
./xlintims < stime_large.in > $@ 2>&1
sband_small.out: sband_small.in xlintims
@echo Timing banded REAL LAPACK linear equation routines
./xlintims < sband_small.in > $@ 2>&1
sband_large.out: sband_large.in xlintims
@echo Timing banded REAL LAPACK linear equation routines
./xlintims < sband_large.in > $@ 2>&1
stime2_small.out: stime2_small.in xlintims
@echo Timing rectangular REAL LAPACK linear equation routines
./xlintims < stime2_small.in > $@ 2>&1
stime2_large.out: stime2_large.in xlintims
@echo Timing rectangular REAL LAPACK linear equation routines
./xlintims < stime2_large.in > $@ 2>&1
#
# ======== COMPLEX LIN TIMINGS ==========================
ctime_small.out: ctime_small.in xlintimc
@echo Timing square COMPLEX LAPACK linear equation routines
./xlintimc < ctime_small.in > $@ 2>&1
ctime_large.out: ctime_large.in xlintimc
@echo Timing square COMPLEX LAPACK linear equation routines
./xlintimc < ctime_large.in > $@ 2>&1
cband_small.out: cband_small.in xlintimc
@echo Timing banded COMPLEX LAPACK linear equation routines
./xlintimc < cband_small.in > $@ 2>&1
cband_large.out: cband_large.in xlintimc
@echo Timing banded COMPLEX LAPACK linear equation routines
./xlintimc < cband_large.in > $@ 2>&1
ctime2_small.out: ctime2_small.in xlintimc
@echo Timing rectangular COMPLEX LAPACK linear equation routines
./xlintimc < ctime2_small.in > $@ 2>&1
ctime2_large.out: CTIME2_large.in xlintimc
@echo Timing rectangular COMPLEX LAPACK linear equation routines
./xlintimc < ctime2_large.in > $@ 2>&1
#
# ======== DOUBLE LIN TIMINGS ===========================
dtime_small.out: dtime_small.in xlintimd
@echo Timing square DOUBLE PRECISION LAPACK linear equation routines
./xlintimd < dtime_small.in > $@ 2>&1
dtime_large.out: dtime_large.in xlintimd
@echo Timing square DOUBLE PRECISION LAPACK linear equation routines
./xlintimd < dtime_large.in > $@ 2>&1
dband_small.out: dband_small.in xlintimd
@echo Timing banded DOUBLE PRECISION LAPACK linear equation routines
./xlintimd < dband_small.in > $@ 2>&1
dband_large.out: dband_large.in xlintimd
@echo Timing banded DOUBLE PRECISION LAPACK linear equation routines
./xlintimd < dband_large.in > $@ 2>&1
dtime2_small.out: dtime2_small.in xlintimd
@echo Timing rectangular DOUBLE PRECISION LAPACK linear equation routines
./xlintimd < dtime2_small.in > $@ 2>&1
dtime2_large.out: dtime2_large.in xlintimd
@echo Timing rectangular DOUBLE PRECISION LAPACK linear equation routines
./xlintimd < dtime2_large.in > $@ 2>&1
#
# ======== COMPLEX16 LIN TIMINGS ========================
ztime_small.out: ztime_small.in xlintimz
@echo Timing square COMPLEX16 LAPACK linear equation routines
./xlintimz < ztime_small.in > $@ 2>&1
ztime_large.out: ztime_large.in xlintimz
@echo Timing square COMPLEX16 LAPACK linear equation routines
./xlintimz < ztime_large.in > $@ 2>&1
zband_small.out: zband_small.in xlintimz
@echo Timing banded COMPLEX16 LAPACK linear equation routines
./xlintimz < zband_small.in > $@ 2>&1
zband_large.out: zband_large.in xlintimz
@echo Timing banded COMPLEX16 LAPACK linear equation routines
./xlintimz < zband_large.in > $@ 2>&1
ztime2_small.out: ztime2_small.in xlintimz
@echo Timing rectangular COMPLEX16 LAPACK linear equation routines
./xlintimz < ztime2_small.in > $@ 2>&1
ztime2_large.out: ztime2_large.in xlintimz
@echo Timing rectangular COMPLEX16 LAPACK linear equation routines
./xlintimz < ztime2_large.in > $@ 2>&1
#
#
# ======== SINGLE EIG TIMINGS ===========================
#
sgeptim_small.out: sgeptim_small.in xeigtims
@echo GEP: Timing REAL Generalized Nonsymmetric Eigenvalue Problem routines
./xeigtims < sgeptim_small.in > $@ 2>&1
sgeptim_large.out: sgeptim_large.in xeigtims
@echo GEP: Timing REAL Generalized Nonsymmetric Eigenvalue Problem routines
./xeigtims < sgeptim_large.in > $@ 2>&1
sneptim_small.out: sneptim_small.in xeigtims
@echo NEP: Timing REAL Nonsymmetric Eigenvalue Problem routines
./xeigtims < sneptim_small.in > $@ 2>&1
sneptim_large.out: sneptim_large.in xeigtims
@echo NEP: Timing REAL Nonsymmetric Eigenvalue Problem routines
./xeigtims < sneptim_large.in > $@ 2>&1
sseptim_small.out: sseptim_small.in xeigtims
@echo SEP: Timing REAL Symmetric Eigenvalue Problem routines
./xeigtims < sseptim_small.in > $@ 2>&1
sseptim_large.out: sseptim_large.in xeigtims
@echo SEP: Timing REAL Symmetric Eigenvalue Problem routines
./xeigtims < sseptim_large.in > $@ 2>&1
ssvdtim_small.out: ssvdtim_small.in xeigtims
@echo SVD: Timing REAL Singular Value Decomposition routines
./xeigtims < ssvdtim_small.in > $@ 2>&1
ssvdtim_large.out: ssvdtim_large.in xeigtims
@echo SVD: Timing REAL Singular Value Decomposition routines
./xeigtims < ssvdtim_large.in > $@ 2>&1
#
# ======== COMPLEX EIG TIMINGS ===========================
#
cgeptim_small.out: cgeptim_small.in xeigtimc
@echo GEP: Timing COMPLEX Generalized Nonsymmetric Eigenvalue Problem routines
./xeigtimc < cgeptim_small.in > $@ 2>&1
cgeptim_large.out: cgeptim_large.in xeigtimc
@echo GEP: Timing COMPLEX Generalized Nonsymmetric Eigenvalue Problem routines
./xeigtimc < cgeptim_large_large.in > $@ 2>&1
cneptim_small.out: cneptim_small.in xeigtimc
@echo NEP: Timing COMPLEX Nonsymmetric Eigenvalue Problem routines
./xeigtimc < cneptim_small.in > $@ 2>&1
cneptim_large.out: cneptim_large.in xeigtimc
@echo NEP: Timing COMPLEX Nonsymmetric Eigenvalue Problem routines
./xeigtimc < cneptim_large.in > $@ 2>&1
cseptim_small.out: cseptim_small.in xeigtimc
@echo SEP: Timing COMPLEX Symmetric Eigenvalue Problem routines
./xeigtimc < cseptim_small.in > $@ 2>&1
cseptim_large.out: cseptim_large.in xeigtimc
@echo SEP: Timing COMPLEX Symmetric Eigenvalue Problem routines
./xeigtimc < cseptim_large.in > $@ 2>&1
csvdtim_small.out: csvdtim_small.in xeigtimc
@echo SVD: Timing COMPLEX Singular Value Decomposition routines
./xeigtimc < csvdtim_small.in > $@ 2>&1
csvdtim_large.out: csvdtim_large.in xeigtimc
@echo SVD: Timing COMPLEX Singular Value Decomposition routines
./xeigtimc < csvdtim_large.in > $@ 2>&1
#
# ======== DOUBLE EIG TIMINGS ===========================
#
dgeptim_small.out: dgeptim_small.in xeigtimd
@echo GEP: Timing DOUBLE PRECISION Generalized Nonsymmetric Eigenvalue Problem routines
./xeigtimd < dgeptim_small.in > $@ 2>&1
dgeptim_large.out: dgeptim_large.in xeigtimd
@echo GEP: Timing DOUBLE PRECISION Generalized Nonsymmetric Eigenvalue Problem routines
./xeigtimd < dgeptim_large.in > $@ 2>&1
dneptim_small.out: dneptim_small.in xeigtimd
@echo NEP: Timing DOUBLE PRECISION Nonsymmetric Eigenvalue Problem routines
./xeigtimd < dneptim_small.in > $@ 2>&1
dneptim_large.out: dneptim_large.in xeigtimd
@echo NEP: Timing DOUBLE PRECISION Nonsymmetric Eigenvalue Problem routines
./xeigtimd < dneptim_large.in > $@ 2>&1
dseptim_small.out: dseptim_small.in xeigtimd
@echo SEP: Timing DOUBLE PRECISION Symmetric Eigenvalue Problem routines
./xeigtimd < dseptim_small.in > $@ 2>&1
dseptim_large.out: dseptim_large.in xeigtimd
@echo SEP: Timing DOUBLE PRECISION Symmetric Eigenvalue Problem routines
./xeigtimd < dseptim_large.in > $@ 2>&1
dsvdtim_small.out: dsvdtim_small.in xeigtimd
@echo SVD: Timing DOUBLE PRECISION Singular Value Decomposition routines
./xeigtimd < dsvdtim_small.in > $@ 2>&1
dsvdtim_large.out: dsvdtim_large.in xeigtimd
@echo SVD: Timing DOUBLE PRECISION Singular Value Decomposition routines
./xeigtimd < dsvdtim_large.in > $@ 2>&1
#
# ======== COMPLEX16 EIG TIMINGS ===========================
#
zgeptim_small.out: zgeptim_small.in xeigtimz
@echo GEP: Timing COMPLEX16 Generalized Nonsymmetric Eigenvalue Problem routines
./xeigtimz < zgeptim_small.in > $@ 2>&1
zgeptim_large.out: zgeptim_large.in xeigtimz
@echo GEP: Timing COMPLEX16 Generalized Nonsymmetric Eigenvalue Problem routines
./xeigtimz < zgeptim_large.in > $@ 2>&1
zneptim_small.out: zneptim_small.in xeigtimz
@echo NEP: Timing COMPLEX16 Nonsymmetric Eigenvalue Problem routines
./xeigtimz < zneptim_small.in > $@ 2>&1
zneptim_large.out: zneptim_large.in xeigtimz
@echo NEP: Timing COMPLEX16 Nonsymmetric Eigenvalue Problem routines
./xeigtimz < zneptim_large.in > $@ 2>&1
zseptim_small.out: zseptim_small.in xeigtimz
@echo SEP: Timing COMPLEX16 Symmetric Eigenvalue Problem routines
./xeigtimz < zseptim_small.in > $@ 2>&1
zseptim_large.out: zseptim_large.in xeigtimz
@echo SEP: Timing COMPLEX16 Symmetric Eigenvalue Problem routines
./xeigtimz < zseptim_large.in > $@ 2>&1
zsvdtim_small.out: zsvdtim_small.in xeigtimz
@echo SVD: Timing COMPLEX16 Singular Value Decomposition routines
./xeigtimz < zsvdtim_small.in > $@ 2>&1
zsvdtim_large.out: zsvdtim_large.in xeigtimz
@echo SVD: Timing COMPLEX16 Singular Value Decomposition routines
./xeigtimz < zsvdtim_large.in > $@ 2>&1
# ==============================================================================
xlintims:
cd LIN ; $(MAKE) single
xlintimc:
cd LIN ; $(MAKE) complex
xlintimd:
cd LIN ; $(MAKE) double
xlintimz:
cd LIN ; $(MAKE) complex16
xeigtims:
cd EIG ; $(MAKE) single
xeigtimc:
cd EIG ; $(MAKE) complex
xeigtimd:
cd EIG ; $(MAKE) double
xeigtimz:
cd EIG ; $(MAKE) complex16
clean:
rm -f *.out core
cleanup:
rm -f x* *.out core