inglés

Automatic parallelization. Automatic parallelization, also auto parallelization, autoparallelization, or parallelization, the last one of which implies automation when used in context, refers to converting sequential code into multi-threaded or vectorized (or even both) code in order to utilize multiple processors simultaneously in a shared-memory multiprocessor (SMP) machine. The goal of automatic parallelization is to relieve programmers from the hectic and error-prone manual parallelization process.[1] Though the quality of automatic parallelization has improved in the past several decades, fully automatic parallelization of sequential programs by compilers remains a grand challenge due to its need for complex program analysis and the unknown factors (such as input data range) during compilation.[2] The programming control structures on which autoparallelization places the most focus are loops, because, in general, most of the execution time of a program takes place inside some form of loop. There are two main approaches to parallelization of loops: pipelined multi-threading and cyclic multi-threading.[3] For example, consider a loop that on each iteration applies a hundred operations, and runs for a thousand iterations. This can be thought of as a grid of 100 columns by 1000 rows, a total of 100,000 operations. Cyclic multi-threading assigns each row to a different thread. Pipelined multi-threading assigns each column to a different thread. Parse This is the first stage where the scanner will read the input source files to identify all static and extern usages. Each line in the file will be checked against pre-defined patterns to segregate into tokens. These tokens will be stored in a file which will be used later by the grammar engine. The grammar engine will check patterns of tokens that match with pre-defined rules to identify variables, loops, controls statements, functions etc. in the code. Analyze The analyzer is used to identify sections of code that can be executed concurrently. The analyzer uses the static data information provided by the scanner-parser. The analyzer will first find out all the functions that are totally independent of each other and mark them as individual tasks. Then analyzer finds which tasks are having dependencies. Schedule The scheduler will lists all the tasks and their dependencies on each other in terms of execution and start times. The scheduler will produce optimal schedule in terms of number of processors to be used or the total time of execution for the application. Code Generation The scheduler will generate list of all the tasks and the details of the cores on which they will execute along with the time that they will execute for. The code Generator will insert special constructs in the code that will be read during execution by the scheduler. These constructs will instruct the scheduler on which core a particular task will execute along with the start and end times. Cyclic multi-threading A cyclic multi-threading parallelizing compiler tries to split up a loop so that each iteration can be executed on a separate processor concurrently. Compiler parallelization analysis The compiler usually conducts two passes of analysis before actual parallelization in order to determine the following: Is it safe to parallelize the loop? Answering this question needs accurate dependence analysis and alias analysis Is it worthwhile to parallelize it? This answer requires a reliable estimation (modeling) of the program workload and the capacity of the parallel system. The first pass of the compiler performs a data dependence analysis of the loop to determine whether each iteration of the loop can be executed independently of the others. Data dependence can sometimes be dealt with, but it may incur additional overhead in the form of message passing, synchronization of shared memory, or some other method of processor communication. The second pass attempts to justify the parallelization effort by comparing the theoretical execution time of the code after parallelization to the code's sequential execution time. Somewhat counterintuitively, code does not always benefit from parallel execution. The extra overhead that can be associated with using multiple processors can eat into the potential speedup of parallelized code.

español

Paralelismo automático. La paralelización automática, también la paralelización automática, la paralelización automática o la paralelización, la última de las cuales implica automatización cuando se utiliza en contexto, se refiere a la conversión de código secuencial en código multiproceso o vectorizado (o incluso ambos) para utilizar múltiples procesadores simultáneamente en un Máquina multiprocesador de memoria compartida (SMP). El objetivo de la paralelización automática es liberar a los programadores del proceso de paralelización manual agitado y propenso a errores. [1] Aunque la calidad de la paralelización automática ha mejorado en las últimas décadas, la paralelización completamente automática de los programas secuenciales por compiladores sigue siendo un gran desafío debido a su necesidad de análisis complejos de programas y los factores desconocidos (como el rango de datos de entrada) durante la compilación. [2 ] Las estructuras de control de programación en las que la auto-paralelización coloca la mayor atención son los bucles, porque, en general, la mayor parte del tiempo de ejecución de un programa tiene lugar dentro de alguna forma de bucle. Hay dos enfoques principales para la paralelización de los bucles: subprocesos de múltiples subprocesos y subprocesos de múltiples ciclos. [3] Por ejemplo, considere un bucle que en cada iteración aplica cien operaciones y se ejecuta por mil iteraciones. Esto se puede considerar como una cuadrícula de 100 columnas por 1000 filas, un total de 100,000 operaciones. El multihilo cíclico asigna cada fila a un hilo diferente.El subproceso múltiple segmentado asigna cada columna a un subproceso diferente. Analizar gramaticalmente Esta es la primera etapa en la que el escáner leerá los archivos de origen de entrada para identificar todos los usos estáticos y externos. Cada línea en el archivo se verificará contra patrones predefinidos para segregar en tokens. Estos tokens se almacenarán en un archivo que será utilizado más adelante por el motor de gramática. El motor gramatical verificará patrones de tokens que coincidan con reglas predefinidas para identificar variables, bucles, declaraciones de controles, funciones, etc. en el código. Analizar El analizador se utiliza para identificar secciones de código que se pueden ejecutar simultáneamente. El analizador utiliza la información de datos estáticos proporcionada por el escáner-analizador. El analizador primero descubrirá todas las funciones que son totalmente independientes entre sí y las marcará como tareas individuales. Luego el analizador encuentra que tareas tienen dependencias. Programar El programador enumerará todas las tareas y sus dependencias entre sí en términos de ejecución y tiempos de inicio. El programador producirá una programación óptima en términos de la cantidad de procesadores que se utilizarán o el tiempo total de ejecución de la aplicación. Codigo de GENERACION El programador generará una lista de todas las tareas y los detalles de los núcleos en los que se ejecutarán junto con el tiempo para el que se ejecutarán. El generador de código insertará construcciones especiales en el código que el programador leerá durante la ejecución.Estas construcciones le indicarán al programador en qué núcleo se ejecutará una tarea particular junto con las horas de inicio y finalización. Multihilo cíclico Un compilador de paralelización de múltiples subprocesos cíclicos intenta dividir un bucle para que cada iteración se pueda ejecutar en un procesador separado al mismo tiempo. Análisis de paralelización de compiladores. El compilador generalmente realiza dos pasadas de análisis antes de la paralelización real para determinar lo siguiente: ¿Es seguro paralelizar el bucle? Responder a esta pregunta requiere un análisis de dependencia preciso y un análisis de alias ¿Vale la pena paralelizarlo? Esta respuesta requiere una estimación confiable (modelado) de la carga de trabajo del programa y la capacidad del sistema paralelo. La primera pasada del compilador realiza un análisis de dependencia de los datos del bucle para determinar si cada iteración del bucle se puede ejecutar independientemente de las otras. La dependencia de los datos puede tratarse a veces, pero puede incurrir en una sobrecarga adicional en forma de paso de mensajes, sincronización de la memoria compartida o algún otro método de comunicación del procesador. La segunda pasada intenta justificar el esfuerzo de paralelización comparando el tiempo de ejecución teórico del código después de la paralelización con el tiempo de ejecución secuencial del código. De manera contraintuitiva, el código no siempre se beneficia de la ejecución paralela.La sobrecarga adicional que puede asociarse con el uso de múltiples procesadores puede afectar la aceleración potencial del código paralelizado.

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