Skip to content

Commit 0c1b481

Browse files
first commit
0 parents commit 0c1b481

File tree

2 files changed

+122
-0
lines changed

2 files changed

+122
-0
lines changed

awesome-parallel-computing.md

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
# Awesome Parallel Computing Resources <img align="right" width="20%" src="parallel-computing.jpg">
2+
3+
A curated list of awesome parallel computing resources.
4+
Please feel free to update this page through [submitting pull requests][GitHub pull requests] or
5+
[emailing me][email me].
6+
7+
## Table of Contents
8+
9+
- [Software](#software)
10+
- [Presentations](#presentations)
11+
- [Learning Resources](#learning-resources)
12+
- [Datasets](#datasets)
13+
- [Links](#links)
14+
15+
All the lists in this page are either in alphabetical order or chronological order.
16+
17+
## Software
18+
19+
#### Programming Library
20+
- [CAF: An Open Source Implementation of the Actor Model in C++](https://github.com/actor-framework/actor-framework)
21+
- [Chapel: A Programming Language for Productive Parallel Computing on Large-scale Systems](https://chapel-lang.org/)
22+
- [Cilk Plus: C/C++ Extension for Data and Task Parallelism](https://www.cilkplus.org/)
23+
- [Cpp-Taskflow: A Modern C++ Parallel Task Programming Library](https://github.com/cpp-taskflow/cpp-taskflow)
24+
- [FastFlow: High-performance Parallel Patterns in C++](https://github.com/fastflow/fastflow)
25+
- [Galois: A C++ Library to Ease Parallel Programming with Irregular Parallelism](https://github.com/IntelligentSoftwareSystems/Galois)
26+
- [HPX: A C++ Standard Library for Concurrency and Parallelism](https://github.com/STEllAR-GROUP/hpx)
27+
- [Intel TBB: Threading Building Blocks](https://www.threadingbuildingblocks.org/)
28+
- [Kokkos: A C++ Programming Model for Writing Performance Portable Applications on HPC platforms](https://github.com/kokkos/kokkos)
29+
- [OpenMP: Multi-platform Shared-memory Parallel Programming in C/C++ and Fortran](https://www.openmp.org/)
30+
- [RaftLib: A C++ Library for Enabling Stream and Dataflow Parallel Computation](https://github.com/RaftLib/RaftLib)
31+
- [STAPL: Standard Template Adaptive Parallel Programming Library in C++](https://parasol.tamu.edu/stapl/)
32+
- [STLab: High-level Constructs for Implementing Multicore Algorithms with Minimized Contention](http://stlab.cc/libraries/concurrency/)
33+
- [Transwarp: A Header-only C++ Library for Task Concurrency](https://github.com/bloomen/transwarp)
34+
35+
36+
#### Concurrent Data Structures
37+
38+
- [Boost.Lockfree: Thread-safe and Lock-free Containers](https://github.com/boostorg/lockfree)
39+
- [ConcurrentQueue: A Fast Multi-producer Multi-consumer Lock-free Concurrent Queue in C++](https://github.com/cameron314/concurrentqueue)
40+
- [libcds: A C++ library of Concurrent Data Structures](https://github.com/khizmax/libcds)
41+
- [Parallel-Hashmap: A Header-only Very Fast and Memory-friendly Hash Map](https://github.com/greg7mdp/parallel-hashmap)
42+
- [ReaderWriterQueue: A Fast Single-producer Single-consumer Lock-free Queue in C++](https://github.com/cameron314/readerwriterqueue)
43+
- [xenium: A C++ library Providing Various Concurrent Data Structures and Reclamation Schemes](https://github.com/mpoeter/xenium)
44+
45+
#### Coroutine and Fiber
46+
47+
- [Boost.Fiber: A Framework for Userland-threads Programming and Scheduling](https://github.com/boostorg/fiber)
48+
- [cppcoro: A Library for C++ Coroutines Abstractions for the Coroutines TS](https://github.com/lewissbaker/cppcoro)
49+
- [Fiber Tasking Lib: A Library for Enabling Task-based Multi-threading using Fibers](https://github.com/RichieSams/FiberTaskingLib)
50+
- [coro-async: A lite C++ coroutine TS based networking library](https://github.com/arun11299/coro-async)
51+
52+
53+
## Presentations
54+
55+
#### Generic Parallel Computing Topics
56+
57+
- [Is Parallel Programming still Hard?](https://www.youtube.com/watch?v=YM8Xy6oKVQg) - P. McKenney, M. Michael, and M. Wong at CppCon 2017
58+
- [The Speed of Concurrency: Is Lock-free Faster?](https://www.youtube.com/watch?v=9hJkWwHDDxs) - Fedor G Pikus in CppCon 2016
59+
60+
#### Scheduling in Parallel Processing
61+
62+
- [Expressing Parallelism in C++ with Threading Building Blocks](https://www.youtube.com/watch?v=9Otq_fcUnPE) - Mike Voss at Intel Webinar 2018
63+
- [A Work-stealing Runtime for Rust](https://www.youtube.com/watch?v=4DQakkJ8XLI) - Aaron Todd in Air Mozilla 2017
64+
65+
#### Memory Model
66+
67+
- [C++11/14/17 atomics and memory model: Before the story consumes you](https://www.youtube.com/watch?v=DS2m7T6NKZQ) - Michael Wong in CppCon 2015
68+
- [The C++ Memory Model](https://www.youtube.com/watch?v=gpsz8sc6mNU) - Valentin Ziegler at C++ Meeting 2014
69+
70+
## Learning Resources
71+
72+
#### Books
73+
74+
- [C++ Concurrency in Action: Practical Multithreading](https://www.manning.com/books/c-plus-plus-concurrency-in-action) - Anthony Williams 2012
75+
- [The Art of Multiprocessor Programming](https://www.amazon.com/Art-Multiprocessor-Programming-Revised-Reprint/dp/0123973376/ref=sr_1_1?ie=UTF8&qid=1438003865&sr=8-1&keywords=maurice+herlihy) - Maurice Herlihy 2012
76+
- [Parallel Computing: Theory and Practice](http://www.cs.cmu.edu/afs/cs/academic/class/15210-f15/www/tapp.html#ch:work-stealing) - Umut A. Acar 2016
77+
78+
#### Tutorials
79+
80+
- [Parallel Computing Training Tutorials](https://hpc.llnl.gov/training/tutorials) - Lawrence Livermore National Laboratory
81+
82+
#### Research Papers
83+
84+
- [The Landscape of Parallel Computing Research: A View from Berkeley](https://www2.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-183.pdf)
85+
86+
#### Courses
87+
88+
- [CS6290 High-performance Computer Architecture](https://www.udacity.com/course/high-performance-computer-architecture--ud007) - Milos Prvulovic and Catherine Gamboa at George Tech
89+
90+
91+
## Datasets
92+
93+
- [HPEC Graph Challenge](https://graphchallenge.mit.edu/)
94+
- [PARRSEC Benchmark Suite for the Analysis of Multithreaded Programs](https://parsec.cs.princeton.edu/)
95+
96+
97+
## Links
98+
99+
#### Blogs
100+
- [1024 Cores](http://www.1024cores.net/) - Dmitry Vyukov
101+
- [Michael Wong's Standard on Parallelism and Programming Languages](https://wongmichael.com/about/) - Michael Wong
102+
- [Preshing on Programming](https://preshing.com/) - Jeff Preshing
103+
- [Sutter's Mill](https://herbsutter.com/) - Herb Sutter
104+
105+
#### Journals
106+
- [IEEE Transactions on Parallel and Distributed Systems (TPDS)](https://www.computer.org/csdl/journal/td)
107+
- [Journal of Parallel and Distributed Computing](https://www.journals.elsevier.com/journal-of-parallel-and-distributed-computing)
108+
109+
#### Conferences
110+
111+
- [ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming (PPoPP)](https://ppopp19.sigplan.org/home)
112+
- [ACM Symposium on Parallel Algorithms and Architectures (SPAA)](https://spaa.acm.org/)
113+
- [ACM/IEEE International Conference for High-performance Computing, Networking, Storage, and Analysis (SC)](https://sc19.supercomputing.org/)
114+
- [IEEE International Parallel and Distributed Processing Symposium (IPDPS)](http://www.ipdps.org/)
115+
- [International Conference on Parallel Processing (ICPP)](https://www.hpcs.cs.tsukuba.ac.jp/icpp2019/)
116+
117+
118+
* * *
119+
120+
[GitHub pull requests]: https://github.com/cpp-taskflow/cpp-taskflow/pulls
121+
[email me]: mailto:twh760812@gmail.com
122+

parallel-computing.jpg

31.6 KB
Loading

0 commit comments

Comments
 (0)