RESULTS.org 7.39 KB
Newer Older
1 2 3
# -*- mode: org -*-
# -*- coding: utf-8 -*-

4 5
#+TITLE: FABuLOuS numericals results

6
* Get Test files
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
7
** File list
8 9 10 11 12
   [[file:./build/src/data/young1c.mtx][young1c.mtx]]
   [[file:./build/src/data/matrices_BEM/MatconeSpherePC_MAIN_MAIN_0][MatconeSpherePC_MAIN_MAIN_0]] (binary)
   [[file:./build/src/data/matrices_BEM/coneSpherePC_RHS_MAIN.0.res][coneSpherePC_RHS_MAIN.0.res]] (binary)

   [[file:./build/src/data/sherman4.mtx][sherman4.mtx]]
13

14 15 16 17 18 19 20 21
   [[file:./build/src/data/young4c.mtx][young4c.mtx]]
   [[file:./build/src/data/bcsstk14.mtx][bcsstk14.mtx]]
   [[file:./build/src/data/sherman5.mtx][sherman5.mtx]]

   [[file:./build/src/data/bidiagonalmatrix1.mtx][bidiagonalmatrix1.mtx]]
   [[file:./build/src/data/bidiagonalmatrix2.mtx][bidiagonalmatrix2.mtx]]
   [[file:./build/src/data/bidiagonalmatrix3.mtx][bidiagonalmatrix3.mtx]]
   [[file:./build/src/data/bidiagonalmatrix4.mtx][bidiagonalmatrix3.mtx]]
22

23 24
** Downloads
#+begin_src shell :session *DOWNLOADS* :results silent
25 26 27 28 29 30 31
files=(
    "ftp://math.nist.gov/pub/MatrixMarket2/Harwell-Boeing/bcsstruc2/bcsstk14.mtx.gz"
    "ftp://math.nist.gov/pub/MatrixMarket2/Harwell-Boeing/sherman/sherman4.mtx.gz"
    "ftp://math.nist.gov/pub/MatrixMarket2/Harwell-Boeing/sherman/sherman5.mtx.gz"
    "ftp://math.nist.gov/pub/MatrixMarket2/Harwell-Boeing/acoust/young1c.mtx.gz"
    "ftp://math.nist.gov/pub/MatrixMarket2/Harwell-Boeing/acoust/young4c.mtx.gz"
)
32
mkdir -p ./build/src/data/
33 34 35
for i in "${files[@]}"; do
    filename=$(basename "$i")
    filename="${filename%.*}" # strip gz extension
36
    curl $i | zcat > ./build/src/data/$filename
37
done
38
#+end_src
39

MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
40 41
* Setup workstation
  Set this variable to your work directory (where you downloaded fabulous):
42 43
#+begin_src sh :session *TEST* :results silent
export WORKDIR=/home/tmijieux/fabulous # for example
44
#+end_src
45

46 47 48 49 50 51 52 53
To be able to run the following test cases, you must have compiled fabulous:
#+begin_src sh :session *TEST* :results output :exports both
cd ${WORKDIR}
mkdir -p build
cd build
cmake .. # -DCHAMELEON_DIR=$(spack location -i chameleon)
make
#+end_src
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
54
* Run Examples
55 56 57
** Impact of restart parameter
*** run test case
#+begin_src sh :session *TEST* :results silent
58 59 60 61 62 63 64
cd ${WORKDIR}/build/src/test_core/
mkdir -p ../data/res
sizes=(200 400 600 800 1000)
for siz in "${sizes[@]}"; do
    ./testMatrixMarketChoice -t RUHE -s IMGS -m $siz -A IB -u -o "r=$siz"
done
#+end_src
65

66
*** plot the graphic
67
#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R*
68
library(ggplot2)
69 70 71 72 73
df <- read.table("./build/src/data/res/r=200.res", header=T)
df <- rbind(df, read.table("./build/src/data/res/r=400.res", header=T))
df <- rbind(df, read.table("./build/src/data/res/r=600.res", header=T))
df <- rbind(df, read.table("./build/src/data/res/r=800.res", header=T))
df <- rbind(df, read.table("./build/src/data/res/r=1000.res", header=T))
74

75 76 77 78 79
ggplot(df, aes(x=nb_mvp, y=maxRes, color=name)) +
    geom_line() +
    geom_hline(aes(yintercept=1e-4, color="threshold")) +
    scale_y_log10() + ggtitle("Memory usage influence (young1c IB IMGS-RUHE)")
#+end_src
80 81 82
** Impact of incremental QR factorization
*** run test case
#+begin_src sh :session *TEST* :results silent
83
cd ${WORKDIR}/build/src/test_core/
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
84
mkdir -p ../data/res
85 86 87
./testMatrixMarketChoice -t BLOCK -s CGS -m 900 -A STDDR -u -o "Basic_GELS"
./testMatrixMarketChoice -t BLOCK -s CGS -m 900 -A QR -u -o "QR_factorization"
#+end_src
88
*** plot the graphic
89 90 91 92 93 94 95
#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R*
library(ggplot2)
df <- read.table("./build/src/data/res/Basic_GELS.res", header=T)
df <- rbind(df, read.table("./build/src/data/res/QR_factorization.res", header=T))
ggplot(df, aes(x=global_iteration, y=least_square_time, color=name)) +
    geom_line() + ggtitle("Least Square duration (young1c)")
#+end_src
96

97 98 99
** Influence of the Algorithm
*** run test case
#+begin_src sh :session *TEST* :results silent
100 101 102 103
cd ${WORKDIR}/build/src/test_core/
mkdir -p ../data/res
./testMatrixIW_DR
#+end_src
104
*** plot the graphic
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R*
library(ggplot2)
df <- read.table("./build/src/data/res/STD.res", header=T)
df <- rbind(df, read.table("./build/src/data/res/STD+DR.res", header=T))
df <- rbind(df, read.table("./build/src/data/res/IB.res", header=T))
name <- df$name
df$name_min <- paste(name, " minRes")
df$name_max <- paste(name, " maxRes")
ggplot(df, aes(x=nb_mvp)) +
    geom_line(aes(y=maxRes, color=name_max)) +
    geom_line(aes(y=minRes, color=name_min)) +
    geom_hline(aes(yintercept=1e-7, color="threshold")) +
    scale_y_log10() +
    ggtitle("coneSphere problem with CGS RUHE (STD, STD+DR and IB algorithm)")
#+end_src
120 121 122 123 124

** young1c (nrhs=6, m=90, k=5)
*** run test case
#+begin_src sh :session *TEST* :results silent
cd ${WORKDIR}/build/src/test_core/
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
125
mkdir -p ../data/res
126
#nbRHS=6; maxSpace=90
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
127
./testMatrixMarketChoice -n 6 -t BLOCK -s MGS -m 90 -e 1e-6 -A QR  -u -o "BGMRES"
128
./testMatrixMarketChoice -n 6 -t BLOCK -s MGS -m 90 -e 1e-6 -A IB -u -o "IB-BGMRES"
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
129
./testMatrixMarketChoice -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A QRDR -r DEFLATED -p 5 -u -o "BGMRES-DR"
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
130
./testMatrixMarketChoice -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A IBDR -r DEFLATED -p 5 -u -o "IB-BGMRES-DR"
131 132 133 134 135 136 137 138
#+end_src
*** plot the graphic
#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R*
library(ggplot2)
library(latex2exp)
df <- read.table("./build/src/data/res/BGMRES.res", header=T)
df <- rbind(df, read.table("./build/src/data/res/IB-BGMRES.res", header=T))
df <- rbind(df, read.table("./build/src/data/res/BGMRES-DR.res", header=T))
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
139
df <- rbind(df, read.table("./build/src/data/res/IB-BGMRES-DR.res", header=T))
140 141 142 143 144 145
ggplot(df, aes(x=nb_mvp)) +
    geom_line(aes(y=maxRes, color=name)) +
    geom_line(aes(y=minRes, color=name)) +
    scale_y_log10() + geom_hline(aes(yintercept=1e-6, color="threshold")) +
    ggtitle("young1c (nrhs=6, m=90 k=5)") + ylab(TeX("$\\eta_b$ (min, max)"))
#+end_src
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
** Influence of restart parameter (nrhs=6, m=90)
*** run test case
#+begin_src sh :session *TEST* :results silent
cd ${WORKDIR}/build/src/test_core/
mkdir -p ../data/res
#nbRHS=6; maxSpace=90
./testMatrixMarketChoice -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A QRDR -r DEFLATED -p 5 -u -o "BGMRES-DR(05)"
./testMatrixMarketChoice -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A QRDR -r DEFLATED -p 10 -u -o "BGMRES-DR(10)"
./testMatrixMarketChoice -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A QRDR -r DEFLATED -p 15 -u -o "BGMRES-DR(15)"
./testMatrixMarketChoice -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A QRDR -r DEFLATED -p 20 -u -o "BGMRES-DR(20)"
#+end_src
*** plot the graphic
#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R*
library(ggplot2)
library(latex2exp)
df <- read.table("./build/src/data/res/BGMRES-DR(05).res", header=T)
df <- rbind(df, read.table("./build/src/data/res/BGMRES-DR(10).res", header=T))
df <- rbind(df, read.table("./build/src/data/res/BGMRES-DR(15).res", header=T))
df <- rbind(df, read.table("./build/src/data/res/BGMRES-DR(20).res", header=T))
ggplot(df, aes(x=nb_mvp)) +
    geom_line(aes(y=maxRes, color=name)) +
    geom_line(aes(y=minRes, color=name)) +
    scale_y_log10() + geom_hline(aes(yintercept=1e-6, color="threshold")) +
    ggtitle("young1c (nrhs=6, m=90 k=(5,10,15,20))") + ylab(TeX("$\\eta_b$ (min, max)"))
#+end_src