Commit f496c6bf authored by Charles Bouillaguet's avatar Charles Bouillaguet
Browse files

slides

parent 8af46ee1
*.aux
*.log
*.out
_minted*
*.bbl
*.blg
*.vrb
*.nav
*.snm
*.toc
# HPC
Compile the poly with "pdflatex -shell-escape"
Compile the slides with "xelatex -shell-escape"
@inproceedings{MichaelS96,
author = {Maged M. Michael and
Michael L. Scott},
editor = {James E. Burns and
Yoram Moses},
title = {Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue
Algorithms},
booktitle = {Proceedings of the Fifteenth Annual {ACM} Symposium on Principles
of Distributed Computing, Philadelphia, Pennsylvania, USA, May 23-26,
1996},
pages = {267--275},
publisher = {{ACM}},
year = {1996},
url = {https://doi.org/10.1145/248052.248106},
doi = {10.1145/248052.248106},
timestamp = {Wed, 14 Nov 2018 10:51:56 +0100},
biburl = {https://dblp.org/rec/conf/podc/MichaelS96.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{DesnoyersMSDW12,
author = {Mathieu Desnoyers and
Paul E. McKenney and
Alan S. Stern and
Michel R. Dagenais and
Jonathan Walpole},
title = {User-Level Implementations of Read-Copy Update},
journal = {{IEEE} Trans. Parallel Distributed Syst.},
volume = {23},
number = {2},
pages = {375--382},
year = {2012},
url = {https://doi.org/10.1109/TPDS.2011.159},
doi = {10.1109/TPDS.2011.159},
timestamp = {Fri, 02 Oct 2020 14:41:05 +0200},
biburl = {https://dblp.org/rec/journals/tpds/DesnoyersMSDW12.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@misc{Maranget12,
author = {Luc Maranget and Susmit Sarkar and Peter Sewell},
title = {A Tutorial Introduction to the {ARM} and {POWER} Relaxed Memory Models},
year = 2012,
note = {Available online},
}
@inproceedings{LahavGV16,
author = {Ori Lahav and
Nick Giannarakis and
Viktor Vafeiadis},
editor = {Rastislav Bod{\'{\i}}k and
Rupak Majumdar},
title = {Taming release-acquire consistency},
booktitle = {Proceedings of the 43rd Annual {ACM} {SIGPLAN-SIGACT} Symposium on
Principles of Programming Languages, {POPL} 2016, St. Petersburg,
FL, USA, January 20 - 22, 2016},
pages = {649--662},
publisher = {{ACM}},
year = {2016},
url = {https://doi.org/10.1145/2837614.2837643},
doi = {10.1145/2837614.2837643},
timestamp = {Tue, 06 Nov 2018 11:07:43 +0100},
biburl = {https://dblp.org/rec/conf/popl/LahavGV16.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{LahavVKHD17,
author = {Ori Lahav and
Viktor Vafeiadis and
Jeehoon Kang and
Chung{-}Kil Hur and
Derek Dreyer},
editor = {Albert Cohen and
Martin T. Vechev},
title = {Repairing sequential consistency in {C/C++11}},
booktitle = {Proceedings of the 38th {ACM} {SIGPLAN} Conference on Programming
Language Design and Implementation, {PLDI} 2017, Barcelona, Spain,
June 18-23, 2017},
pages = {618--632},
publisher = {{ACM}},
year = {2017},
url = {https://doi.org/10.1145/3062341.3062352},
doi = {10.1145/3062341.3062352},
timestamp = {Fri, 27 Dec 2019 21:21:30 +0100},
biburl = {https://dblp.org/rec/conf/pldi/LahavVKHD17.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{Peterson81,
title = {Myths about the mutual exclusion problem},
journal = {Information Processing Letters},
volume = {12},
number = {3},
pages = {115-116},
year = {1981},
issn = {0020-0190},
doi = {https://doi.org/10.1016/0020-0190(81)90106-X},
url = {https://www.sciencedirect.com/science/article/pii/002001908190106X},
author = {G.L. Peterson},
keywords = {Parallelism, mutual exclusion}
}
@article{wulf1995hitting,
title={Hitting the memory wall: implications of the obvious},
author={Wulf, Wm A and McKee, Sally A},
journal={ACM SIGARCH computer architecture news},
volume={23},
number={1},
pages={20--24},
year={1995},
publisher={ACM}
}
@BOOK{Knuth,
author = "Donald E. Knuth",
title = "Searching and sorting",
volume = 1,
series = "The Art of Computer Programming",
publisher = "Addison-Wesley",
address = "Reading, Massachusetts",
edition = "Second",
month = "10~" # jan,
year = "1998",
note = "This is a full BOOK entry",
}
@ARTICLE{McCalpin1995,
author = {John D. McCalpin},
title = {Memory Bandwidth and Machine Balance in Current High Performance
Computers},
journal = {IEEE Computer Society Technical Committee on Computer Architecture
(TCCA) Newsletter},
year = {1995},
pages = {19--25},
month = dec,
abstract = {The ratio of cpu speed to memory speed in current high-performance
computers is growing rapidly, with significant implications for the
design and implementation of algorithms in scientific computing.
I present the results of a broad survey of memory bandwidth and machine
balance for a large variety of current computers, including uniprocessors,
vector processors, shared-memory systems, and districuted-memory
systems. The results are analyzed in terms of the sustainable data
transfer rates for uncached unit-stride vector operation for each
machine, and for each class.},
pdf = {http://tab.computer.org/tcca/NEWS/DEC95/dec95_mccalpin.ps}
}
@inproceedings{VogeleerMJC13,
author = {Karel De Vogeleer and
G{\'{e}}rard Memmi and
Pierre Jouvelot and
Fabien Coelho},
title = {The Energy/Frequency Convexity Rule: Modeling and Experimental Validation
on Mobile Devices},
booktitle = {Parallel Processing and Applied Mathematics - 10th International Conference,
{PPAM} 2013, Warsaw, Poland, September 8-11, 2013, Revised Selected
Papers, Part {I}},
pages = {793--803},
year = {2013},
crossref = {DBLP:conf/ppam/2013-1},
url = {https://doi.org/10.1007/978-3-642-55224-3\_74},
doi = {10.1007/978-3-642-55224-3\_74},
timestamp = {Tue, 14 May 2019 10:00:45 +0200},
biburl = {https://dblp.org/rec/bib/conf/ppam/VogeleerMJC13},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@proceedings{DBLP:conf/ppam/2013-1,
editor = {Roman Wyrzykowski and
Jack J. Dongarra and
Konrad Karczewski and
Jerzy Wasniewski},
title = {Parallel Processing and Applied Mathematics - 10th International Conference,
{PPAM} 2013, Warsaw, Poland, September 8-11, 2013, Revised Selected
Papers, Part {I}},
series = {Lecture Notes in Computer Science},
volume = {8384},
publisher = {Springer},
year = {2014},
url = {https://doi.org/10.1007/978-3-642-55224-3},
doi = {10.1007/978-3-642-55224-3},
isbn = {978-3-642-55223-6},
timestamp = {Tue, 14 May 2019 10:00:45 +0200},
biburl = {https://dblp.org/rec/bib/conf/ppam/2013-1},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{LeeWACSSA14,
author = {Yunsup Lee and
Andrew Waterman and
Rimas Avizienis and
Henry Cook and
Chen Sun and
Vladimir Stojanovic and
Krste Asanovic},
title = {A 45nm 1.3GHz 16.7 double-precision {GFLOPS/W} {RISC-V} processor
with vector accelerators},
booktitle = {{ESSCIRC} 2014 - 40th European Solid State Circuits Conference, Venice
Lido, Italy, September 22-26, 2014},
pages = {199--202},
year = {2014},
crossref = {DBLP:conf/esscirc/2014},
url = {https://doi.org/10.1109/ESSCIRC.2014.6942056},
doi = {10.1109/ESSCIRC.2014.6942056},
timestamp = {Fri, 26 May 2017 00:50:09 +0200},
biburl = {https://dblp.org/rec/bib/conf/esscirc/LeeWACSSA14},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@proceedings{DBLP:conf/esscirc/2014,
title = {{ESSCIRC} 2014 - 40th European Solid State Circuits Conference, Venice
Lido, Italy, September 22-26, 2014},
publisher = {{IEEE}},
year = {2014},
url = {http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=6932855},
isbn = {978-1-4799-5694-4},
timestamp = {Fri, 09 Jan 2015 12:43:09 +0100},
biburl = {https://dblp.org/rec/bib/conf/esscirc/2014},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{ThompsonK77,
author = {Thompson, C. D. and Kung, H. T.},
title = {Sorting on a Mesh-connected Parallel Computer},
journal = {Commun. ACM},
issue_date = {April 1977},
volume = {20},
number = {4},
month = apr,
year = {1977},
issn = {0001-0782},
pages = {263--271},
numpages = {9},
url = {http://doi.acm.org/10.1145/359461.359481},
doi = {10.1145/359461.359481},
acmid = {359481},
publisher = {ACM},
address = {New York, NY, USA},
keywords = {parallel computer, parallel merge, parallel sorting, perfect shuffle, processor interconnection pattern, routing and comparison steps},
}
@inproceedings{BacherBHL18,
author = {Axel Bacher and
Olivier Bodini and
Alexandros Hollender and
J{\'{e}}r{\'{e}}mie O. Lumbroso},
title = {MergeShuffle: a very fast, parallel random permutation algorithm},
booktitle = {Proceedings of the 11th International Conference on Random and Exhaustive
Generation of Combinatorial Structures, GASCom 2018, Athens, Greece,
June 18-20, 2018.},
pages = {43--52},
year = {2018},
crossref = {DBLP:conf/gascom/2018},
url = {http://ceur-ws.org/Vol-2113/paper3.pdf},
timestamp = {Tue, 28 May 2019 16:23:49 +0200},
biburl = {https://dblp.org/rec/bib/conf/gascom/BacherBHL18},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@proceedings{DBLP:conf/gascom/2018,
editor = {Luca Ferrari and
Malvina Vamvakari},
title = {Proceedings of the 11th International Conference on Random and Exhaustive
Generation of Combinatorial Structures, GASCom 2018, Athens, Greece,
June 18-20, 2018},
series = {{CEUR} Workshop Proceedings},
volume = {2113},
publisher = {CEUR-WS.org},
year = {2018},
url = {http://ceur-ws.org/Vol-2113},
urn = {urn:nbn:de:0074-2113-0},
timestamp = {Tue, 28 May 2019 16:23:49 +0200},
biburl = {https://dblp.org/rec/bib/conf/gascom/2018},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{Lamport79,
author = {Leslie Lamport},
title = {How to Make a Multiprocessor Computer That Correctly Executes Multiprocess
Programs},
journal = {{IEEE} Trans. Computers},
volume = {28},
number = {9},
pages = {690--691},
year = {1979},
url = {https://doi.org/10.1109/TC.1979.1675439},
doi = {10.1109/TC.1979.1675439},
timestamp = {Wed, 14 Nov 2018 10:48:33 +0100},
biburl = {https://dblp.org/rec/bib/journals/tc/Lamport79},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{Lipton1988PramAS,
title={Pram: a scalable shared memory},
author={Richard J. Lipton and Jonathan S. Sandberg},
year={1988}
}
@inproceedings{ChazelleM81,
author = {Bernard Chazelle and
Louis Monier},
title = {A Model of Computation for {VLSI} with Related Complexity Results},
booktitle = {Proceedings of the 13th Annual {ACM} Symposium on Theory of Computing,
May 11-13, 1981, Milwaukee, Wisconsin, {USA}},
pages = {318--325},
year = {1981},
crossref = {DBLP:conf/stoc/STOC13},
url = {https://doi.org/10.1145/800076.802485},
doi = {10.1145/800076.802485},
timestamp = {Tue, 06 Nov 2018 11:07:04 +0100},
biburl = {https://dblp.org/rec/bib/conf/stoc/ChazelleM81},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@proceedings{DBLP:conf/stoc/STOC13,
title = {Proceedings of the 13th Annual {ACM} Symposium on Theory of Computing,
May 11-13, 1981, Milwaukee, Wisconsin, {USA}},
publisher = {{ACM}},
year = {1981},
timestamp = {Mon, 17 Oct 2011 15:55:10 +0200},
biburl = {https://dblp.org/rec/bib/conf/stoc/STOC13},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@inproceedings{BrentK80,
author = {Brent, R. P. and Kung, H. T.},
title = {The Chip Complexity of Binary Arithmetic},
booktitle = {Proceedings of the Twelfth Annual ACM Symposium on Theory of Computing},
series = {STOC '80},
year = {1980},
isbn = {0-89791-017-6},
location = {Los Angeles, California, USA},
pages = {190--200},
numpages = {11},
url = {http://doi.acm.org/10.1145/800141.804666},
doi = {10.1145/800141.804666},
acmid = {804666},
publisher = {ACM},
address = {New York, NY, USA},
}
@article{Vuillemin83,
author = {Vuillemin, J.},
title = {A Combinatorial Limit to the Computing Power of VLSI Circuits},
journal = {IEEE Trans. Comput.},
issue_date = {March 1983},
volume = {32},
number = {3},
month = mar,
year = {1983},
issn = {0018-9340},
pages = {294--300},
numpages = {7},
url = {https://doi.org/10.1109/TC.1983.1676221},
doi = {10.1109/TC.1983.1676221},
acmid = {1309923},
publisher = {IEEE Computer Society},
address = {Washington, DC, USA},
keywords = {Area-time tradeoff, VLSI computations, VLSI computations, Area-time tradeoff, computation models, lower bounds, transitive Boolean functions, computation models, lower bounds, transitive Boolean functions},
}
@inproceedings{Thompson79,
author = {Thompson, C. D.},
title = {Area-time Complexity for VLSI},
booktitle = {Proceedings of the Eleventh Annual ACM Symposium on Theory of Computing},
series = {STOC '79},
year = {1979},
location = {Atlanta, Georgia, USA},
pages = {81--88},
numpages = {8},
url = {http://doi.acm.org/10.1145/800135.804401},
doi = {10.1145/800135.804401},
acmid = {804401},
publisher = {ACM},
address = {New York, NY, USA},
}
@article{Savage81,
title = "Area—time tradeoffs for matrix multiplication and related problems in VLSI models",
journal = "Journal of Computer and System Sciences",
volume = "22",
number = "2",
pages = "230 - 242",
year = "1981",
issn = "0022-0000",
doi = "https://doi.org/10.1016/0022-0000(81)90029-5",
url = "http://www.sciencedirect.com/science/article/pii/0022000081900295",
author = "John E. Savage",
abstract = "Two models for very-large scale integrated (VLSI) semiconductor circuits are considered that have been developed by Thompson and by Brent and Kung. The models permit the study of tradeoffs between chip area and computation time. We show that these tradeoffs can be derived from a single common complexity measure of a problem. We derive bounds on this measure for matrix multiplication under weak assumptions about the operations of addition and multiplication. The assumptions are such that the bounds can be applied directly to transitive closure and matrix inversion."
}
@article{Wiener04,
author = {Michael J. Wiener},
title = {The Full Cost of Cryptanalytic Attacks},
journal = {J. Cryptology},
volume = {17},
number = {2},
pages = {105--124},
year = {2004},
url = {https://doi.org/10.1007/s00145-003-0213-5},
doi = {10.1007/s00145-003-0213-5},
timestamp = {Thu, 18 May 2017 09:52:08 +0200},
biburl = {https://dblp.org/rec/bib/journals/joc/Wiener04},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@ARTICLE{Tomasulo,
author={R. M. {Tomasulo}},
journal={IBM Journal of Research and Development},
title={An Efficient Algorithm for Exploiting Multiple Arithmetic Units},
year={1967},
volume={11},
number={1},
pages={25-33},
keywords={},
doi={10.1147/rd.111.0025},
ISSN={0018-8646},
month={Jan},}
@techreport{time-lock-puzzles,
author = {Rivest, R. L. and Shamir, A. and Wagner, D. A.},
title = {Time-Lock Puzzles and Timed-Release Crypto},
year = 1996,
institution = {Massachusetts Institute of Technology},
publisher = {Massachusetts Institute of Technology},
address = {USA}
}
@inproceedings{DRAM-errors-google,
author = {Bianca Schroeder and
Eduardo Pinheiro and
Wolf{-}Dietrich Weber},
editor = {John R. Douceur and
Albert G. Greenberg and
Thomas Bonald and
Jason Nieh},
title = {{DRAM} errors in the wild: a large-scale field study},
booktitle = {Proceedings of the Eleventh International Joint Conference on Measurement
and Modeling of Computer Systems, SIGMETRICS/Performance 2009, Seattle,
WA, USA, June 15-19, 2009},
pages = {193--204},
publisher = {{ACM}},
year = {2009},
url = {https://doi.org/10.1145/1555349.1555372},
doi = {10.1145/1555349.1555372},
timestamp = {Sun, 02 Jun 2019 21:10:35 +0200},
biburl = {https://dblp.org/rec/conf/sigmetrics/SchroederPW09.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{WilliamsWP09,
author = {Samuel Williams and
Andrew Waterman and
David A. Patterson},
title = {Roofline: an insightful visual performance model for multicore architectures},
journal = {Commun. {ACM}},
volume = {52},
number = {4},
pages = {65--76},
year = {2009},
url = {https://doi.org/10.1145/1498765.1498785},
doi = {10.1145/1498765.1498785},
timestamp = {Tue, 06 Nov 2018 12:51:38 +0100},
biburl = {https://dblp.org/rec/journals/cacm/WilliamsWP09.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
@article{PadegsMSB88,
author = {Andris Padegs and
Brian B. Moore and
Ronald M. Smith and
Werner Buchholz},
title = {The {IBM} System/370 Vector Architecture: Design Considerations},
journal = {{IEEE} Trans. Computers},
volume = {37},
number = {5},
pages = {509--520},
year = {1988},
url = {https://doi.org/10.1109/12.4602},
doi = {10.1109/12.4602},
timestamp = {Sat, 20 May 2017 00:24:37 +0200},
biburl = {https://dblp.org/rec/journals/tc/PadegsMSB88.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
\documentclass{book}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amsthm,amssymb}
%\usepackage{arabtex}
%\usepackage{epigraph}
\usepackage{manfnt}
\usepackage{parskip}
\usepackage{minted}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{cellspace}
%\usepackage{textcomp}
\usepackage{MnSymbol}
\usepackage[unicode]{hyperref}
\usepackage{epigraph}
\usepackage{multirow}
\usepackage[]{xcolor}
\hypersetup{pdftitle={Introduction au Calcul Haute Performance}}
\hypersetup{pdfauthor={Charles Bouillaguet}}
\usepackage[a4paper,vmargin=2cm,hmargin=2cm]{geometry}
\usepackage{textcomp}
\usepackage{url}
\usepackage{framed}
\usepackage{enumerate}
\usepackage{xspace}
\usepackage{algpseudocode}
\usepackage{parskip}
\usepackage{eurosym}
\usepackage{fancyhdr}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usetikzlibrary{decorations.pathreplacing}
\usetikzlibrary{patterns}
\usetikzlibrary{automata}
\usetikzlibrary{calc}
\newcommand{\important}[1]{\emph{#1}}
\newcommand{\anglais}[1]{\emph{#1}}
\newcommand{\marque}[1]{\textsf{#1}}
\newcommand{\Read}{\textsc{Read}\xspace}
\newcommand{\Write}{\textsc{Write}\xspace}
\pagestyle{empty}
\renewcommand{\chaptermark}[1]{}
\newtheorem{theorem}{Théorème}
\newtheorem{lemma}{Lemme}
\newtheorem{property}{Propriété}
\newtheorem{corollary}{Corollaire}
% probas
\newcommand{\esp}[1]{\mathbb{E} \left[ #1 \right] }
\newcommand{\prob}[2][]{\mathbb{P}_{#1} \left[ #2 \right] }
\newcommand{\condprob}[3][]{\mathbb{P}_{#1} \bigl[\bigl. #2 ~\bigr|~ #3 \bigr] }
\newcommand{\condesp}[2]{\mathbb{E} \bigl[\bigl. #1 ~\bigr|~ #2 \bigr] }
\newcommand{\Esp}[1]{\mathbb{E} \biggl[ #1 \biggr] }
\newcommand{\Prob}[1]{\mathbb{P} \biggl[ #1 \biggr] }
\newcommand{\card}[1]{ \bigl| #1 \bigr| }
\newcommand{\bits}{\{0, 1\}}
\newcommand{\bigO}[1]{\ensuremath{\mathcal{O}\left( #1 \right)} }
\newcommand{\bigOmega}[1]{\ensuremath{\Omega\left( #1 \right)} }
\newcounter{defno}
\newcounter{gameno}
\makeatletter
\newenvironment{definition}[1]{\stepcounter{defno}\textbf{Définition \arabic{defno} : #1}%
\let\emph\textbf\def\@currentlabel{\arabic{defno}}%
\def\FrameCommand{\hspace{10pt}\vrule\hspace{10pt}}%
\MakeFramed {\advance\hsize-\width \FrameRestore}}%
{\endMakeFramed}
\newenvironment{game}[1]{\stepcounter{gameno}\textbf{Jeu \arabic{gameno} (#1)}%
\let\emph\textbf\def\@currentlabel{\arabic{gameno}}%
\def\FrameCommand{\hspace{10pt}\vrule\hspace{10pt}}%
\MakeFramed {\advance\hsize-\width \FrameRestore}}%
{\endMakeFramed}
\newenvironment{myproof}{\goodbreak\textbf{Démonstration}%
\def\FrameCommand{\hspace{10pt}\vrule\hspace{10pt}}%
\MakeFramed {\advance\hsize-\width \FrameRestore}}%
{\endMakeFramed}
\newenvironment{myexample}{\goodbreak\textbf{Exemple}%
\def\FrameCommand{\hspace{10pt}\vrule\hspace{10pt}}%
\MakeFramed {\advance\hsize-\width \FrameRestore}}%
{\endMakeFramed}