inglés

1.4.2 Device Data Environments When an OpenMP program begins, each device has an initial device data environment. The initial device data environment for the host device is the data environment associated with the initial task region. Directives that accept data-mapping attribute clauses determine how an original variable is mapped to a corresponding variable in a device data environment. The original variable is the variable with the same name that exists in the data environment of the task that encounters the directive. If a corresponding variable is present in the enclosing device data environment, the new device data environment inherits the corresponding variable from the enclosing device data environment. If a corresponding variable is not present in the enclosing device data environment, a new corresponding variable (of the same type and size) is created in the new device data environment. In the latter case, the initial value of the new corresponding variable is determined from the clauses and the data environment of the encountering thread. The corresponding variable in the device data environment may share storage with the original variable. Writes to the corresponding variable may alter the value of the original variable. The impact of this on memory consistency is discussed in Section 1.4.4 on page 20. When a task executes in the context of a device data environment, references to the original variable refer to the corresponding variable in the device data environment. The relationship between the value of the original variable and the initial or final value of the corresponding variable depends on the map-type. Details of this issue, as well as other issues with mapping a variable, are provided in Section 2.14.5 on page 177. The original variable in a data environment and the corresponding variable(s) in one or more device data environments may share storage. Without intervening synchronization data races can occur. 1.4.3 The Flush Operation The memory model has relaxed-consistency because a thread’s temporary view of memory is not required to be consistent with memory at all times. A value written to a variable can remain in the thread’s temporary view until it is forced to memory at a later time. Likewise, a read from a variable may retrieve the value from the thread’s temporary view, unless it is forced to read from memory. The OpenMP flush operation enforces consistency between the temporary view and memory. The flush operation is applied to a set of variables called the flush-set. The flush operation restricts reordering of memory operations that an implementation might otherwise do. Implementations must not reorder the code for a memory operation for a given variable, or the code for a flush operation for the variable, with respect to a flush operation that refers to the same variable. If a thread has performed a write to its temporary view of a shared variable since its last flush of that variable, then when it executes another flush of the variable, the flush does not complete until the value of the variable has been written to the variable in memory. If a thread performs multiple writes to the same variable between two flushes of that variable, the flush ensures that the value of the last write is written to the variable in memory. A flush of a variable executed by a thread also causes its temporary view of the variable to be discarded, so that if its next memory operation for that variable is a read, then the thread will read from memory when it may again capture the value in the temporary view. When a thread executes a flush, no later memory operation by that thread for a variable involved in that flush is allowed to start until the flush completes. The completion of a flush of a set of variables executed by a thread is defined as the point at which all writes to those variables performed by the thread before the flush are visible in memory to all other threads and that thread’s temporary view of all variables involved is discarded. The flush operation provides a guarantee of consistency between a thread’s temporary view and memory. Therefore, the flush operation can be used to guarantee that a value written to a variable by one thread may be read by a second thread. To accomplish this, the programmer must ensure that the second thread has not written to the variable since its last flush of the variable, and that the following sequence of events happens in the specified order: 1. The value is written to the variable by the first thread. 2. The variable is flushed by the first thread. 3. The variable is flushed by the second thread. 4. The value is read from the variable by the second thread.

español

1.4.2 Entornos de datos del dispositivo Cuando comienza un programa OpenMP, cada dispositivo tiene un entorno de datos de dispositivo inicial. El entorno de datos del dispositivo inicial para el dispositivo host es el entorno de datos asociado con la región de tarea inicial. Las directivas que aceptan cláusulas de atributos de asignación de datos determinan cómo se asigna una variable original a una variable correspondiente en un entorno de datos de dispositivo. La variable original es la variable con el mismo nombre que existe en el entorno de datos de la tarea que encuentra la directiva. Si una variable correspondiente está presente en el entorno de datos del dispositivo adjunto, el nuevo entorno de datos del dispositivo hereda la variable correspondiente del entorno de datos del dispositivo adjunto. Si una variable correspondiente no está presente en el entorno de datos del dispositivo adjunto, se crea una nueva variable correspondiente (del mismo tipo y tamaño) en el nuevo entorno de datos del dispositivo. En este último caso, el valor inicial de la nueva variable correspondiente se determina a partir de las cláusulas y el entorno de datos del subproceso de encuentro. La variable correspondiente en el entorno de datos del dispositivo puede compartir el almacenamiento con la variable original. Las escrituras a la variable correspondiente pueden alterar el valor de la variable original. El impacto de esto en la consistencia de la memoria se describe en la Sección 1.4.4 en la página 20.Cuando una tarea se ejecuta en el contexto de un entorno de datos del dispositivo, las referencias a la variable original se refieren a la variable correspondiente en el entorno de datos del dispositivo. La relación entre el valor de la variable original y el valor inicial o final de la variable correspondiente depende del tipo de mapa. Los detalles de este problema, así como otros problemas relacionados con la asignación de una variable, se proporcionan en la Sección 2.14.5 en la página 177. La variable original en un entorno de datos y las variables correspondientes en uno o más entornos de datos de dispositivos pueden compartir el almacenamiento . Sin la intervención de datos de sincronización pueden ocurrir carreras. 1.4.3 La operación de descarga El modelo de memoria tiene una consistencia relajada porque no se requiere que la vista temporal de la memoria de un hilo sea consistente con la memoria en todo momento. Un valor escrito en una variable puede permanecer en la vista temporal del hilo hasta que sea forzado a la memoria en un momento posterior. Del mismo modo, una lectura de una variable puede recuperar el valor de la vista temporal del hilo, a menos que esté forzado a leer de la memoria. La operación de descarga de OpenMP impone la coherencia entre la vista temporal y la memoria. La operación de descarga se aplica a un conjunto de variables llamadas el conjunto de descarga. La operación de vaciado restringe la reordenación de las operaciones de memoria que una implementación podría realizar de otra manera.Las implementaciones no deben reordenar el código para una operación de memoria para una variable dada, o el código para una operación de descarga para la variable, con respecto a una operación de descarga que se refiere a la misma variable. Si un subproceso ha realizado una escritura en su vista temporal de una variable compartida desde su último vaciado de esa variable, entonces cuando ejecuta otro vaciado de la variable, el vaciado no se completa hasta que el valor de la variable se haya escrito en la variable. en memoria. Si un hilo realiza múltiples escrituras en la misma variable entre dos vaciados de esa variable, el enjuague asegura que el valor de la última escritura se escriba en la variable en la memoria. Una descarga de una variable ejecutada por un subproceso también hace que se descarte su vista temporal de la variable, de modo que si la siguiente operación de memoria para esa variable es una lectura, el subproceso se leerá de la memoria cuando pueda capturar nuevamente el valor en La vista temporal. Cuando un subproceso ejecuta una descarga, no se permite que comience la operación de memoria posterior de esa secuencia para una variable involucrada en esa descarga hasta que se complete la descarga. La finalización de un vaciado de un conjunto de variables ejecutadas por un subproceso se define como el punto en el que todas las escrituras a esas variables realizadas por el subproceso antes del vaciado son visibles en la memoria de todos los otros subprocesos y la vista temporal de ese subproceso de todas las variables involucradas se desecha.La operación de descarga proporciona una garantía de coherencia entre la vista temporal de un subproceso y la memoria. Por lo tanto, la operación de descarga se puede utilizar para garantizar que un segundo subproceso puede leer un valor escrito en una variable por un subproceso. Para lograr esto, el programador debe asegurarse de que el segundo subproceso no haya escrito en la variable desde su último vaciado de la variable, y que la siguiente secuencia de eventos suceda en el orden especificado: 1. El valor se escribe en la variable por el primer hilo. 2. La variable se vacía por el primer hilo. 3. La variable se vacía por el segundo hilo. 4. El valor se lee de la variable por el segundo hilo.

Traductor.com.ar | ¿Cómo utilizo la traducción de texto inglés-español?

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 →"Contacto" 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.)

Traductor.com.ar
Cambiar pais

La forma más fácil y práctica de traducir texto en línea es con traductor inglés español. Copyright © 2018-2022 | Traductor.com.ar