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

4
#+TITLE: FABuLOuS numericals results
5 6 7 8 9 10 11 12 13
#+AUTHOR: Thomas Mijieux
#+EMAIL: thomas.mijieux@inria.fr
#+PROPERTY: header-args:sh :exports none :eval never-export
#+PROPERTY: header-args:shell :exports none :eval never-export
#+PROPERTY: header-args:shell+ :var WORKDIR=fabulous_root :session *fabulous* :results silent
#+PROPERTY: header-args:R :exports results :eval never-export
#+PROPERTY: header-args:R+ :results output graphics :file (org-babel-temp-file "figure" ".png") :width 600 :height 400 :session
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
14

15
#+NAME: fabulous_root
16 17 18
#+BEGIN_SRC sh
echo ${HOME}/fabulous/
#+END_SRC
19

20 21
* RESULTS
** Setup workstation
22
   To be able to run the following test cases, you must have compiled fabulous:
23

24
   For this, you may possibly need load mkl into environement:
25
   #+begin_src shell
26
source /opt/intel/mkl/bin/mklvars.sh intel64
27
   #+end_src
28

29
   or with spack
30
   #+begin_src shell
31 32 33
spack load mkl
spack load chameleon
spack load starpu+fxt
34
   #+end_src
35

36
   Setup the build system:
37
   #+begin_src shell
38 39 40 41
mkdir -p ${WORKDIR}/build
cd ${WORKDIR}/build
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo \
      -DFABULOUS_DEBUG_MODE=ON \
42
      -DFABULOUS_BUILD_EXAMPLES=ON \
43
      -DFABULOUS_BUILD_TESTS=ON \
44
      -DFABULOUS_USE_CHAMELEON=ON \
45 46
      -DFABULOUS_LAPACKE_NANCHECK=OFF # \
    # -DCHAMELEON_DIR=$(spack location -i chameleon)
47
   #+end_src
48

49
   Eventually compile fabulous:
50
   #+begin_src shell
51
cd ${WORKDIR}/build
52
make -j4
53
   #+end_src
54

55 56 57 58 59
** Get Test files
*** File list
    [[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)
60

61
    [[file:./build/src/data/sherman4.mtx][sherman4.mtx]]
62

63 64 65
    [[file:./build/src/data/young4c.mtx][young4c.mtx]]
    [[file:./build/src/data/bcsstk14.mtx][bcsstk14.mtx]]
    [[file:./build/src/data/sherman5.mtx][sherman5.mtx]]
66

67 68 69 70 71
    [[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]]
*** Downloads
72
    #+begin_src sh :session *fabulous_downloads* :results silent
73
cd $WORKDIR
74 75 76 77 78 79 80
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"
)
81
mkdir -p ./build/src/data/
82 83 84
for i in "${files[@]}"; do
    filename=$(basename "$i")
    filename="${filename%.*}" # strip gz extension
85
    curl $i | zcat > ./build/src/data/$filename
86
done
87
    #+end_src
88
** Cleanup results directory
89
   #+begin_src shell
90 91 92
mkdir -p ${WORKDIR}/build/src/data
rm ${WORKDIR}/build/src/test/cmd/*.res -rf
rm ${WORKDIR}/build/src/test/run/*.res -rf
93
   #+end_src
94 95 96
** Run Examples
*** Influence of restart(m) parameter
**** run test case
97
     #+begin_src shell :exports none
98
cd ${WORKDIR}/build/src/test/cmd/
99 100
sizes=(200 400 600 800 1000)
for siz in "${sizes[@]}"; do
101
    ./fabulous_test -t RUHE -s IMGS -m $siz -A IB -u -o "r=$siz"
102
done
103
     #+end_src
104
**** plot the graphic
105 106 107 108
     This graphic seems to indicate than a larger restart parameter help
     to speed up the convergence (but this is not necessarily true, a
     collection of references in IB-BGMRES-DR, Section 4.5, show that
     the contrary is possible)
109
     #+begin_src R
110
library(ggplot2)
111 112 113 114 115
df <- read.csv("./build/src/test/cmd/r=200.res")
df <- rbind(df, read.csv("./build/src/test/cmd/r=400.res"))
df <- rbind(df, read.csv("./build/src/test/cmd/r=600.res"))
df <- rbind(df, read.csv("./build/src/test/cmd/r=800.res"))
df <- rbind(df, read.csv("./build/src/test/cmd/r=1000.res"))
116 117 118
ggplot(df, aes(x=nb_mvp)) +
    geom_line(aes(y=maxRes, color=name)) +
    geom_line(aes(y=minRes, color=name)) +
119 120
    geom_hline(aes(yintercept=1e-4, color="threshold")) +
    scale_y_log10() + ggtitle("Memory usage influence (young1c IB IMGS-RUHE)")
121
     #+end_src
122 123
*** Influence of incremental QR factorization
**** run test case
124
     #+begin_src shell
125 126 127
cd ${WORKDIR}/build/src/test/cmd/
./fabulous_test -t BLOCK -s CGS -m 700 -A STDDR -u -o "full_gels"
./fabulous_test -t BLOCK -s CGS -m 700 -A QR -u -o "incremental_gels"
128
     #+end_src
129

130 131
     file:~/fabulous/build/src/test/cmd/incremental_gels.res
     file:~/fabulous/build/src/test/cmd/full_gels.res
132
**** plot the graphic
133 134 135 136 137 138 139 140
     The curve for "full_gels facto" is zero because there is no factorization
     part in the "full_gels". But even if it may be unexpected,
     the curve for "incremental_gels solve" is also zero because
     since GMRES is not a short term recurrence algorithm, computing the
     complete least square solution is not mandatory at each iteration.
     Only the residual norm is needed is this can be obtained from
     the incremental factorization without computing the actual residual
     #+begin_src R
141
library(ggplot2)
142 143 144
##df <- df[0,]
df <- read.csv("./build/src/test/cmd/full_gels.res")
df <- rbind(df, read.csv("./build/src/test/cmd/incremental_gels.res"))
145 146
ggplot(df, aes(x=global_iteration)) +
    geom_line(aes(y=least_square_time, color=paste(name,"solve"))) +
147
    geom_line(aes(y=facto_time, color=paste(name, "facto"))) +
148
    ggtitle("Least Square duration (young1c)")
149
     #+end_src
150 151
*** Influence of the Algorithm
**** run test case
152
     #+begin_src shell
153 154 155 156
cd ${WORKDIR}/build/src/test/run/
./matcone_dr
./matcone_ib
./matcone_qr
157
     #+end_src
158 159 160
     file:~/fabulous/build/src/test/run/matcone_MGS_RUHE_BGMRES-DR.res
     file:~/fabulous/build/src/test/run/matcone_MGS_RUHE_IB-BGMRES.res
     file:~/fabulous/build/src/test/run/matcone_MGS_RUHE_QR-BGMRES.res
161
**** plot the graphic
162
     #+begin_src R
163
library(ggplot2)
164
library(latex2exp)
165 166 167
df <- read.csv("./build/src/test/run/matcone_MGS_RUHE_QR-BGMRES.res")
df <- rbind(df, read.csv("./build/src/test/run/matcone_MGS_RUHE_BGMRES-DR.res"))
df <- rbind(df, read.csv("./build/src/test/run/matcone_MGS_RUHE_IB-BGMRES.res"))
168 169
name <- df$name
ggplot(df, aes(x=nb_mvp)) +
170 171
    geom_line(aes(y=maxRes, color=name)) +
    geom_line(aes(y=minRes, color=name)) +
172
    geom_hline(aes(yintercept=1e-4, color="threshold")) +
173
    scale_y_log10() + ylab(TeX("$\\eta_b$")) +
174 175
    ggtitle("coneSphere(dim=1320, nrhs=26) problem with CGS RUHE (STD, STD+DR and IB algorithm)")
     #+end_src
176 177
*** young1c (nrhs=6, m=90, k=5)
**** run test case
178
     #+begin_src shell
179 180 181 182 183
cd ${WORKDIR}/build/src/test/cmd/
./fabulous_test -n 6 -t BLOCK -s MGS -m 90 -e 1e-6 -A QR  -u -o "BGMRES"
./fabulous_test -n 6 -t BLOCK -s MGS -m 90 -e 1e-6 -A IB -u -o "IB-BGMRES"
./fabulous_test -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A QRDR -r DEFLATED -p 5 -u -o "BGMRES-DR"
./fabulous_test -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A IBDR -r DEFLATED -p 5 -u -o "IB-BGMRES-DR"
184
     #+end_src
185 186
**** plot the graphic
     In this experience, I try to mimic the parameters of section 4.2, example 8.
187 188 189
     The experience results are different because the right hand side are
     generated randomly with different random number generator, the kernels
     used may be different and some algorithms may differ a little.
190

191
     For IB versions, the algorithms do differ:
192 193 194
     the experience presented here implement an extension computing
     'Inexact breakdown on R0', while the result presented in the article
     do not (Figure 2, Example 8, left side)
195
     #+begin_src R
196 197
library(ggplot2)
library(latex2exp)
198 199 200 201
df <- read.csv("./build/src/test/cmd/BGMRES.res")
df <- rbind(df, read.csv("./build/src/test/cmd/IB-BGMRES.res"))
df <- rbind(df, read.csv("./build/src/test/cmd/BGMRES-DR.res"))
df <- rbind(df, read.csv("./build/src/test/cmd/IB-BGMRES-DR.res"))
202 203 204 205
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")) +
206 207
    ggtitle("young1c (dim=841, nrhs=6, m=90 k=5)") + ylab(TeX("$\\eta_b$ (min, max)"))
     #+end_src
208 209
*** lightInTissue (nrhs=6, m=90, k=5)
**** run test case
210
     #+begin_src shell
211 212 213 214 215
cd ${WORKDIR}/build/src/test/cmd/
./fabulous_test -f ../data/matlab/lightINtissue.mtx -k CSC -n 6 -m 90 -A QR -e 1e-6 -u -o "BGMRES"
./fabulous_test -f ../data/matlab/lightINtissue.mtx -k CSC -n 6 -m 90 -A IB -e 1e-6 -u -o "IB-BGMRES"
./fabulous_test -f ../data/matlab/lightINtissue.mtx -k CSC -n 6 -m 90 -A QRDR -r DEFLATED -p 5 -e 1e-6 -u -o "BGMRES-DR"
./fabulous_test -f ../data/matlab/lightINtissue.mtx -k CSC -n 6 -m 90 -A IBDR -r DEFLATED -p 5 -e 1e-6 -u -o "IB-BGMRES-DR"
216
     #+end_src
217
**** plot the graphic
218
     #+begin_src R
219 220
library(ggplot2)
library(latex2exp)
221 222 223 224
df <- read.csv("./build/src/test/cmd/BGMRES.res")
df <- rbind(df, read.csv("./build/src/test/cmd/IB-BGMRES.res"))
df <- rbind(df, read.csv("./build/src/test/cmd/BGMRES-DR.res"))
df <- rbind(df, read.csv("./build/src/test/cmd/IB-BGMRES-DR.res"))
225 226 227 228
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")) +
229
    ggtitle("lightInTissue (dim=29282, nrhs=6, m=90 k=5)") +
230
    ylab(TeX("$\\eta_b$ (min, max)"))
231
     #+end_src
232 233
*** Influence of deflated restart (k) parameter (nrhs=6, m=90)
**** run test case
234
     #+begin_src shell
235 236 237 238 239
cd ${WORKDIR}/build/src/test/cmd/
./fabulous_test -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A QRDR -r DEFLATED -p 5 -u -o "BGMRES-DR(05)"
./fabulous_test -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A QRDR -r DEFLATED -p 10 -u -o "BGMRES-DR(10)"
./fabulous_test -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A QRDR -r DEFLATED -p 15 -u -o "BGMRES-DR(15)"
./fabulous_test -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A QRDR -r DEFLATED -p 20 -u -o "BGMRES-DR(20)"
240
     #+end_src
241
**** plot the graphic
242
     #+begin_src R
243 244
library(ggplot2)
library(latex2exp)
245 246 247 248
df <- read.csv("./build/src/test/cmd/BGMRES-DR(05).res")
df <- rbind(df, read.csv("./build/src/test/cmd/BGMRES-DR(10).res"))
df <- rbind(df, read.csv("./build/src/test/cmd/BGMRES-DR(15).res"))
df <- rbind(df, read.csv("./build/src/test/cmd/BGMRES-DR(20).res"))
249 250 251 252
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")) +
253
    ggtitle("young1c (dim=841, nrhs=6, m=90 k=(5,10,15,20))") +
254
    ylab(TeX("$\\eta_b$ (min, max)"))
255
     #+end_src
256 257
*** csc lightInTissue timing
**** run test
258
     #+begin_src shell
259
cd ${WORKDIR}/build/src/test/cmd/
260
#nbRHS=6; maxSpace=90
261
./fabulous_test -f ../data/matlab/lightINtissue.mtx -k CSC -t BLOCK -s CGS -n 6 -m 90 -A IBDR -r DEFLATED -p 5 -e 1e-4 -u -o "IB-BGMRES-DR"
262
     #+end_src
263
**** plot
264
     #+begin_src R
265 266
library(ggplot2)
library(latex2exp)
267
df <- read.csv("./build/src/test/cmd/IB-BGMRES-DR.res")
268
ggplot(df, aes(x=global_iteration)) +
269 270
    geom_line(aes(y=time, color="total")) +
    geom_line(aes(y=least_square_time, color="gels")) +
271 272 273
    geom_line(aes(y=mvp_time, color="mvp")) +
    geom_line(aes(y=ortho_time, color="ortho")) +
    geom_line(aes(y=ib_time, color="ib")) +
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
274
#   geom_line(aes(y=ib_time+ortho_time+mvp_time+least_square_time, color="SUM")) +
275
    ylab(TeX("Time (s)")) +
276 277
    ggtitle("lightInTissue (dim=29282, nrhs=6, m=90 k=5)")
     #+end_src
278 279
*** qr ib dr
**** run test
280
     #+begin_src shell
281
cd ${WORKDIR}/build/src/test/cmd/
282
#nbRHS=6; maxSpace=90
283 284
./fabulous_test -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A IBDR -r DEFLATED -p 5 -u -o "IB-BGMRES-DR"
./fabulous_test -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A QRIBDR -r DEFLATED -p 5 -u -o "QR-IB-BGMRES-DR"
285
     #+end_src
286
**** plot
287
     #+begin_src R
288 289
library(ggplot2)
library(latex2exp)
290 291
df <- read.csv("./build/src/test/cmd/IB-BGMRES-DR.res")
df <- rbind(df, read.csv("./build/src/test/cmd/QR-IB-BGMRES-DR.res"))
292
df$algo <- df$name
293
ggplot(df, aes(x=nb_mvp)) +
294 295
    geom_line(aes(y=maxRes, linetype=algo, color=algo)) +
    geom_line(aes(y=minRes, linetype=algo, color=algo)) +
296
    scale_y_log10() + geom_hline(aes(yintercept=1e-6, color="threshold")) +
297 298
    ggtitle("young1c (dim=841, nrhs=6, m=90 k=5)") + ylab(TeX("$\\eta_b$ (min, max)"))
     #+end_src
299 300
*** qr ib dr timing
**** run test
301
     #+begin_src shell
302
cd ${WORKDIR}/build/src/test/cmd/
303
#nbRHS=6; maxSpace=90
304 305
./fabulous_test -n 100 -t BLOCK -s MGS -m 700 -e 1e-4 -A IB -u -o "IB-BGMRES"
./fabulous_test -n 100 -t BLOCK -s MGS -m 700 -e 1e-4 -A QRIBDR -u -o "QR-IB-BGMRES"
306
     #+end_src
307
     RESULTS FILES:
308 309
     file:~/fabulous/build/src/test/cmd/IB-BGMRES.res
     file:~/fabulous/build/src/test/cmd/QR-IB-BGMRES.res
310

311
**** plot
312
     #+begin_src R
313
library(ggplot2)
314 315
df <- read.csv("./build/src/test/cmd/IB-BGMRES.res")
df <- rbind(df, read.csv("./build/src/test/cmd/QR-IB-BGMRES.res"))
316
ggplot(df, aes(x=nb_mvp)) +
317 318 319
    geom_line(aes(y=least_square_time, color=paste(name,"gels"))) +
    geom_line(aes(y=facto_time, color=paste(name, "facto"))) +
    geom_line(aes(y=facto_time+least_square_time, color=paste(name, "sum"))) +
320
    ggtitle("young1c (dim=841, nrhs=100, m=700 k=5, max_mvp=10000)") +
321
    ylab("time (s)")
322
     #+end_src
323 324
**** papi (commit 20c31809be1f04a1b575008f9527abbec07a2f21 / branch papi)
     Try to compare PAPI hw counter with estimation of Gflops/s we computed:
325
     #+begin_src R
326
library(ggplot2)
327 328
df <- read.csv("./build/src/test/cmd/IB-BGMRES-DR.res")
df <- rbind(df, read.csv("./build/src/test/cmd/QR-IB-BGMRES-DR.res"))
329 330 331 332 333 334
ggplot(df, aes(x=nb_mvp)) +
    geom_line(aes(y=ortho_flops/(ortho_time*1000000000.0), color=paste(name, " Estimate Gflops/s"))) +
    geom_line(aes(y=papi_flop_s/1000.0, color=paste(name, " PAPI Gflops/s"))) +
#    geom_line(aes(y=papi_flop_s, color=paste(name, " PAPI Mflops/s")) +
    ggtitle("young1c (nrhs=100, m=500 k=5, max_mvp=10000)") +
    ylab("time (s)")
335
     #+end_src
336

337
     #+begin_src R
338
library(ggplot2)
339 340
df <- read.csv("./build/src/test/cmd/IB-BGMRES-DR.res")
df <- rbind(df, read.csv("./build/src/test/cmd/QR-IB-BGMRES-DR.res"))
341
ggplot(df, aes(x=nb_mvp)) +
342
    geom_point(aes(y=papi_flop_s, color=paste(name, " PAPI Mflops/s"))) +
343 344
    ggtitle("young1c (nrhs=100, m=500 k=5, max_mvp=10000)") +
    ylab("time (s)")
345
     #+end_src
346
*** with chameleon
347
**** run test
348
     #+begin_src shell
349 350
cd ${WORKDIR}/build/src/test_cham/
#nbRHS=6; maxSpace=90
351 352 353 354 355
# following variable MUST have a trailing slash
export STARPU_FXT_PREFIX=${WORKDIR}/build/
# plafrim:
#spack load mpi; spack load hwloc; spack load starpu; spack load chameleon
#option -z for chameleon with 1 core only
356 357
./fabulous_test_cham -z2 -n 50 -e 1e-4 -A CHAMDR -u -o "CHAM-TL"
# ./fabulous_test_cham -n 100 -e 1e-4 -A CHAMQR -u -o "CHAM-QR"
358
     #+end_src
359
**** plot
360 361
     The following graph represent relative percentages spent
     in each stage of the algorithm
362
     #+begin_src R
363 364
library(ggplot2)
library(latex2exp)
365
df <- read.csv("./build/src/test/cmd/CHAM-TL.res")
366 367 368 369 370
ggplot(df, aes(x=global_iteration)) +
    geom_line(aes(y=100, color="total")) +
    geom_line(aes(y=(least_square_time/time)*100, color="Gels")) +
    geom_line(aes(y=(ortho_time/time)*100, color="Ortho")) +
    geom_line(aes(y=(mvp_time/time)*100, color="Mvp")) +
371 372 373 374
    geom_line(aes(y=((mvp_time+ortho_time+
                      least_square_time)/time)*100, color="SUM")) +
    ggtitle("Relative % time spent (young1c CHAM) (nrhs=50)") +
    ylab(TeX("$\\% time"))
375
     #+end_src
376 377
*** young1c chameleon comparison QR (nrhs=6, m=90, k=5)
**** run test case
378
     #+begin_src shell
379 380
cd ${WORKDIR}/build/src/test/cmd/
./fabulous_test -n 6 -t BLOCK -s MGS -m 90 -e 1e-6 -A QR -u -o "QR"
381 382
./fabulous_test_cham -z2 -x 10 -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A CHAMQR2 -u -o "CHAMQR"
     #+end_src
383
**** plot the graphic
384
     #+begin_src R
385 386
library(ggplot2)
library(latex2exp)
387 388
df <- read.csv("./build/src/test/cmd/QR.res")
df <- rbind(df, read.csv("./build/src/test/cmd/CHAMQR.res"))
389
df$variant <- df$name
390
ggplot(df, aes(x=nb_mvp)) +
391 392
    geom_line(aes(y=maxRes, linetype=variant, color=variant)) +
    geom_line(aes(y=minRes, linetype=variant, color=variant)) +
393 394
    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)"))
395
     #+end_src
396 397
*** GCR first results nrhs=10 m=300
**** test case
398
     #+begin_src shell
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
399 400
cd ${WORKDIR}/build/src/test/cmd/
./fabulous_test -A GCR -n 10 -m 300 -s IMGS -t BLOCK
401 402
     #+end_src
     file:~/fabulous/build/src/test/cmd/young1c.mtx_IMGS_BLOCK_BGCR.res
403
**** graphic
404
     The max and min displayed here are the max and min of the "not yet discarded" direction
405 406
     This is why the min may be increasing on this graphic: This means a direction was discarded
     and its norm is not taken into account anymore.
407
     #+begin_src R
408
library(ggplot2)
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
409
df <- read.csv("./build/src/test/cmd/young1c.mtx_IMGS_BLOCK_BGCR.res")
410 411 412 413 414 415
ggplot(df, aes(x=nb_mvp)) +
    geom_line(aes(y=maxRes, color="max")) +
    geom_line(aes(y=minRes, color="min")) +
    geom_hline(aes(yintercept=1e-4, color="threshold")) +
    scale_y_log10() +
    ggtitle("GCR nrhs=10 m=300")
416
     #+end_src
417 418
*** GCR first results nrhs=6 m=90
**** test case
419
     #+begin_src shell
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
420 421
cd ${WORKDIR}/build/src/test/cmd/
./fabulous_test -A GCR -n 6 -m 90 -s IMGS -t BLOCK
422 423
     #+end_src
     file:~/fabulous/build/src/test/cmd/young1c.mtx_IMGS_BLOCK_BGCR.res
424
**** graphic
425
     The max and min displayed here are the max and min of the "not yet discarded" direction
426 427
     This is why the min may be increasing on this graphic: This means a direction was discarded
     and its norm is not taken into account anymore.
428
     #+begin_src R
429
library(ggplot2)
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
430
df <- read.csv("./build/src/test/cmd/young1c.mtx_IMGS_BLOCK_BGCR.res")
431 432 433 434 435 436
ggplot(df, aes(x=nb_mvp)) +
    geom_line(aes(y=maxRes, color="max")) +
    geom_line(aes(y=minRes, color="min")) +
    geom_hline(aes(yintercept=1e-4, color="threshold")) +
    scale_y_log10() +
    ggtitle("GCR nrhs=6 m=90")
437 438 439
     #+end_src
*** BCG results
**** test case
440
     #+begin_src shell
441
cd ${WORKDIR}/build/src/test/cmd/
442 443 444
./fabulous_test -A BCG -n 6 -m 90 -f ../data/bcsstk14.mtx -a REAL_DOUBLE -u -o bcg_bcsstk14
     #+end_src
     file:~/fabulous/build/src/test/cmd/bcg_bcsstk14.res
445 446 447
**** graphic
     #+begin_src R
library(ggplot2)
448 449
library(latex2exp)
df <- read.csv("./build/src/test/cmd/bcg_bcsstk14.res")
450 451 452 453 454
ggplot(df, aes(x=nb_mvp)) +
    geom_line(aes(y=maxRes, color="max")) +
    geom_line(aes(y=minRes, color="min")) +
    geom_hline(aes(yintercept=1e-4, color="threshold")) +
    scale_y_log10() +
455 456
    ylab(TeX("$\\eta_b$")) +
    ggtitle("BCG dim=1806 nrhs=6 m=90")
457
     #+end_src