# OpenMP

## Manual

1. [OpenMP Author: Blaise Barney, Lawrence Livermore National Laboratory](https://computing.llnl.gov/tutorials/openMP)
2. [OpenMP Exercise](https://computing.llnl.gov/tutorials/openMP/exercise.html)
3. [OpenMP Application Programming Interface Examples](https://www.openmp.org/wp-content/uploads/openmp-examples-5.0.0.pdf)
4. [Advanced OpenMP® Tutorial](http://bit.ly/201809tutorial)
5. [Advanced OpenMP](https://cse.iitk.ac.in/users/pmalakar/acmws/AdvancedOpenMP.pdf)
6. [Introduction to High-Performance Scientific Computing](https://pages.tacc.utexas.edu/~eijkhout/istc/istc.html)
7. [Lecture 4: Principles of Parallel Algorithm Design (part 1)](https://www3.nd.edu/~zxu2/acms60212-40212-S12/Lec-05.pdf)
8. [Tutorial on OpenMP programming](https://web.corral.tacc.utexas.edu/CompEdu/pdf/pcse/omp_course.pdf)

## HPC

1. [Introduction to High Performance Scientific Computing](https://web.corral.tacc.utexas.edu/CompEdu/pdf/stc/EijkhoutIntroToHPC.pdf)

## Topic

### Reduction

1. [A Comparison of Parallelization Techniques for Irregular Reductions](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.27.6189\&rep=rep1\&type=pdf)
2. [Adaptive Reduction Parallelization Techniques](https://www.researchgate.net/profile/Hao_Yu14/publication/2619275_Adaptive_Reduction_Parallelization_Techniques/links/5405b8820cf2c48563b18518/Adaptive-Reduction-Parallelization-Techniques.pdf)
3. [Speculative Separation for Privatization and Reductions](https://liberty.princeton.edu/Publications/pldi12_privateer.pdf)
4. [The Art of Data Replication](https://www.oracle.com/technetwork/articles/systems-hardware-architecture/o11-080-art-data-replication-487868.pdf)
5. [Improving the Performance of OpenMP by Array Privatization](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.867.7445\&rep=rep1\&type=pdf)
6. [On Algorithmic Reductions in Task-parallel Programming Models](https://upcommons.upc.edu/bitstream/handle/2117/111500/TJC1de1.pdf)
7. [OpenMP Reduction Operations](https://software.intel.com/content/www/us/en/develop/documentation/advisor-user-guide/top/appendix/adding-parallelism-to-your-program/replacing-annotations-with-openmp-code/openmp-reduction-operations.html)
8. [OpenMP with parallel reduction in for loop](https://stackoverflow.com/questions/22073639/openmp-with-parallel-reduction-in-for-loop)
9. [OpenMP 4 SIMD Programming - Easy](https://support.hlrn.de/twiki/pub/NewsCenter/ParProgWorkshopFall2017/ws_openmp4_simd_programming.pdf)

P.S. reduction貌似只能应用于简单数据类型，复杂如complex就无能为力，编译会报错

### Loop

1. [How does OpenMP handle nested loops?](https://stackoverflow.com/questions/13357065/how-does-openmp-handle-nested-loops)
2. [OpenMP topic: Loop parallelism](https://pages.tacc.utexas.edu/~eijkhout/pcse/html/omp-loop.html)

### Taskyield

1. [The Impact of Taskyield on the Design of Tasks Communicating Through MPI](http://montblanc-project.eu/wp-content/uploads/2018/10/The-impact-of-taskyield-on.pdf)

### Critical Section

1. [OpenMP Critical Sections](https://scc.ustc.edu.cn/zlsc/tc4600/intel/2017.0.098/advisor/help/GUID-6BDC243E-375A-4E0C-8384-864D98800556.htm)

### Task Dependency

1. [rERA: An Optimization Algorithm of Task Dependency Graph for Scheduling](https://dspace.jaist.ac.jp/dspace/bitstream/10119/14090/1/22878.pdf)

### SIMD

1. [OpenMP: Vectorization and #pragma omp simd](http://hpac.cs.umu.se/teaching/pp-16/material/08.OpenMP-4.pdf)

### Others

1. [FFTW Manual](http://www.fftw.org/fftw3.pdf)
2. [NUFFT, Discontinuous Fast Fourier Transform, and Some Applications](https://home.cscamm.umd.edu/programs/fam04/qing_liu_fam04.pdf)
3. [Rapid Gridding Reconstruction With a Minimal Oversampling Ratio](https://sci-hub.scihubtw.tw/https://ieeexplore.ieee.org/abstract/document/1435541)
