Skip to content

Commit

Permalink
Link compilers correctness, microarchitectural channels; refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
MattPD committed Oct 14, 2017
1 parent d592809 commit bdafe12
Show file tree
Hide file tree
Showing 7 changed files with 96 additions and 73 deletions.
15 changes: 9 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,18 @@ Hopefully some will find this of some use and interest, too :-)
## Categories

- Assembly
- [Assembly (ARM)](assembly.arm.md)
- [Assembly (RISC-V)](assembly.riscv.md)
- [Assembly (x86)](assembly.x86.md)
- [ARM](assembly.arm.md)
- [RISC-V](assembly.riscv.md)
- [x86](assembly.x86.md)
- [Atomics, lock free, memory model](atomics.lockfree.memory_model.md)
- [Communities](communities.md)
- [Compilers](compilers.md)
- [correctness](compilers.correctness.md)
- [Computer architecture](comparch.md)
- [Computer architecture: FPGA](comparch.fpga.md)
- [Computer architecture: GPU](comparch.gpu.md)
- [Learning and Teaching](learning_teaching.md)
- [FPGA](comparch.fpga.md)
- [GPU](comparch.gpu.md)
- microarchitecture
- [channels](comparch.micro.channels.md)
- [Learning and teaching](learning_teaching.md)
- [Performance tools](performance.tools.md)
- [Standardization](std.md)
130 changes: 73 additions & 57 deletions atomics.lockfree.memory_model.md
Original file line number Diff line number Diff line change
Expand Up @@ -306,15 +306,22 @@ A benchmark to compare synchronization techniques for multicore programming

# Talks, Videos

HiPEAC 2017: Sarita Adve - Coherence, Consistency, & Déjà vu: Memory Hierarchies in the Era of Specialization
Slides: http://rsim.cs.illinois.edu/Talks/17-hipeac.pdf
Video: https://www.youtube.com/watch?v=kjFjL_vTUWU
## 2017

* CppCon 2017: Fedor Pikus “C++ atomics, from basic to advanced. What do they really do?” - https://youtu.be/ZQFzMfHIxng
* HiPEAC 2017: Sarita Adve - Coherence, Consistency, & Déjà vu: Memory Hierarchies in the Era of Specialization
+ Slides: http://rsim.cs.illinois.edu/Talks/17-hipeac.pdf
+ Video: https://www.youtube.com/watch?v=kjFjL_vTUWU

## 2016

CppCon 2016: Fedor Pikus - The speed of concurrency (is lock-free faster?)
Slides: https://github.com/CppCon/CppCon2016/tree/master/Presentations/The%20speed%20of%20concurrency%20%28is%20lock-free%20faster%29
Video: https://channel9.msdn.com/Events/CPP/CppCon-2016/CppCon-2016-Fedor-Pikus-The-speed-of-concurrency-is-lock-free-faster
Video: https://www.youtube.com/watch?v=9hJkWwHDDxs

## 2015

ACCU 2015: Atomic Counters or A Lesson on Performance and Hardware Concurrency
Info: http://accu.org/index.php/conferences/accu_conference_2015/accu2015_sessions#atomic_counters_or_a_lesson_on_performance_and_hardware_concurrency
Slides: http://accu.org/content/conf2015/DetlefVollmann-Atomic%20Counters.pdf
Expand All @@ -331,33 +338,38 @@ Slides: http://accu.org/content/conf2015/HubertMatthews-Multithreading%20Dos%20A
Video: http://www.infoq.com/presentations/multithreading
Note: more on atomics & memory ordering compared to the NDC 2014 version.

Atmosphere 2014: Lockless programming - Tomasz Baranski
https://www.youtube.com/watch?v=JUeaCfhwvHE
CppCon 2015: Fedor Pikus "Live Lock-Free or Deadlock (Practical Lock-free Programming)"
Part 1: https://www.youtube.com/watch?v=lVBvHbJsg5Y
Part 2: https://www.youtube.com/watch?v=1obZeHnAwz4

Black Hat USA 2013 - Shattering Illusions in Lock-Free Worlds: Compiler/Hardware Behaviors OSes/VMs
https://www.youtube.com/watch?v=wYFADkO-ZsA
CppCon 2015: Michael Wong "C++11/14/17 Atomics the Deep dive: the gory details, before the story consumes you!"
https://www.youtube.com/watch?v=DS2m7T6NKZQ

BoostCon 2010: Tony Van Eerd: The Basics of Lock-free Programming
https://www.youtube.com/watch?v=LbOB_moUa94
CppCon 2015: Paul E. McKenney "C++ Atomics: The Sad Story of memory_order_consume: A Happy Ending At Last?"
https://www.youtube.com/watch?v=ZrNQKpOypqU

BoostCon 2011: Tony Van Eerd: Lockfree Programming Part 2: Data Structures
https://www.youtube.com/watch?v=O4Jdq4PtfPA
(Part 2: continuing from where BoostCon 2010 left off)
Slides: https://github.com/boostcon/2011_presentations/raw/master/wed/lockfree_2011_slides.pdf
CppCon 2015: Pedro Ramalhete "How to make your data structures wait-free for reads"
https://www.youtube.com/watch?v=FtaD0maxwec

C++ and Beyond 2012: atomic Weapons: The C++ Memory Model and Modern Hardware
https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-1-of-2
https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-2-of-2
CppCon 2015: Timur Doumler “C++ in the Audio Industry”
https://www.youtube.com/watch?v=boPEO2auJj4

C++Now! 2012 Tony Van Eerd: Don't Try This at Work -- Low Level Threading with C++11
https://www.youtube.com/watch?v=b9wWC5uSqLE&list=PL_AKIMJc4roWXECUOVFsSTn6zs-145shM&index=20
ECOOP 2015: Brijesh Dongol - "Defining Correctness Conditions for Concurrent Objects in Multicore Architectures"
https://www.youtube.com/watch?v=PDQXpKE_Kao

C++Now! 2013 Tony Van Eerd: Low Level Threading with C++11
https://www.youtube.com/watch?v=dKLAwNaNvAY
LLVM Developers' Meeting 2015: European LLVM Conference
Keynote: "C Concurrency: Still Tricky", Francesco Zappa Nardelli
Video HD: http://llvm.org/devmtg/2015-04/Videos/HD/Day%201/Francesco%20Zappa%20Nardelli%20(keynote).mp4
Video SD: http://llvm.org/devmtg/2015-04/Videos/SD/Day%201/Francesco%20Zappa%20Nardelli%20(keynote)_1.mp4
Slides: http://llvm.org/devmtg/2015-04/slides/CConcurrency_EuroLLVM2015.pdf

C++ Wroclaw 0x03: Volodymyr Volkov - std::atomic explained
http://www.cppwroclaw.pl/dokuwiki/spotkania/003/info
https://vimeo.com/80599339
NDC 2015: Chris Shore - Memory Access Ordering in Complex Embedded Systems
https://vimeo.com/131637104

## 2014

Atmosphere 2014: Lockless programming - Tomasz Baranski
https://www.youtube.com/watch?v=JUeaCfhwvHE

CppCon 2014: Herb Sutter, "Lock-Free Programming (or, Juggling Razor Blades)"
http://herbsutter.com/2014/10/18/my-cppcon-talks-2/
Expand All @@ -375,44 +387,12 @@ CppCon 2014: Tony Van Eerd, "Lock-free by Example"
https://www.youtube.com/watch?v=Xf35TLFKiO8
https://channel9.msdn.com/Events/CPP/C-PP-Con-2014/Lock-free-by-Example

CppCon 2015: Fedor Pikus "Live Lock-Free or Deadlock (Practical Lock-free Programming)"
Part 1: https://www.youtube.com/watch?v=lVBvHbJsg5Y
Part 2: https://www.youtube.com/watch?v=1obZeHnAwz4

CppCon 2015: Michael Wong "C++11/14/17 Atomics the Deep dive: the gory details, before the story consumes you!"
https://www.youtube.com/watch?v=DS2m7T6NKZQ

CppCon 2015: Paul E. McKenney "C++ Atomics: The Sad Story of memory_order_consume: A Happy Ending At Last?"
https://www.youtube.com/watch?v=ZrNQKpOypqU

CppCon 2015: Pedro Ramalhete "How to make your data structures wait-free for reads"
https://www.youtube.com/watch?v=FtaD0maxwec

CppCon 2015: Timur Doumler “C++ in the Audio Industry”
https://www.youtube.com/watch?v=boPEO2auJj4

ECOOP 2015: Brijesh Dongol - "Defining Correctness Conditions for Concurrent Objects in Multicore Architectures"
https://www.youtube.com/watch?v=PDQXpKE_Kao

GoingNative 2012: Hans Boehm, "Threads and Shared Variables in C++11"
https://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Threads-and-Shared-Variables-in-C-11

LLVM Developers' Meeting 2014: Blowing up the (C++11) atomic barrier - Optimizing C++11 atomics in LLVM
Slides: http://llvm.org/devmtg/2014-10/Slides/Morisset-AtomicsPresentation.pdf
Video (Google Tech Talk): https://www.youtube.com/watch?v=hE4HW1Y2Dao
Video (720p): http://llvm.org/devmtg/2014-10/Videos/Blowing%20up%20the%20Atomic%20Barrier-720.mov
Video (360p): http://llvm.org/devmtg/2014-10/Videos/Blowing%20up%20the%20Atomic%20Barrier-360.mov

LLVM Developers' Meeting 2015: European LLVM Conference
Keynote: "C Concurrency: Still Tricky", Francesco Zappa Nardelli
Video HD: http://llvm.org/devmtg/2015-04/Videos/HD/Day%201/Francesco%20Zappa%20Nardelli%20(keynote).mp4
Video SD: http://llvm.org/devmtg/2015-04/Videos/SD/Day%201/Francesco%20Zappa%20Nardelli%20(keynote)_1.mp4
Slides: http://llvm.org/devmtg/2015-04/slides/CConcurrency_EuroLLVM2015.pdf

Hans-J. Boehm: C++11 Threads Surprises
Slides: https://parasol.tamu.edu/bjarnefest/program/boehm-slides.PDFs
Video (slides not visible): https://www.youtube.com/watch?v=UWx4EA2uBzs / https://www.youtube.com/watch?v=TnCWTPuWzIk

Meeting C++ 2014: The C++ Memory Model - Valentin Ziegler
https://www.youtube.com/watch?v=gpsz8sc6mNU

Expand All @@ -425,10 +405,46 @@ https://www.youtube.com/watch?v=BiLX7n_z9s4
https://github.com/meekrosoft/cppmemmodel
Slides: https://meekrosoft.github.io/cppmemmodel/

NDC 2015: Chris Shore - Memory Access Ordering in Complex Embedded Systems
https://vimeo.com/131637104
## 2013

Black Hat USA 2013 - Shattering Illusions in Lock-Free Worlds: Compiler/Hardware Behaviors OSes/VMs
https://www.youtube.com/watch?v=wYFADkO-ZsA

C++Now! 2013 Tony Van Eerd: Low Level Threading with C++11
https://www.youtube.com/watch?v=dKLAwNaNvAY

C++ Wroclaw 0x03: Volodymyr Volkov - std::atomic explained, 2013
https://vimeo.com/80599339

SOSP 2013: Everything you always wanted to know about synchronization but were afraid to ask
Video: https://www.youtube.com/watch?v=Dfagg__PuKw
Article: http://sigops.org/sosp/sosp13/papers/p33-david.pdf
Tudor David, Rachid Guerraoui, and Vasileios Trigonakis. "Everything you always wanted to know about synchronization but were afraid to ask." Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles. ACM, 2013, pp. 33-48.

## 2012

C++ and Beyond 2012: atomic Weapons: The C++ Memory Model and Modern Hardware
https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-1-of-2
https://channel9.msdn.com/Shows/Going+Deep/Cpp-and-Beyond-2012-Herb-Sutter-atomic-Weapons-2-of-2

C++Now! 2012 Tony Van Eerd: Don't Try This at Work -- Low Level Threading with C++11
https://www.youtube.com/watch?v=b9wWC5uSqLE&list=PL_AKIMJc4roWXECUOVFsSTn6zs-145shM&index=20

GoingNative 2012: Hans Boehm, "Threads and Shared Variables in C++11"
https://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Threads-and-Shared-Variables-in-C-11

Hans-J. Boehm: C++11 Threads Surprises, 2012
Slides: https://parasol.tamu.edu/bjarnefest/program/boehm-slides.PDFs
Video (slides not visible): https://www.youtube.com/watch?v=UWx4EA2uBzs / https://www.youtube.com/watch?v=TnCWTPuWzIk

## 2011

BoostCon 2011: Tony Van Eerd: Lockfree Programming Part 2: Data Structures
https://www.youtube.com/watch?v=O4Jdq4PtfPA
(Part 2: continuing from where BoostCon 2010 left off)
Slides: https://github.com/boostcon/2011_presentations/raw/master/wed/lockfree_2011_slides.pdf

## 2010

BoostCon 2010: Tony Van Eerd: The Basics of Lock-free Programming
https://www.youtube.com/watch?v=LbOB_moUa94
14 changes: 7 additions & 7 deletions comparch.micro.channels.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,22 @@ Note: see [Computer Architecture](comparch.md)
+ http://essay.utwente.nl/72321/
+ http://essay.utwente.nl/72321/1/Krak_MA_EEMCS.pdf
+ model of instruction execution time for the ARM Cortex-A7
* Software-based Microarchitectural Attacks - Daniel Gruss, PhD thesis, 2017
+ https://gruss.cc/files/phd_thesis.pdf
+ slides: https://gruss.cc/files/phd_defense_slides.pdf
* MASCAB: a Micro-Architectural Side-Channel Attack Bibliography - https://github.com/danpage/mascab
- YouTube playlist: https://www.youtube.com/playlist?list=PLcjiHk8Sl-KK1qY4JOzTDu095TscjcEVa
* Mastik: A Micro-Architectural Side-Channel Toolkit
+ http://cs.adelaide.edu.au/~yval/Mastik/
+ http://cryptologie.net/article/366/ches-2016-tutorial-part-1-common-criteria-certification-of-a-smartcard-a-technical-overview/
+ https://cryptologie.net/article/367/ches-2016-tutorial-part-2-micro-architectural-side-channel-attacks/
* Microarchitectural Side-Channel Attacks - CHES 2016 tutorial
+ http://cs.adelaide.edu.au/~yval/CHES16/
+ http://cs.adelaide.edu.au/~yval/CHES16/CHES16-tutorial.pptx
+ http://cs.adelaide.edu.au/~yval/CHES16/CHES16-tutorial2.pptx
+ http://www.chesworkshop.org/ches2016/presentations/CHES16-Tutorial2_1.pdf
+ http://www.chesworkshop.org/ches2016/presentations/CHES16-Tutorial2_2.pdf
+ https://cryptologie.net/article/367/ches-2016-tutorial-part-2-micro-architectural-side-channel-attacks/
* Mastik: A Micro-Architectural Side-Channel Toolkit
+ http://cs.adelaide.edu.au/~yval/Mastik/
+ http://cryptologie.net/article/366/ches-2016-tutorial-part-1-common-criteria-certification-of-a-smartcard-a-technical-overview/
+ https://cryptologie.net/article/367/ches-2016-tutorial-part-2-micro-architectural-side-channel-attacks/
* Software-based Microarchitectural Attacks - Daniel Gruss, PhD thesis, 2017
+ https://gruss.cc/files/phd_thesis.pdf
+ slides: https://gruss.cc/files/phd_defense_slides.pdf
* Survey of Microarchitectural Side and Covert Channels, Attacks, and Defenses - Jakub Szefer
+ http://eprint.iacr.org/2016/479
* Systematic Classification of Side-Channel Attacks: A Case Study for Mobile Devices - https://arxiv.org/abs/1611.03748
Expand Down
3 changes: 2 additions & 1 deletion compilers.correctness.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Note: see also [compilers](compilers.md)
* Automatic Testing of Symbolic Execution Engines via Program Generation and Differential Testing - https://srg.doc.ic.ac.uk/files/papers/symex-engine-tester-ase-17.pdf
* Detecting Missed Arithmetic Optimization in C Compilers by Differential Random Testing - http://ist.ksc.kwansei.ac.jp/~ishiura/publications/C2016-10a.pdf
* Differential Testing for Software - http://www.cs.dartmouth.edu/~mckeeman/references/DifferentialTestingForSoftware.pdf
* Evaluating the Effects of Compiler Optimizations on Mutation Testing at the Compiler IR Level - ISSRE’16 – Ottawa, Canada
* Evaluating the Effects of Compiler Optimizations on Mutation Testing at the Compiler IR Level - ISSRE’16
+ http://mir.cs.illinois.edu/farah/presentations/issre16_presentation.pdf
+ http://mir.cs.illinois.edu/marinov/publications/HaririETAL16CompilerIRMutation.pdf
+ https://www.researchgate.net/publication/311529837_Evaluating_the_Effects_of_Compiler_Optimizations_on_Mutation_Testing_at_the_Compiler_IR_Level
Expand All @@ -36,6 +36,7 @@ Note: see also [compilers](compilers.md)
+ http://lambda-the-ultimate.org/node/4241
* RandIR: Differential Testing for Embedded Compilers - https://www.cs.purdue.edu/homes/rompf/papers/ofenbeck-scala16.pdf
* Test-Case Reduction for C Compiler Bugs - https://www.cs.utah.edu/~regehr/papers/pldi12-preprint.pdf
* Testing LLVM - http://blog.regehr.org/archives/1450
* The problem with differential testing is that at least one of the compilers must get it right - http://blog.frama-c.com/index.php?post/2013/09/25/The-problem-with-differential-testing-is-that-at-least-one-of-the-compilers-must-get-it-right

## Software
Expand Down
3 changes: 3 additions & 0 deletions compilers.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,9 @@ Computer Architecture and Compilers Conference Map - http://archconfmap.com/

## 2017

* Getting started with LLVM: the TL;DR version - Diana Picus
- LinaroOrg Connect San Francisco 2017 - SFO17
- https://connect.linaro.org/resource/sfo17/sfo17-110/
* LLVM Internals #2 – Renato Golin, Peter Smith, Diana Picus, Omair Javaid, Adhemerval Zanella
- Linaro Connect Budapest 2017 - BUD17-302
- http://connect.linaro.org/resource/bud17/bud17-302/
Expand Down
2 changes: 1 addition & 1 deletion learning_teaching.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# [C++ links](README.md): Learning and Teaching
# [C++ links](README.md): Learning and teaching

Note: see also [Communities](communities.md) -- where you can learn together.

Expand Down
2 changes: 1 addition & 1 deletion performance.tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ Systems Benchmarking Crimes - Gernot Heiser - https://www.cse.unsw.edu.au/~gerno

## Profiling - Memory

* Heaptrack - A Heap Memory Profiler for Linux Syndicate content
* Heaptrack - A Heap Memory Profiler for Linux
- https://github.com/KDE/heaptrack
- http://milianw.de/blog/heaptrack-a-heap-memory-profiler-for-linux

Expand Down

0 comments on commit bdafe12

Please sign in to comment.