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

4 5
#+TITLE: FABuLOuS numericals results

6
#+NAME: fabulous_root
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
7 8 9
#+BEGIN_SRC shell
echo ${HOME}/fabulous/
#+END_SRC
10

11 12 13 14 15 16
* RESULTS
  :PROPERTIES:
  :header-args:shell: :var WORKDIR=fabulous_root :session *fabulous* :results silent
  :header-args:R: :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session
  :END:
** Setup workstation
17
   To be able to run the following test cases, you must have compiled fabulous:
18

19 20
   For this, you may possibly need load mkl into environement:
   #+BEGIN_SRC shell
21
source /opt/intel/mkl/bin/mklvars.sh intel64
22
   #+END_SRC
23

24 25 26 27 28 29 30
   or with spack
   #+BEGIN_SRC shell
spack load mkl
spack load chameleon
spack load starpu+fxt
   #+END_SRC

31 32
   Setup the build system:
   #+BEGIN_SRC shell
33 34 35 36
mkdir -p ${WORKDIR}/build
cd ${WORKDIR}/build
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo \
      -DFABULOUS_DEBUG_MODE=ON \
37
      -DFABULOUS_BUILD_EXAMPLES=ON \
38
      -DFABULOUS_BUILD_TESTS=ON \
39
      -DFABULOUS_USE_CHAMELEON=ON \
40 41 42
      -DFABULOUS_LAPACKE_NANCHECK=OFF # \
    # -DCHAMELEON_DIR=$(spack location -i chameleon)
   #+END_SRC
43

44 45
   Eventually compile fabulous:
   #+BEGIN_SRC shell
46
cd ${WORKDIR}/build
47 48
make -j4
   #+END_SRC
49

50 51 52 53 54
** 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)
55

56
    [[file:./build/src/data/sherman4.mtx][sherman4.mtx]]
57

58 59 60
    [[file:./build/src/data/young4c.mtx][young4c.mtx]]
    [[file:./build/src/data/bcsstk14.mtx][bcsstk14.mtx]]
    [[file:./build/src/data/sherman5.mtx][sherman5.mtx]]
61

62 63 64 65 66
    [[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
67
    #+BEGIN_SRC sh :session *fabulous_downloads* :results silent
68
cd $WORKDIR
69 70 71 72 73 74 75
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"
)
76
mkdir -p ./build/src/data/
77 78 79
for i in "${files[@]}"; do
    filename=$(basename "$i")
    filename="${filename%.*}" # strip gz extension
80
    curl $i | zcat > ./build/src/data/$filename
81
done
82
    #+END_SRC
83 84
** Cleanup results directory
   #+BEGIN_SRC shell
85 86 87
mkdir -p ${WORKDIR}/build/src/data
rm ${WORKDIR}/build/src/test/cmd/*.res -rf
rm ${WORKDIR}/build/src/test/run/*.res -rf
88
   #+END_SRC
89 90 91
** Run Examples
*** Influence of restart(m) parameter
**** run test case
92
     #+BEGIN_SRC shell
93
cd ${WORKDIR}/build/src/test/cmd/
94 95
sizes=(200 400 600 800 1000)
for siz in "${sizes[@]}"; do
96
    ./fabulous_test -t RUHE -s IMGS -m $siz -A IB -u -o "r=$siz"
97
done
98
     #+END_SRC
99
**** plot the graphic
100 101 102 103 104
     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)
     #+BEGIN_SRC R
105
library(ggplot2)
106 107 108 109 110
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"))
111 112 113 114
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)")
115
     #+END_SRC
116 117
*** Influence of incremental QR factorization
**** run test case
118
     #+BEGIN_SRC shell
119 120 121
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"
122
     #+END_SRC
123 124 125

file:~/fabulous/build/src/test/cmd/GELS_with_Incremental_QR_factorization.res
file:~/fabulous/build/src/test/cmd/Full_GELS.res
126
**** plot the graphic
127
     #+BEGIN_SRC R
128
library(ggplot2)
129 130 131 132
##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"))
ggplot(df, aes(x=global_iteration, y=least_square_time, color=paste(name,"solve"))) +
133
    geom_line() +
134
    geom_line(aes(y=facto_time, color=paste(name, "facto"))) +
135 136
    ggtitle("Least Square duration (young1c)")
     #+END_SRC
137 138
*** Influence of the Algorithm
**** run test case
139
     #+BEGIN_SRC shell
140 141 142 143
cd ${WORKDIR}/build/src/test/run/
./matcone_dr
./matcone_ib
./matcone_qr
144
     #+END_SRC
145 146 147
     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
148
**** plot the graphic
149
     #+BEGIN_SRC R
150
library(ggplot2)
151
library(latex2exp)
152 153 154
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"))
155
name <- df$name
156 157
df$name_min <- paste(name, " min")
df$name_max <- paste(name, " max")
158 159 160
ggplot(df, aes(x=nb_mvp)) +
    geom_line(aes(y=maxRes, color=name_max)) +
    geom_line(aes(y=minRes, color=name_min)) +
161
    geom_hline(aes(yintercept=1e-4, color="threshold")) +
162
    scale_y_log10() + ylab(TeX("$\\eta_b$")) +
163
    ggtitle("coneSphere problem with CGS RUHE (STD, STD+DR and IB algorithm)")
164
     #+END_SRC
165

166 167
*** young1c (nrhs=6, m=90, k=5)
**** run test case
168
     #+BEGIN_SRC shell
169 170 171 172 173
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"
174
     #+END_SRC
175 176
**** plot the graphic
     In this experience, I try to mimic the parameters of section 4.2, example 8.
177 178 179
     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.
180

181
     For IB versions, the algorithms do differ:
182 183 184 185
     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)
     #+BEGIN_SRC R
186 187
library(ggplot2)
library(latex2exp)
188 189 190 191
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"))
192 193 194 195 196
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)"))
197
     #+END_SRC
198 199
*** lightInTissue (nrhs=6, m=90, k=5)
**** run test case
200
     #+BEGIN_SRC shell
201
cd ${WORKDIR}/build/src/test/cmd/
202
#nbRHS=6; maxSpace=90
203 204 205 206
./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"
207
     #+END_SRC
208
**** plot the graphic
209
     #+BEGIN_SRC R
210 211
library(ggplot2)
library(latex2exp)
212 213 214 215
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"))
216 217 218 219
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")) +
220 221 222
    ggtitle("lightInTissue (nrhs=6, m=90 k=5)") +
    ylab(TeX("$\\eta_b$ (min, max)"))
     #+END_SRC
223 224
*** Influence of deflated restart (k) parameter (nrhs=6, m=90)
**** run test case
225
     #+BEGIN_SRC shell
226
cd ${WORKDIR}/build/src/test/cmd/
227
#nbRHS=6; maxSpace=90
228 229 230 231
./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)"
232
     #+END_SRC
233
**** plot the graphic
234
     #+BEGIN_SRC R
235 236
library(ggplot2)
library(latex2exp)
237 238 239 240
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"))
241 242 243 244
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")) +
245 246 247
    ggtitle("young1c (nrhs=6, m=90 k=(5,10,15,20))") +
    ylab(TeX("$\\eta_b$ (min, max)"))
     #+END_SRC
248

249 250
*** csc lightInTissue timing
**** run test
251
     #+BEGIN_SRC shell
252
cd ${WORKDIR}/build/src/test/cmd/
253
#nbRHS=6; maxSpace=90
254
./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"
255
     #+END_SRC
256
**** plot
257
     #+BEGIN_SRC R
258 259
library(ggplot2)
library(latex2exp)
260
df <- read.csv("./build/src/test/cmd/IB-BGMRES-DR.res")
261
ggplot(df, aes(x=global_iteration)) +
262 263
    geom_line(aes(y=time, color="total")) +
    geom_line(aes(y=least_square_time, color="gels")) +
264 265 266
    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
267
#   geom_line(aes(y=ib_time+ortho_time+mvp_time+least_square_time, color="SUM")) +
268 269
    ylab(TeX("Time (s)")) +
    ggtitle("lightInTissue (nrhs=6, m=90 k=5)")
270
     #+END_SRC
271 272
*** qr ib dr
**** run test
273
     #+BEGIN_SRC shell
274
cd ${WORKDIR}/build/src/test/cmd/
275
#nbRHS=6; maxSpace=90
276 277
./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"
278
     #+END_SRC
279
**** plot
280
     #+BEGIN_SRC R
281 282
library(ggplot2)
library(latex2exp)
283 284
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"))
285 286 287 288 289
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)"))
290
     #+END_SRC
291 292
*** qr ib dr timing
**** run test
293
     #+BEGIN_SRC shell
294
cd ${WORKDIR}/build/src/test/cmd/
295
#nbRHS=6; maxSpace=90
296 297
./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"
298
     #+END_SRC
299
     RESULTS FILES:
300 301
     file:~/fabulous/build/src/test/cmd/IB-BGMRES.res
     file:~/fabulous/build/src/test/cmd/QR-IB-BGMRES.res
302

303
**** plot
304
     #+BEGIN_SRC R
305
library(ggplot2)
306 307
df <- read.csv("./build/src/test/cmd/IB-BGMRES.res")
df <- rbind(df, read.csv("./build/src/test/cmd/QR-IB-BGMRES.res"))
308
ggplot(df, aes(x=nb_mvp)) +
309 310 311 312
    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"))) +
    ggtitle("young1c (nrhs=100, m=500 k=5, max_mvp=10000)") +
313 314
    ylab("time (s)")
     #+END_SRC
315 316 317 318
**** papi (commit 20c31809be1f04a1b575008f9527abbec07a2f21 / branch papi)
     Try to compare PAPI hw counter with estimation of Gflops/s we computed:
     #+BEGIN_SRC R
library(ggplot2)
319 320
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"))
321 322 323 324 325 326 327
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)")
     #+END_SRC
328 329 330

     #+BEGIN_SRC R
library(ggplot2)
331 332
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"))
333
ggplot(df, aes(x=nb_mvp)) +
334
    geom_point(aes(y=papi_flop_s, color=paste(name, " PAPI Mflops/s"))) +
335 336 337 338
    ggtitle("young1c (nrhs=100, m=500 k=5, max_mvp=10000)") +
    ylab("time (s)")
     #+END_SRC

339
*** with chameleon
340
**** run test
341
     #+BEGIN_SRC shell
342 343
cd ${WORKDIR}/build/src/test_cham/
#nbRHS=6; maxSpace=90
344 345 346 347 348
# 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
349 350
./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"
351
     #+END_SRC
352
**** plot
353 354
     The following graph represent relative percentages spent
     in each stage of the algorithm
355
     #+BEGIN_SRC R
356 357
library(ggplot2)
library(latex2exp)
358
df <- read.csv("./build/src/test/cmd/CHAM-TL.res")
359 360 361 362 363
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")) +
364 365 366 367 368
    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"))
     #+END_SRC
369 370
*** young1c chameleon comparison QR (nrhs=6, m=90, k=5)
**** run test case
371
     #+BEGIN_SRC shell
372 373 374
cd ${WORKDIR}/build/src/test/cmd/
./fabulous_test -n 6 -t BLOCK -s MGS -m 90 -e 1e-6 -A QR -u -o "QR"
./fabulous_test_cham -z1 -n 6 -t RUHE -s MGS -m 90 -e 1e-6 -A CHAMQR -u -o "CHAMQR"
375
     #+END_SRC
376
**** plot the graphic
377
     #+BEGIN_SRC R
378 379
library(ggplot2)
library(latex2exp)
380 381
df <- read.csv("./build/src/test/cmd/QR.res")
df <- rbind(df, read.csv("./build/src/test/cmd/CHAMQR.res"))
382 383 384 385 386
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)"))
387
     #+END_SRC
388 389 390
*** GCR first results nrhs=10 m=300
**** test case
    #+BEGIN_SRC shell
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
391 392
cd ${WORKDIR}/build/src/test/cmd/
./fabulous_test -A GCR -n 10 -m 300 -s IMGS -t BLOCK
393
    #+END_SRC
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
394
    file:~/fabulous/build/src/test/cmd/young1c.mtx_IMGS_BLOCK_BGCR.res
395 396 397 398 399 400
**** graphic
     The max and min displayed here are the max and min of the not discared direction
     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.
     #+BEGIN_SRC R
library(ggplot2)
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
401
df <- read.csv("./build/src/test/cmd/young1c.mtx_IMGS_BLOCK_BGCR.res")
402 403 404 405 406 407 408 409 410 411
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")
     #+END_SRC
*** GCR first results nrhs=6 m=90
**** test case
    #+BEGIN_SRC shell
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
412 413
cd ${WORKDIR}/build/src/test/cmd/
./fabulous_test -A GCR -n 6 -m 90 -s IMGS -t BLOCK
414
    #+END_SRC
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
415
    file:~/fabulous/build/src/test/cmd/young1c.mtx_IMGS_BLOCK_BGCR.res
416 417 418 419 420 421
**** graphic
     The max and min displayed here are the max and min of the not discared direction
     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.
     #+BEGIN_SRC R
library(ggplot2)
MIJIEUX Thomas's avatar
MIJIEUX Thomas committed
422
df <- read.csv("./build/src/test/cmd/young1c.mtx_IMGS_BLOCK_BGCR.res")
423 424 425 426 427 428 429
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")
     #+END_SRC