|
| 1 | +% This is the introduction for the OpenMP Examples document. |
| 2 | +% This is an included file. See the main file (openmp-examples.tex) for more information. |
| 3 | +% |
| 4 | +% When editing this file: |
| 5 | +% |
| 6 | +% 1. To change formatting, appearance, or style, please edit openmp.sty. |
| 7 | +% |
| 8 | +% 2. Custom commands and macros are defined in openmp.sty. |
| 9 | +% |
| 10 | +% 3. Be kind to other editors -- keep a consistent style by copying-and-pasting to |
| 11 | +% create new content. |
| 12 | +% |
| 13 | +% 4. We use semantic markup, e.g. (see openmp.sty for a full list): |
| 14 | +% \code{} % for bold monospace keywords, code, operators, etc. |
| 15 | +% \plc{} % for italic placeholder names, grammar, etc. |
| 16 | +% |
| 17 | +% 5. Other recommendations: |
| 18 | +% Use the convenience macros defined in openmp.sty for the minor headers |
| 19 | +% such as Comments, Syntax, etc. |
| 20 | +% |
| 21 | +% To keep items together on the same page, prefer the use of |
| 22 | +% \begin{samepage}.... Avoid \parbox for text blocks as it interrupts line numbering. |
| 23 | +% When possible, avoid \filbreak, \pagebreak, \newpage, \clearpage unless that's |
| 24 | +% what you mean. Use \needspace{} cautiously for troublesome paragraphs. |
| 25 | +% |
| 26 | +% Avoid absolute lengths and measures in this file; use relative units when possible. |
| 27 | +% Vertical space can be relative to \baselineskip or ex units. Horizontal space |
| 28 | +% can be relative to \linewidth or em units. |
| 29 | +% |
| 30 | +% Prefer \emph{} to italicize terminology, e.g.: |
| 31 | +% This is a \emph{definition}, not a placeholder. |
| 32 | +% This is a \plc{var-name}. |
| 33 | +% |
| 34 | + |
| 35 | +\cchapter{Introduction}{introduction} |
| 36 | +\label{chap:introduction} |
| 37 | + |
| 38 | +This collection of programming examples supplements the OpenMP API for Shared |
| 39 | +Memory Parallelization specifications, and is not part of the formal specifications. It |
| 40 | +assumes familiarity with the OpenMP specifications, and shares the typographical |
| 41 | +conventions used in that document. |
| 42 | + |
| 43 | +The OpenMP API specification provides a model for parallel programming that is |
| 44 | +portable across shared memory architectures from different vendors. Compilers from |
| 45 | +numerous vendors support the OpenMP API. |
| 46 | + |
| 47 | +The directives, library routines, and environment variables demonstrated in this |
| 48 | +document allow users to create and manage parallel programs while permitting |
| 49 | +portability. The directives extend the C, C++ and Fortran base languages with single |
| 50 | +program multiple data (SPMD) constructs, tasking constructs, device constructs, |
| 51 | +worksharing constructs, and synchronization constructs, and they provide support for |
| 52 | +sharing and privatizing data. The functionality to control the runtime environment is |
| 53 | +provided by library routines and environment variables. Compilers that support the |
| 54 | +OpenMP API often include a command line option to the compiler that activates and |
| 55 | +allows interpretation of all OpenMP directives. |
| 56 | + |
| 57 | +The documents and source codes for OpenMP Examples can be downloaded from |
| 58 | +\href{https://github.com/OpenMP/Examples}{https://github.com/OpenMP/Examples}. |
| 59 | +Each directory holds the contents of a chapter and has a \splc{sources} subdirectory of its codes. |
| 60 | +The codes for this OpenMP \VER{} Examples document have the tag |
| 61 | +\href{https://github.com/OpenMP/Examples/tree/v\VER}{\plc{v\PVER}}. |
| 62 | + |
| 63 | +Complete information about the OpenMP API and a list of the compilers that support |
| 64 | +the OpenMP API can be found at the OpenMP.org web site |
| 65 | + |
| 66 | +\code{https://www.openmp.org} |
| 67 | + |
| 68 | +\clearpage |
| 69 | + |
| 70 | +\input{introduction/Examples} |
| 71 | + |
| 72 | +% This is the end of introduction.tex of the OpenMP Examples document. |
| 73 | + |
0 commit comments