├── README.md ├── parallel-computing.jpg └── references ├── 2018-Extreme-Heterogeneity-DoE.pdf └── EvaluationAndAnalysisofDynamicLoopSchedulingofOpenMP.pdf /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Parallel Computing Resources 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 | 21 | - [CAF: An Open Source Implementation of the Actor Model in C++](https://github.com/actor-framework/actor-framework) 22 | - [CGraph: A cross-platform DAG framework based on C++17](https://github.com/ChunelFeng/CGraph) 23 | - [Chapel: A Programming Language for Productive Parallel Computing on Large-scale Systems](https://chapel-lang.org/) 24 | - [Charm++: A Parallel Programming Framework](https://charmplusplus.org/) 25 | - [Cilk Plus: C/C++ Extension for Data and Task Parallelism](https://www.cilkplus.org/) 26 | - [Taskflow: A Modern C++ Parallel Task Programming Library](https://github.com/taskflow/taskflow) 27 | - [FastFlow: High-performance Parallel Patterns in C++](https://github.com/fastflow/fastflow) 28 | - [Galois: A C++ Library to Ease Parallel Programming with Irregular Parallelism](https://github.com/IntelligentSoftwareSystems/Galois) 29 | - [Heteroflow: Concurrent CPU-GPU Task Programming using Modern C++](https://github.com/Heteroflow/Heteroflow) 30 | - [HPX: A C++ Standard Library for Concurrency and Parallelism](https://github.com/STEllAR-GROUP/hpx) 31 | - [Intel TBB: Threading Building Blocks](https://www.threadingbuildingblocks.org/) 32 | - [Kokkos: A C++ Programming Model for Writing Performance Portable Applications on HPC platforms](https://github.com/kokkos/kokkos) 33 | - [MPICH: High-Performance Portable MPI](https://www.mpich.org/) 34 | - [MPL: A message passing library](https://rabauke.github.io/mpl/html/) 35 | - [OmpSs: A task based programming model](https://pm.bsc.es/ompss) 36 | - [OpenMP: Multi-platform Shared-memory Parallel Programming in C/C++ and Fortran](https://www.openmp.org/) 37 | - [OpenMPI: A High Performance Message Passing Library](https://www.open-mpi.org/) 38 | - [RaftLib: A C++ Library for Enabling Stream and Dataflow Parallel Computation](https://github.com/RaftLib/RaftLib) 39 | - [STAPL: Standard Template Adaptive Parallel Programming Library in C++](https://parasol.tamu.edu/stapl/) 40 | - [STLab: High-level Constructs for Implementing Multicore Algorithms with Minimized Contention](http://stlab.cc/libraries/concurrency/) 41 | - [Transwarp: A Header-only C++ Library for Task Concurrency](https://github.com/bloomen/transwarp) 42 | - [UPC++: A C++ library that supports Partitioned Global Address Space (PGAS) programming](https://bitbucket.org/berkeleylab/upcxx/wiki/Home) 43 | - [Workflow: C++ Parallel Computing and Asynchronous Networking Engine](https://github.com/sogou/workflow) 44 | 45 | 46 | #### Concurrent Data Structures 47 | 48 | - [Boost.Lockfree: Thread-safe and Lock-free Containers](https://github.com/boostorg/lockfree) 49 | - [ConcurrentQueue: A Fast Multi-producer Multi-consumer Lock-free Concurrent Queue in C++](https://github.com/cameron314/concurrentqueue) 50 | - [libcds: A C++ library of Concurrent Data Structures](https://github.com/khizmax/libcds) 51 | - [Parallel-Hashmap: A Header-only Very Fast and Memory-friendly Hash Map](https://github.com/greg7mdp/parallel-hashmap) 52 | - [ReaderWriterQueue: A Fast Single-producer Single-consumer Lock-free Queue in C++](https://github.com/cameron314/readerwriterqueue) 53 | - [xenium: A C++ library Providing Various Concurrent Data Structures and Reclamation Schemes](https://github.com/mpoeter/xenium) 54 | 55 | #### Coroutine and Fiber 56 | 57 | - [Boost.Fiber: A Framework for Userland-threads Programming and Scheduling](https://github.com/boostorg/fiber) 58 | - [cppcoro: A Library for C++ Coroutines Abstractions for the Coroutines TS](https://github.com/lewissbaker/cppcoro) 59 | - [Fiber Tasking Lib: A Library for Enabling Task-based Multi-threading using Fibers](https://github.com/RichieSams/FiberTaskingLib) 60 | - [coro-async: A lite C++ coroutine TS based networking library](https://github.com/arun11299/coro-async) 61 | 62 | 63 | ## Presentations 64 | 65 | #### Generic Parallel Computing Topics 66 | 67 | - [Concurrency in C++20 and Beyond](https://www.youtube.com/watch?v=jozHW_B3D4U) - A. Williams 68 | - [Is Parallel Programming still Hard?](https://www.youtube.com/watch?v=YM8Xy6oKVQg) - P. McKenney, M. Michael, and M. Wong at CppCon 2017 69 | - [The Speed of Concurrency: Is Lock-free Faster?](https://www.youtube.com/watch?v=9hJkWwHDDxs) - Fedor G Pikus in CppCon 2016 70 | 71 | #### Scheduling in Parallel Processing 72 | 73 | - [Expressing Parallelism in C++ with Threading Building Blocks](https://www.youtube.com/watch?v=9Otq_fcUnPE) - Mike Voss at Intel Webinar 2018 74 | - [A Work-stealing Runtime for Rust](https://www.youtube.com/watch?v=4DQakkJ8XLI) - Aaron Todd in Air Mozilla 2017 75 | 76 | #### Memory Model 77 | 78 | - [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 79 | - [The C++ Memory Model](https://www.youtube.com/watch?v=gpsz8sc6mNU) - Valentin Ziegler at C++ Meeting 2014 80 | 81 | ## Learning Resources 82 | 83 | #### Books 84 | 85 | - [C++ Concurrency in Action: Practical Multithreading](https://www.manning.com/books/c-plus-plus-concurrency-in-action) - Anthony Williams 2012 86 | - [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 87 | - [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 88 | 89 | #### Tutorials 90 | 91 | - [Parallel Computing Training Tutorials](https://hpc.llnl.gov/training/tutorials) - Lawrence Livermore National Laboratory 92 | 93 | #### Position Papers 94 | 95 | - [The Landscape of Parallel Computing Research: A View from Berkeley](https://www2.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-183.pdf) 96 | - [Extreme Heterogeneity 2018: Productive Computational Science in the Era of Extreme Heterogeneity](references/2018-Extreme-Heterogeneity-DoE.pdf) 97 | 98 | #### Experimental Papers 99 | 100 | - [Evaluation and Analysis of Dynamic Loop Scheduling in OpenMP](references/EvaluationAndAnalysisofDynamicLoopSchedulingofOpenMP.pdf) 101 | 102 | #### Courses 103 | 104 | - [CS6290 High-performance Computer Architecture](https://www.udacity.com/course/high-performance-computer-architecture--ud007) - Milos Prvulovic and Catherine Gamboa at George Tech 105 | 106 | 107 | ## Datasets 108 | 109 | - [HPEC Graph Challenge](https://graphchallenge.mit.edu/) 110 | - [PARRSEC Benchmark Suite for the Analysis of Multithreaded Programs](https://parsec.cs.princeton.edu/) 111 | 112 | 113 | ## Links 114 | 115 | #### Blogs 116 | - [1024 Cores](http://www.1024cores.net/) - Dmitry Vyukov 117 | - [Michael Wong's Standard on Parallelism and Programming Languages](https://wongmichael.com/about/) - Michael Wong 118 | - [Preshing on Programming](https://preshing.com/) - Jeff Preshing 119 | - [Sutter's Mill](https://herbsutter.com/) - Herb Sutter 120 | - [The Black Art of Concurrency](https://www.internalpointers.com/post-group/black-art-concurrency) - Internal Pointers 121 | 122 | #### Journals 123 | - [IEEE Transactions on Parallel and Distributed Systems (TPDS)](https://www.computer.org/csdl/journal/td) 124 | - [Journal of Parallel and Distributed Computing](https://www.journals.elsevier.com/journal-of-parallel-and-distributed-computing) 125 | 126 | #### Conferences 127 | 128 | - [ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming (PPoPP)](https://ppopp23.sigplan.org/home) 129 | - [ACM Symposium on Parallel Algorithms and Architectures (SPAA)](https://spaa.acm.org/) 130 | - [ACM/IEEE International Conference for High-performance Computing, Networking, Storage, and Analysis (SC)](https://supercomputing.org/) 131 | - [HPC Asia](https://www.sc-asia.org/hpc-asia-2023/) 132 | - [International Conference on Parallel Processing (ICPP)](https://icpp23.sci.utah.edu/home) 133 | - [International Conference on Supercomputing](https://www.ics-conference.org/) 134 | - [IEEE International Parallel and Distributed Processing Symposium (IPDPS)](http://www.ipdps.org/) 135 | - [International Symposium on High-Performance Parallel and Distributed Computing](https://www.hpdc.org/) 136 | - [ISC High Performance](https://www.isc-hpc.com/) 137 | 138 | 139 | * * * 140 | 141 | [GitHub pull requests]: https://github.com/taskflow/taskflow/pulls 142 | [email me]: mailto:twh760812@gmail.com 143 | 144 | -------------------------------------------------------------------------------- /parallel-computing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/taskflow/awesome-parallel-computing/729d085116d9ad156908145c36fecd204fba0009/parallel-computing.jpg -------------------------------------------------------------------------------- /references/2018-Extreme-Heterogeneity-DoE.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/taskflow/awesome-parallel-computing/729d085116d9ad156908145c36fecd204fba0009/references/2018-Extreme-Heterogeneity-DoE.pdf -------------------------------------------------------------------------------- /references/EvaluationAndAnalysisofDynamicLoopSchedulingofOpenMP.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/taskflow/awesome-parallel-computing/729d085116d9ad156908145c36fecd204fba0009/references/EvaluationAndAnalysisofDynamicLoopSchedulingofOpenMP.pdf --------------------------------------------------------------------------------