# 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#)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://legacy.cookielau.com/archives/10-hardware/intel-cpu/3-openmp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
