Red de conocimiento informático - Conocimiento del nombre de dominio - Catálogo de programación paralelaTecnología básica Parte 1 Capítulo 65438 +0 La demanda de velocidad de computación por parte de las computadoras paralelas es 2 1.1.2 El potencial para aumentar la velocidad de computación es 4 1.2 1 Coeficiente de aceleración 4 1.2.2 ¿Cuál es la aceleración máxima 5 1.2? 9 1.3 Tipos de computadoras paralelas 9 1.3.1 * * Sistemas multiprocesador de memoria compartida 10 1.3.2 Multiprocesador de mensajes 11.3.3 Distribuido * * Disfrute de memoria 17 1. 3. 4 MIMD y clasificación de SIMD 17 1.4 Computación en clústeres 65448 Construya un clúster especial "estilo Beowulf" 26 1.5 Resumen 27 Lectura recomendada 27 Referencias 28 Ejercicios 30 Capítulo 2 Computación de transmisión de mensajes 31 2.1 Conceptos básicos de programación de transmisión de mensajes 31 2.1 Opciones de programación 31 2. 1.2 Creación de procesos 31 2.1.3 Rutinas de paso de mensajes 33 2.2 Uso de clusters de computadoras 37 2.2.1 Herramientas de software 37 2.2.2 MPI 37 2.2.3 Construcción de pseudocódigo 44 2.3 Evaluación de programas paralelos 45 2.3.1 Paralelismo. Ecuaciones 45 2.3.2 Complejidad del tiempo 48 2.3.3 Notas de análisis asintótico 50 2.3.4 Tiempo de transmisión/comunicación centralizada 50 2.4 Depuración y evaluación de programas paralelos con métodos empíricos 51 2.4.1 Depuración de bajo nivel 52 2.4.2 Herramientas de visualización 52 2.4. 3 Estrategias de depuración 53 2.4.4 Evaluación de programas 53 2.4.5 Comentarios sobre la optimización del código paralelo 55 2.5 Resumen 55 Lectura recomendada 55 Referencias 56 Ejercicios 57 Capítulo 3 Computación paralela sencilla 59 3.1 Computación paralela ideal 59 3.2 Ejemplos de computación paralela sencilla 66 Resumen 73 Recomendado Lectura 73 Referencias 73 Ejercicios 74 Capítulo 4 Partición y estrategia divide y vencerás 79 4.1 Estrategia de partición 79 4.1 Estrategia de partición 79 4.1.2 Divide y vencerás 82 4.1.3 Técnica M divide y vencerás 86 4.2 Ejemplo de técnica de divide y vencerás 87 4.2.1 Uso del método Bucket Sort clasificación 87 4.2.2 Ejemplo de programa de línea de flotación numérica 107 5.3.1 Suma de números 108 5.3.2 Clasificación de números 110 5.3.3 Generación de números primos 112 5.3.4 Resolución de ecuaciones lineales: caso especial. 017 Lectura recomendada 117 Referencia 117 Ejercicios 17 Capítulo 6 Cálculo síncrono 122 6.1 Sincronización 122 6.1.6538 6.1.2 Implementación de contador 123 6.1.3 Implementación de árbol 124 6.1.4 Barrera de mariposa 125 6.1.5 Sincronización local 126 6 6.1.6 Interbloqueo 65438 +. 8+027 6.2.1 Computación paralela de datos 127 6.2.2 Iteración síncrona 129 6.3 Ejemplo de programa de iteración síncrona 130 6.3.1 Usar el método de iteración para resolver el problema de distribución de calor de ecuaciones lineales 130 6 3 2 . 7.2 .1 Equilibrio de carga dinámico centralizado 152 7.2.2 Equilibrio de carga dinámico distribuido 153 7.2.3 Equilibrio de carga 155 7.3 Algoritmo de detección de terminación distribuida con estructura lineal.

Catálogo de programación paralelaTecnología básica Parte 1 Capítulo 65438 +0 La demanda de velocidad de computación por parte de las computadoras paralelas es 2 1.1.2 El potencial para aumentar la velocidad de computación es 4 1.2 1 Coeficiente de aceleración 4 1.2.2 ¿Cuál es la aceleración máxima 5 1.2? 9 1.3 Tipos de computadoras paralelas 9 1.3.1 * * Sistemas multiprocesador de memoria compartida 10 1.3.2 Multiprocesador de mensajes 11.3.3 Distribuido * * Disfrute de memoria 17 1. 3. 4 MIMD y clasificación de SIMD 17 1.4 Computación en clústeres 65448 Construya un clúster especial "estilo Beowulf" 26 1.5 Resumen 27 Lectura recomendada 27 Referencias 28 Ejercicios 30 Capítulo 2 Computación de transmisión de mensajes 31 2.1 Conceptos básicos de programación de transmisión de mensajes 31 2.1 Opciones de programación 31 2. 1.2 Creación de procesos 31 2.1.3 Rutinas de paso de mensajes 33 2.2 Uso de clusters de computadoras 37 2.2.1 Herramientas de software 37 2.2.2 MPI 37 2.2.3 Construcción de pseudocódigo 44 2.3 Evaluación de programas paralelos 45 2.3.1 Paralelismo. Ecuaciones 45 2.3.2 Complejidad del tiempo 48 2.3.3 Notas de análisis asintótico 50 2.3.4 Tiempo de transmisión/comunicación centralizada 50 2.4 Depuración y evaluación de programas paralelos con métodos empíricos 51 2.4.1 Depuración de bajo nivel 52 2.4.2 Herramientas de visualización 52 2.4. 3 Estrategias de depuración 53 2.4.4 Evaluación de programas 53 2.4.5 Comentarios sobre la optimización del código paralelo 55 2.5 Resumen 55 Lectura recomendada 55 Referencias 56 Ejercicios 57 Capítulo 3 Computación paralela sencilla 59 3.1 Computación paralela ideal 59 3.2 Ejemplos de computación paralela sencilla 66 Resumen 73 Recomendado Lectura 73 Referencias 73 Ejercicios 74 Capítulo 4 Partición y estrategia divide y vencerás 79 4.1 Estrategia de partición 79 4.1 Estrategia de partición 79 4.1.2 Divide y vencerás 82 4.1.3 Técnica M divide y vencerás 86 4.2 Ejemplo de técnica de divide y vencerás 87 4.2.1 Uso del método Bucket Sort clasificación 87 4.2.2 Ejemplo de programa de línea de flotación numérica 107 5.3.1 Suma de números 108 5.3.2 Clasificación de números 110 5.3.3 Generación de números primos 112 5.3.4 Resolución de ecuaciones lineales: caso especial. 017 Lectura recomendada 117 Referencia 117 Ejercicios 17 Capítulo 6 Cálculo síncrono 122 6.1 Sincronización 122 6.1.6538 6.1.2 Implementación de contador 123 6.1.3 Implementación de árbol 124 6.1.4 Barrera de mariposa 125 6.1.5 Sincronización local 126 6 6.1.6 Interbloqueo 65438 +. 8+027 6.2.1 Computación paralela de datos 127 6.2.2 Iteración síncrona 129 6.3 Ejemplo de programa de iteración síncrona 130 6.3.1 Usar el método de iteración para resolver el problema de distribución de calor de ecuaciones lineales 130 6 3 2 . 7.2 .1 Equilibrio de carga dinámico centralizado 152 7.2.2 Equilibrio de carga dinámico distribuido 153 7.2.3 Equilibrio de carga 155 7.3 Algoritmo de detección de terminación distribuida con estructura lineal.

5438+0 Condición de terminación 157 7.3.2 Terminación con mensaje de confirmación 158 7.3.3 Algoritmo de terminación de anillo 158 7.3.4 Algoritmo de terminación distribuida de energía fija 160 7.4 Ejemplo de programa 160 7.4.65438+ 0 7.4.2 Representación del gráfico 161 7.4. y compartir datos 178 8.3.1 Crear* * Compartir datos 179 8.3.2 Acceder * * * Compartir datos 179 8.4 Lenguaje y estructura de programación paralelo 185 8.4.1 Lenguaje paralelo 185 8.4.2 Estructura del lenguaje paralelo 186 8.4.3 Análisis de correlación 187 838 +093 8.6.1 * *Disfruta del acceso a los datos 193 8.6.2 ***Disfruta de la sincronización de la memoria 195 8.6.3 Consistencia de secuencia 196 8.7 Ejemplos de programas 199 8.7.1 Ejemplos de uso de procesos UNIX 199 8.7.2 Uso de Pthreads 201 Resumen 204 Lecturas recomendadas 205 Referencias 205 Ejercicios 206 Capítulo 9 Distribuida* * Sistema de memoria compartida y su programación 211 9.1 Distribuida* * Memoria compartida 211 9.2 Distribuida* * * Implementación de la memoria compartida 212 9.2.1 Software del sistema DSM 212 9.2 Implementación de hardware del sistema DSM 2655438 Memoria compartida 216 9.4.1 Creación de procesos 216 9.4.2 * * Creación de datos compartidos 216 Disfrute del acceso a los datos 217 9.4.4 Acceso sincrónico 217 9.4.5 Puntos clave para mejorar el rendimiento 217 9.5 Distribución* * * Programación de la memoria compartida 219.6 realiza la implementación de una variable compartida del sistema DSM simple 220 9.6.3 Superposición de conjuntos de datos 222 9.7 Resumen 224 Lectura recomendada 224 Material de referencia 224 Ejercicio 225 Parte 2 Algoritmos y aplicaciones Capítulo 10 Algoritmo de clasificación 230 10.1 Descripción general 230 10.1 Clasificación 230 10.1.2 Posible aceleración 230 1 Clasificación por fusión 236 10.2.4 Clasificación rápida 237 10.2.5 Clasificación por fusión par e impar 239 10.2.6 Clasificación por fusión bimodal 240 10.3 Clasificación bidimensional en red privada 243 10.3.1.2003 Clasificación rápida en hipercubo 244 10.4 Otra suma de matriz +0 258 11.1 .2 Multiplicación de matrices 258 1.1.3 Multiplicación de matrices-vectores 259 1.1.1.6 5438+0.4 La relación entre matrices y ecuaciones lineales 259 65438. Ahora 259 11.2.1 Algoritmo 259 11.2.2 Implementación directa 260 11.2.3 Implementación recursiva 262 11.2. Método de multiplicación 266 11.3 Resolver ecuaciones lineales 266 11.3.1 Ecuaciones lineales 266 11.3.2 Método de eliminación gaussiano 266 11.3.2. Método iterativo 269 11.4.1 Iteración jacobiana 269 11.4.2 Método de convergencia rápida 272 11.5 Resumen 274 Lectura recomendada 275 Referencias 275 Ejercicios 276 12.12.1 Procesamiento de imágenes de bajo nivel 279 12.2 Procesamiento de puntos 280 12.3 Histograma 281 12.4 Suavizado, nitidez y reducción de ruido 2 81 1 Valor promedio 281 12.4.2 Valor mediano 283 1238+02.5.2 Máscara de detección de bordes 286 12.6 Transformada de Hough 288 12.7 Transformada al dominio de frecuencia 290 12.7.1 Serie de Fourier 291 12.7.2 Transformada de Fourier 2965438+. Transformada de Fourier 292 12.7.4 Paralelización del algoritmo de transformada de Fourier discreta 294 12.7.5 Transformada rápida de Fourier 296 12.8 Resumen 300 Lecturas recomendadas 300 Materiales de referencia 300 Ejercicios 302 Capítulo 13 Búsqueda y optimización 305 13.300350636 8+0 Aplicación y tecnología 305 13.2 Límite de rama 3 .3. 7 Condición de terminación 314 13.3.8 Algoritmo genético paralelo 314 13.4 Refinamiento continuo 317 13.5 Escalada de colinas 318 13.5 5438+09 13.5.2 Aplicación del método de escalada en negocios financieros 320 13.5.3 Paralelización 321 13.6 Resumen 321 Lectura recomendada 321 Referencia 322 Ejercicios 323 Apéndice A Rutinas MPI básicas 329 Apéndice B Rutinas Pthread 335 Apéndice C Comandos OpenMP, funciones de biblioteca y variables de entorno 339 Índice