From 8262fd310463ce35c6411a44295e07925defdac6 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Wed, 13 Jan 2021 20:18:07 +0100 Subject: [PATCH] Add slides for meeting 3 --- garlic/doc/slides/3.mm | 181 ++++++ garlic/doc/slides/Makefile | 27 +- garlic/doc/slides/overview.svg | 479 ++++++++++++++++ garlic/doc/slides/sat.png | Bin 0 -> 79137 bytes garlic/doc/slides/scalability.svg | 265 +++++++++ garlic/doc/slides/scaling-region.svg | 806 +++++++++++++++++++++++++++ 6 files changed, 1755 insertions(+), 3 deletions(-) create mode 100644 garlic/doc/slides/3.mm create mode 100644 garlic/doc/slides/overview.svg create mode 100644 garlic/doc/slides/sat.png create mode 100644 garlic/doc/slides/scalability.svg create mode 100644 garlic/doc/slides/scaling-region.svg diff --git a/garlic/doc/slides/3.mm b/garlic/doc/slides/3.mm new file mode 100644 index 0000000..39b07d7 --- /dev/null +++ b/garlic/doc/slides/3.mm @@ -0,0 +1,181 @@ +.\"usage: NS title +.EQ +delim $$ +.EN +.de NS \" New Slide +.SK +.ev gp-top +.fam H +.vs 1.5m +.ll \\n[@ll]u +.lt \\n[@ll]u +.rs +.sp 2v +.ps +5 +\\$* +.ps -5 +.sp 1.5v +.br +.ev +.. +.\" Remove headers +.de TP +.. +.\" Bigger page number in footer +.de EOP +.fam H +.ps +2 +. ie o .tl \\*[pg*odd-footer] +. el .tl \\*[pg*even-footer] +. ds hd*format \\g[P] +. af P 0 +. ie (\\n[P]=1)&(\\n[N]=1) .tl \\*[pg*header] +. el .tl \\*[pg*footer] +. af P \\*[hd*format] +. tl ''\\*[Pg_type!\\n[@copy_type]]'' +.. +.\" Remove top and bottom margin +.VM 0 0 +.\" +.\" +.\" Set virtual page dimensions for a physical size of 16x12 cm +.PGFORM 14c 12c 1c 1 +.ND "January 14, 2021" +.\" .vs 1.5m +.S C 1.5m +.fam H +.\".PH "'cosas'''" +.COVER ms +.de cov@print-date +.DS C +.fam H +.B +\\*[cov*new-date] +.DE +.. +.TL +.ps 20 +.fam H +Garlic experiments +.AF "Barcelona Supercomputing Center" +.AU "Rodrigo Arias Mallo" +.COVEND +.PF "'''%'" +.\" Turn off justification +.SA 0 +.\".PF '''%' +.\"================================================================== +.NS "Approach 1" +This was the approach proposed for hybrids PM +.BL +.LI +Perform a granularity experiment with a \fIreasonable\fP problem size. +.LI +Take the best blocksize +.LI +Analyze strong and weak scaling with that blocksize. +.LI +Plot speedup and efficiency comparing multiple PM. +.LE 1 +The main problem is that it may lead to \fBbogus comparisons\fP. +Additionally, there is no guarantee that the best blocksize is the one +that performs better with more resources. +.\"================================================================== +.NS "Approach 2" +We want to measure scalability of the application \fBonly\fP, not mixed +with runtime overhead or lack of parallelism. +.P +We define \fBsaturation\fP as the state of an execution that allows a +program to potentially use all the resources (the name comes from the +transistor state, when current flows freely). +.P +Design a new experiment which tests multiple blocksizes and multiple +input sizes to find these states: \fBthe saturation experiment\fP. +.P +Begin with small problems and increase the size, so you get to the +answer quickly. +.\"================================================================== +.NS "Saturation experiment" +.2C +\X'pdf: pdfpic sat.png.tk.pdf -R 7c' +.NCOL +.S -1 -3 +.BL 1m +.LI +The objetive is to find the minimum input size that allows us to get +meaningful scalability results. +.LI +More precisely, a unit is in \fBsaturation state\fP if the median time +is below the \fBsaturation time limit\fP, currently set to 110% the minimum +median time (red dashed lines). +.LI +An input size is in \fBsaturation zone\fP if it allows at least K=3 +consecutive points in the saturation state. +.LI +With less than 512 particles/CPU (green line) we cannot be sure that the +performance is not impacted by the runtime overhead or lack of +parallelism. +.LE +.S P P +.1C +.\"================================================================== +.NS "Experiment space" +.2C +\X'pdf: pdfpic scaling-region.svg.tk.pdf -L 7c' +.NCOL +.S -1 -3 +.BL 1m +.LI +\fBSaturation limit\fP: small tasks cannot be solved without overhead +from the runtime, no matter the blocksize. +.LI +Different limits for OmpSs-2 and OpenMP. +.LI +Experiment A will show the scaling of the app while in the saturation +zone. +.LI +Experiment B will show that OpenMP scales bad in the last 2 points. +.LI +Experiment C will show that at some point both OpenMP and OmpSs-2 scale +bad. +.LE +.S P P +.1C +.\"================================================================== +.NS "Experiment space: experiment C" +.2C +\X'pdf: pdfpic scalability.svg.tk.pdf -L 7c' +.NCOL +.BL 1m +.LI +The experiment C will show a difference in performance when approached +to the saturation limit. +.LI +We could say that OmpSs-2 introduces less overhead, therefore allows +better scalability. +.LE +.1C +.\"================================================================== +.NS "Reproducibility" +How easy can we get the same results? Three properties R0 < R1 < R2 (no common nomenclature yet!): +.BL 1m +.LI +R0: \fBSame\fP humans on the \fBsame\fP machine obtain the same result +.LI +R1: \fBDifferent\fP humans on the \fBsame\fP machine obtain the same result +.LI +R2: \fBDifferent\fP humans on a \fBdifferent\fP machine obtain same result +.LE +.P +Garlic provides 2 types of properties: for software and for experimental +results: +.BL 1m +.LI +Software is R2: you can get the exact same software by any one, in any +machine +.LI +Experimental results are R1: you cannot change the machine MN4 (yet) +.LE +.P +Same experimental result means that the mean of your results is in the confidence +interval of our results \fBand the relative std is < 1%\fP. diff --git a/garlic/doc/slides/Makefile b/garlic/doc/slides/Makefile index 748666a..5dfe6b1 100644 --- a/garlic/doc/slides/Makefile +++ b/garlic/doc/slides/Makefile @@ -1,8 +1,29 @@ -all: 2.pdf Makefile +GENFIG=scaling-region.svg.tk.pdf \ + sat.png.tk.pdf \ + scalability.svg.tk.pdf +GENPDF=2.pdf 3.pdf -%.pdf: %.mm - groff -Tpdf -t -p -P-p12c,16c -mm $< > $@ +all: $(GENPDF) + +keep_figs: $(GENFIG) + +%.svg.pdf: %.svg Makefile + inkscape $< --export-pdf=$@ + +%.png.pdf: %.png Makefile + gm convert $< -density 30 $@ + +%.tk.pdf: %.pdf Makefile + pdftk $< output $@ + +%.pdf: %.mm $(GENFIG) + groff -Tpdf -e -t -p -P-p12c,16c -mm $< > $@ -killall -HUP mupdf watch: while [ 1 ]; do inotifywait -e modify *; make; done + +.PRECIOUS: *.svg.pdf *.tk.pdf + +clean: + rm -f $(GENFIG) $(GENPDF) diff --git a/garlic/doc/slides/overview.svg b/garlic/doc/slides/overview.svg new file mode 100644 index 0000000..e36e047 --- /dev/null +++ b/garlic/doc/slides/overview.svg @@ -0,0 +1,479 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + Garlic overview + bscpkgs + + Isolation + Apps + Postprocess + Replicable + + + + + + + + + + + + + + + + + + Filesystem isolation ensures the appsalways use the same software libraries + Zero human intervention, all datapostprocessing scripts are included + Different team, same results onthe same system (ACM) + Repository with BSC and custompackages + nix + Backwards tracking + Every result is hashed by the softwareused to generate it (datasets, plots ...) + Reproducible builds from source usingthe nix package manager + Several benchmark programs withmultiple programming models + nixpkgs + Large repository of common packages,maintaned by the community + Reproducible + Different team, same results ona different system (ACM). + Is a complete benchmark framework(green = not mature yet) + + diff --git a/garlic/doc/slides/sat.png b/garlic/doc/slides/sat.png new file mode 100644 index 0000000000000000000000000000000000000000..bca6bed66d6e30a8ea0b5814d4d1a85e5df78e05 GIT binary patch literal 79137 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�%T5W#Kcz)9sn!JTGo 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 LkEmOqZ5R4qELF2% literal 0 HcmV?d00001 diff --git a/garlic/doc/slides/scalability.svg b/garlic/doc/slides/scalability.svg new file mode 100644 index 0000000..19fb326 --- /dev/null +++ b/garlic/doc/slides/scalability.svg @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + Efficiency + Nodes: log(n) + + + Too small + OmpSs-2 scale bad + OpenMP scale bad + + + + We can explain this difference + + + diff --git a/garlic/doc/slides/scaling-region.svg b/garlic/doc/slides/scaling-region.svg new file mode 100644 index 0000000..3cb2857 --- /dev/null +++ b/garlic/doc/slides/scaling-region.svg @@ -0,0 +1,806 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + Problemsize: log(N) + Nodes: log(n) + + Constant workper CPU + + + OpenMPsat. limit + OmpSs-2sat. limit + + Too small + + ENOMEM + + + + + + + + + + + + + + + + + + + + + + + + + + + + Strong + A + B + C + + + + + Weak + + + + + + + Saturation + OpenMP scale bad + OmpSs-2 scale bad + ENOTIME + + + Saturationzone + + + + + 1 task/CPUlimit + + +