publicidad

inglés

The collection of compiler directives, library routines, and environment variables described in this document collectively define the specification of the OpenMP Application Program Interface (OpenMP API) for shared-memory parallelism in C, C++ and Fortran programs. This specification provides a model for parallel programming that is portable across shared memory architectures from different vendors. Compilers from numerous vendors support the OpenMP API. More information about the OpenMP API can be found at the following web site http://www.openmp.org The directives, library routines, and environment variables defined in this document allow users to create and manage parallel programs while permitting portability. The directives extend the C, C++ and Fortran base languages with single program multiple data (SPMD) constructs, tasking constructs, device constructs, worksharing constructs, and synchronization constructs, and they provide support for sharing and privatizing data. The functionality to control the runtime environment is provided by library routines and environment variables. Compilers that support the OpenMP API often include a command line option to the compiler that activates and allows interpretation of all OpenMP directives. 1.1 Scope The OpenMP API covers only user-directed parallelization, wherein the programmer explicitly specifies the actions to be taken by the compiler and runtime system in order to execute the program in parallel. OpenMP-compliant implementations are not required to check for data dependencies, data conflicts, race conditions, or deadlocks, any of which may occur in conforming programs. In addition, compliant implementations are not required to check for code sequences that cause a program to be classified as non-conforming. Application developers are responsible for correctly using the OpenMP API to produce a conforming program. The OpenMP API does not cover compiler-generated automatic parallelization and directives to the compiler to assist such parallelization. 1.3 Execution Model The OpenMP API uses the fork-join model of parallel execution. Multiple threads of execution perform tasks defined implicitly or explicitly by OpenMP directives. The OpenMP API is intended to support programs that will execute correctly both as parallel programs (multiple threads of execution and a full OpenMP support library) and as sequential programs (directives ignored and a simple OpenMP stubs library). However, it is possible and permitted to develop a program that executes correctly as a parallel program but not as a sequential program, or that produces different results when executed as a parallel program compared to when it is executed as a sequential program. Furthermore, using different numbers of threads may result in different numeric results because of changes in the association of numeric operations. For example, a serial addition reduction may have a different pattern of addition associations than a parallel reduction. These different associations may change the results of floating-point addition. An OpenMP program begins as a single thread of execution, called an initial thread. An initial thread executes sequentially, as if enclosed in an implicit task region, called an initial task region, that is defined by the implicit parallel region surrounding the whole program. The thread that executes the implicit parallel region that surrounds the whole program executes on the host device. An implementation may support other target devices. If supported, one or more devices are available to the host device for offloading code and data. Each device has its own threads that are distinct from threads that execute on another device. Threads cannot migrate from one device to another device. The execution model is host-centric such that the host device offloads target regions to target devices. The initial thread that executes the implicit parallel region that surrounds the target region may execute on a target devce. An initial thread executes sequentially, as if enclosed in an implicit task region, called an initial task region, that is defined by an implicit inactive parallel region that surrounds the entire target region. When a target construct is encountered, the target region is executed by the implicit device task. The task that encounters the target construct waits at the end of the construct until execution of the region completes. If a target device does not exist, or the target device is not supported by the implementation, or the target device cannot execute the target construct then the target region is executed by the host device. The teams construct creates a league of thread teams where the master thread of each team executes the region. Each of these master threads is an initial thread, and executes sequentially, as if enclosed in an implicit task region that is defined by an implicit parallel region that surrounds the entire teams region.

español

La colección de directivas de compilación, rutinas de biblioteca y variables de entorno descritas en este documento definen colectivamente la especificación de la Interfaz de Programa de Aplicación OpenMP (OpenMP API) para el paralelismo de memoria compartida en los programas C, C ++ y Fortran. Esta especificación proporciona un modelo para la programación paralela que es portátil a través de arquitecturas de memoria compartida de diferentes proveedores. Los compiladores de numerosos proveedores soportan la API de OpenMP. Se puede encontrar más información sobre la API de OpenMP en el siguiente sitio web http://www.openmp.org Las directivas, las rutinas de la biblioteca y las variables de entorno definidas en este documento permiten a los usuarios crear y administrar programas paralelos a la vez que permiten la portabilidad. Las directivas amplían los lenguajes base C, C ++ y Fortran con construcciones de datos múltiples de un solo programa (SPMD), construcciones de asignación de tareas, construcciones de dispositivos, construcciones de trabajo compartido y construcciones de sincronización, y proporcionan soporte para compartir y privatizar datos. La funcionalidad para controlar el entorno de ejecución la proporcionan las rutinas de la biblioteca y las variables de entorno. Los compiladores que admiten la API de OpenMP a menudo incluyen una opción de línea de comandos para el compilador que activa y permite la interpretación de todas las directivas de OpenMP.1.1 alcance La API de OpenMP cubre solo la paralelización dirigida por el usuario, en la que el programador especifica explícitamente las acciones que debe realizar el compilador y el sistema de tiempo de ejecución para ejecutar el programa en paralelo. No se requiere que las implementaciones compatibles con OpenMP verifiquen dependencias de datos, conflictos de datos, condiciones de carrera o puntos muertos, cualquiera de los cuales puede ocurrir en los programas conformes. Además, no se requiere que las implementaciones compatibles verifiquen las secuencias de códigos que hacen que un programa se clasifique como no conforme. Los desarrolladores de aplicaciones son responsables de usar correctamente la API de OpenMP para producir un programa conforme. La API de OpenMP no cubre la paralelización automática generada por el compilador y las directivas al compilador para ayudar a dicha paralelización. 1.3 Modelo de ejecución La API de OpenMP utiliza el modelo de unión paralela de ejecución paralela. Varios subprocesos de ejecución realizan tareas definidas implícita o explícitamente por las directivas de OpenMP. La API de OpenMP está diseñada para admitir programas que se ejecutarán correctamente como programas paralelos (varios subprocesos de ejecución y una biblioteca de soporte de OpenMP completa) y como programas secuenciales (se ignoran las directivas y una simple biblioteca de stubs OpenMP).Sin embargo, es posible y permitido desarrollar un programa que se ejecute correctamente como un programa paralelo pero no como un programa secuencial, o que produzca resultados diferentes cuando se ejecuta como un programa paralelo en comparación con cuando se ejecuta como un programa secuencial. Además, el uso de diferentes números de hilos puede generar resultados numéricos diferentes debido a cambios en la asociación de operaciones numéricas. Por ejemplo, una reducción de adición en serie puede tener un patrón diferente de asociaciones de adición que una reducción paralela. Estas diferentes asociaciones pueden cambiar los resultados de la suma de punto flotante. Un programa OpenMP comienza como un solo hilo de ejecución, llamado un hilo inicial. Un hilo inicial se ejecuta secuencialmente, como si estuviera encerrado en una región de tarea implícita, llamada región de tarea inicial, que está definida por la región paralela implícita que rodea todo el programa. El hilo que ejecuta la región paralela implícita que rodea todo el programa se ejecuta en el dispositivo host. Una implementación puede soportar otros dispositivos de destino. Si es compatible, uno o más dispositivos están disponibles para el dispositivo host para descargar el código y los datos. Cada dispositivo tiene sus propios hilos que son distintos de los hilos que se ejecutan en otro dispositivo. Los subprocesos no pueden migrar de un dispositivo a otro dispositivo. El modelo de ejecución está centrado en el host, de modo que el dispositivo host descarga las regiones de destino a los dispositivos de destino.El hilo inicial que ejecuta la región paralela implícita que rodea la región de destino puede ejecutarse en un dispositivo de destino. Un hilo inicial se ejecuta de forma secuencial, como si estuviera encerrado en una región de tarea implícita, llamada región de tarea inicial, que está definida por una región paralela inactiva implícita que rodea a toda la región de destino. Cuando se encuentra una construcción de destino, la región de destino es ejecutada por la tarea implícita del dispositivo. La tarea que encuentra la construcción de destino espera al final de la construcción hasta que finaliza la ejecución de la región. Si no existe un dispositivo de destino, o si la implementación no lo admite, o si el dispositivo de destino no puede ejecutar la construcción de destino, el dispositivo host ejecuta la región de destino. La construcción de equipos crea una liga de equipos de hilos donde el hilo principal de cada equipo ejecuta la región. Cada uno de estos hilos maestros es un hilo inicial y se ejecuta de forma secuencial, como si estuviera encerrado en una región de tarea implícita que está definida por una región paralela implícita que rodea a toda la región de los equipos.

publicidad

Condiciones del Servicio

Asegúrese de cumplir con las reglas de redacción y el idioma de los textos que traducirá. Una de las cosas importantes que los usuarios deben tener en cuenta cuando usan el sistema de diccionario Traductor.com.ar es que las palabras y textos utilizados al traducir se guardan en la base de datos y se comparten con otros usuarios en el contenido del sitio web. Por esta razón, le pedimos que preste atención a este tema en el proceso de traducción. Si no desea que sus traducciones se publiquen en el contenido del sitio web, póngase en contacto con info@traductor.com.ar por correo electrónico. Tan pronto como los textos relevantes serán eliminados del contenido del sitio web.


Política de Privacidad

Los proveedores, incluido Google, utilizan cookies para mostrar anuncios relevantes ateniéndose las visitas anteriores de un usuario a su sitio web o a otros sitios web. El uso de cookies de publicidad permite a Google y a sus socios mostrar anuncios basados en las visitas realizadas por los usuarios a sus sitios web o a otros sitios web de Internet. Los usuarios pueden inhabilitar la publicidad personalizada. Para ello, deberán acceder a Preferencias de anuncios. (También puede explicarles que, si no desean que otros proveedores utilicen las cookies para la publicidad personalizada, deberán acceder a www.aboutads.info.)