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

4 5 6
#+TITLE: FABuLOuS numericals results
#+STARTUP: showeverything

7
* RESULTS
8 9 10 11 12 13
** Get Test files
   [[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]]
14

15 16 17 18 19 20 21 22
   [[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]]
23 24

*** Downloads
25
#+begin_src shell :session *DOWNLOADS* :results none
26 27 28 29 30 31 32
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"
)
33
mkdir -p ./build/src/data/
34 35 36
for i in "${files[@]}"; do
    filename=$(basename "$i")
    filename="${filename%.*}" # strip gz extension
37
    curl $i | zcat > ./build/src/data/$filename
38
done
39
#+end_src
40

41
** Run Examples
42 43 44 45
   Set this variable to your work directory (where you downloaded fabulous):
#+begin_src sh :session *TEST* :results none
export WORKDIR=/home/tmijieux/fabulous
#+end_src
46

47 48 49 50 51 52 53 54
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
55

56 57 58 59 60 61 62 63 64 65
*** Impact of restart parameter
**** run test case
#+begin_src sh :session *TEST* :results none
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
66

67 68
**** plot the graphic
#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R*
69
library(ggplot2)
70 71 72 73 74
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))
75

76 77 78 79 80
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
81

82 83 84 85 86 87 88 89 90 91 92 93 94 95
*** Impact of incremental QR factorization
**** run test case
#+begin_src sh :session *TEST* :results none
cd ${WORKDIR}/build/src/test_core/
./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
**** 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)
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)")
96

97
#+end_src
98

99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
*** Influence of the Algorithm
**** run test case
#+begin_src sh :session *TEST* :results none
cd ${WORKDIR}/build/src/test_core/
mkdir -p ../data/res
./testMatrixIW_DR
#+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)
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