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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 Y{^*Zd$=@Ld%|VuUy85}Sb4q9e04!CrVE_OC 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 + + +