preguntas para el segundo examen de arquitectura de computadoras

Upload: victor-uv-velarde

Post on 14-Oct-2015

31 views

Category:

Documents


0 download

DESCRIPTION

labb

TRANSCRIPT

1. Cules son los niveles de abstraccin en los cdigos secuenciales del paralelismo implcito: Nivel programa: diferentes programas intervienen en una aplicacin o diferentes aplicaciones se pueden ejecutar en paralelo. Nivel de funciones: un programa puede constituirse a base de funciones. Nivel bucle (bloque): funciones que se basa en la ejecucin de uno o varios bucles. Nivel operaciones: operaciones independientes se pueden paralelizar.

2. Qu relacin hay entre paralelismo implcito, explcito y arquitectura paralelas La relacin se encuentra en el cdigo de modo implcito, sus niveles pueden hacerse explcitos y con arquitecturas paralelas que aprovechan el paralelismo. El paralelismo entre programas se usa a nivel de procesos. El paralelismo disponible entre funciones se puede extraer usando niveles de procesos o hebras. El paralelismo dentro de un bucle puede hacerse explicito dentro de una instruccin vectorial para aprovechar su arquitectura SIMD.

3. Cules son las aplicaciones que requieren computadores paralelos Aplicaciones que requieren potencias mayores que las que proporciona un sistema uniprocesador. Aplicaciones que requieren tolerancia de fallos. Aplicaciones embebidas.

4. Como son los clster Son computadores paralelos basados en computadores (nodos) y redes disponibles comercialmente, permitiendo ser los sistemas con mejor relacin prestaciones/coste en los diferentes niveles del mercado.

5. Cules son las mejoras que se hacen a las computadoras paralela Aplicando paralelismo, segmentando o replicando recursos, en diferentes niveles. Aumentando la localidad de los recursos como agregando niveles de cache en el chip o agregando controladores de memoria.

6. Como se clasifican los computadores paralelos en funcin de la organizacin de su espacio de direcciones: Sistemas con memoria compartida (multiprocesadores) Sistemas con memoria distribuida (multicomputadores)

7. Defina un multiprocesador y multicomputador En un multiprocesador tiene una menor latencia lo que lo vuelve poco escalable, comunicacin mediante variables compartidas, no hay datos duplicados en la memoria principal, se necesita implementar tcnicas de sincronizacin, no se necesita distribuir cdigos y datos y la programacin es ms sencilla. En un multicomputador posee menor latencia lo que lo vuelve escalable, la comunicacin es mediante paso de mensajes, los datos duplicados en la memoria principal permiten copiar datos, la sincronizacin es mediante los mecanismos de comunicacin, hay que distribuir cdigos y datos entre los procesadores y la programacin es ms difcil generalmente.

8. Cul es la clasificacin de los multiprocesadores con acceso a memoria no uniforme NCC-NUMA, arquitectura con acceso a memoria no uniforma sin coherencia de cache entre nodos. CC-NUMA, arquitectura con acceso a memoria no uniforme y con cache coherente. COMA, arquitectura con acceso a memoria solo cache.

9. Cules son las denominaciones de computadores paralelos, y defina cada uno de ellos MPP (Massively Parallel Processors), computadores paralelos con un nmero de procesadores superior a 100. Clster, computador paralelo constituido por un conjunto de computadores completos (PC, estaciones de trabajo, servidor), conectados a una red comercial (LAN o SAN). Clster Beowulf, son clster con sistemas operativos libres. Constelaciones, son clster de nodos con procesamiento simtrico. Red de Computadores, conjunto de computadores conectados mediante tecnologa de red LAN, cada uno con pantalla, teclado y con acceso al exterior. Grid, recursos autnomos geogrficamente distribuidos, conectados mediante una infraestructura de telecomunicaciones que conforman un sistema de altas prestaciones virtual.

10. Cules son las facetas que se usan en la programacin paralela. Punto de partida. Modos de programacin. Herramientas para obtener programas paralelos. Alternativas de comunicacin. Estilos de programacin paralela. Estructura de programas paralelos. Alternativas para crear y terminar procesos hebras. Procesos de paralelizacin.

11. Cules son las ventajas en el uso de bibliotecas de funciones para programacin paralelas Los programadores estn ms familiarizados con los lenguajes secuenciales, no tienen que aprenderlos. Las bibliotecas estn disponibles para todos los sistemas paralelos. Las bibliotecas estn ms cercanas al hardware y dan al programador el control al ms bajo nivel. Se pueden usar a la vez bibliotecas para programar con hebras y bibliotecas para programar con procesos.

12. Cules son los patrones de comunicacin que se repiten en los diferentes algoritmos paralelos Se reordenan datos entre procesos. Se difunden datos. Se reducen un conjunto de datos a un nico dato mediante una operacin. Se realizan mltiples reducciones en paralelos con el mismo conjunto de datos. Se sincronizan mltiples procesos en un punto.

13. Cul es la clasificacin de las funciones colectivas de comunicacin Comunicacin mltiple uno a uno. Comunicacin uno a todos. Comunicacin todos a uno. Comunicacin todos a todos. Comunicacin colectiva compuesta.

14. Cules son las alternativas que se encuentran en la creacin de un conjunto de procesos Creacin dinmica no simultnea y terminacin sncrona. Creacin simultnea y terminacin asncrona. Creacin no simultnea y terminacin asncrona. Creacin simultnea y terminacin sncrona.

15. Como est dividida estructura de programas paralelos Dueo esclavo o granja de tareas. Paralelismo de datos o descomposicin de datos. Divide y vencers o descomposicin recursiva. Segmentada o flujo de datos.

16. En la descomposicin de tareas, cuales son los niveles de abstraccin Nivel funcin. Nivel bucle.

17. Cules son las medidas que se usan para los computadores paralelos Tiempo de ejecucin de respuesta o la ejecucin de una entrada en el sistema. Productividad o nmero de entradas que el computador es capaz de procesar por unidad de tiempo.

18. Cules son los benchmark usados para evaluar computadores paralelos y de un ejemplo por cada uno: Microbenchmark, el test ping-pong para interconexin de redes. Ncleos, multiplicaciones de matrices para ver la velocidad de las aplicaciones. Sintticos, los que no se usan en aplicaciones reales. Programas reales, base de datos para servidores web o correo electrnico. Aplicaciones diseadas, aplicaciones que se aproximan a las aplicaciones reales.

19. Como se realiza la ganancia en velocidad de un computador paraleloLa ganancia de la velocidad en los computadores paralelos se obtiene mediante la divisin de las prestaciones que se consiguen para aplicaciones en sistemas con multiprocesadores entre las prestaciones obtenidas ejecutando la versin secuencial en un sistema uniprocesador.20. Cules son los componente del espacio de diseo de sistemas paralelos? Nodo de computo Sistema de memoria Sistema de comunicacin Sistema de entrada/salida

21. Comparacin entre SM Vs DMLatenciaComunicacinDatosSincronizacinDistribucin de datosProgramacin

MultiprocesadorMayorVariables compartidasNo duplicadosSe necesita tcnicasNoSencilla

MulticomputadorMenorPaso de mensajeCopia datosPor mecanismos de comunicacinSiDifcil

22. Como incrementar la escalabilidad en los multiprocesadores? Usar redes de mayor ancho de banda que un bus (mltiples buses, barras cruzadas, multietapa). Aadir cache local a cada procesador. Distribuir fsicamente los mdulos de memoria entre los procesadores ( pero se sigue compartiendo espacio de direcciones).23. Clasificacin de sistema con mltiples procesadores:

24. Si desea implementar un sistema computacional de gran rendimiento y prestaciones, que sistema computacional paralelo empleara? Considerando que se requiere una gran escalabilidad.Para una gran escalabilidad se empleara un sistema multicomputador con memoria distribuida.25. En que clasificacin estara una computadora de escritorio clsica con un procesador i7 de Intel? Considerando la clasificacin ms especfica.Pertenecera a un sistema multiprocesador con memoria tipo UMA, SMP de memoria fsicamente centralizada.26. Que otras nominaciones hay para los sistemas computacionales paralelos adems de NUMA y UMA? MMP (massively parallel procesor) Cluster Cluster Beawulf Constelaciones

27. Cmo definira la convergencia de sistema computacionales paralelos?Se define como la tendencia de los estilos de programacin a asemejarse cada vez mas adems de que los sistemas computacionales paralelos empiezan a perder diferencias entre ellos por lo que es ms difcil encontrar claramente una frontera entre ambos ya sea multicomputadore o multiprocesadore.

28. Cuales son los problemas que se emfrental al realizar una programacin paralela: Divisin en unidades de cmputo independientes (tareas) Agrupacin de tareas o carga de trabajo (cdigo, datos) Asignacin a procesadores Sincronizacin y comunicacin

29. Que conceptos hay que tener en cuenta en el Punto de partida dentro de las facetas de estudio de la programacin paralela: Cdigo secuencial Trabaja sobre el cdigo de alto nivel para buscar paralelizacin Definicin de la aplicacin Buscar una descripcin para el problema que admita paralelizacion. Uso de programas y bibliotecas que aprovechen paralelismo

30. Cules son los modos de programacin ms comunes: SPMD ( single program muliple data) conocido como paralelismo de datos MPMD ( multiple program, multiple data) conocido como paralelismo de tareas o funciones31. Que tareas permiten las herramientas de programacin paralela? Crear y terminar paralelismos Localizar paralelismos Distribuir carga de trabajo entre procesos Comunicacin y sincronizacin entre procesos Asignacion de procesos a procesador32. Cules son las herramientas de programacin paralela? Biblioteca de funciones Lenguajes paralelos Compiladores paralelos33. Cual es la diferencia entre OpenMp y MPI dentro de biblioteca de funciones? OpenMP trabaja muy cerca al procesador por ende al nodo se comunica por variables compartidas. MPI trabaja cerca de la red de conexin y su comunicacin es por mensajes.

34. Cuales son los estilos de programacin estudiados en clase? Paso de mensajes Variables compartidas Paralelismo de datos35. Cuales son las funciones que caracterizan un estilo Paso de mensaje? Send (destino, datos), funcin para enviar datos Receive (fuente, datos), funcin para recibir datos36. Mencione las herramientas software mas comunes para el estilo de variable compartida: POSIX-Pthread basado en funciones Cerrojos, semforos y variables condicionales OpenMP basado en funciones, directivas y variables Cerrojos, barreras, implementa secciones criticas y variables atmicas. Funciones colectivas Paralelismo de datos (for) Paralelismo de tareas ( section ) Y tarea unica ( single )37. Cules son las alternativas para crear o terminar procesos o hebras? La creacin puede ser simultanea o no. La terminacin puede ser sncrona o asncrona.38. Cmo se estructura los algoritmos de programas paralelos? Organizado por tarea Lineal Paralelismo de tarea Recursivo Divide y vencers Organizado por datos Lineal Descomposicin geomtrica Recursivo Datos recursivos Organizado por flujo de datos Regular Encausamiento Irregular Manejado por eventos39. Cul es la diferencia entre estructura de algoritmos paralelos respecto a estilos de programacin paralela?Los estilos de programacin paralela son: SPMD, loop parallel, Maestro/esclavo, Fork/joinY las estructuras de algoritmos son: paralelismo de tareas, divide/vencers, Descomposicin geomtrica, datos recursivos, encausamiento, manejo de eventos.Y la diferencia esta en que el estilo de programacin son en si modelos de programa por lo que indica como proceder ante un problema dependiendo de una gama de herramientas, mientras que las estructuras de algoritmos es una clasificacin por sus caractersticas mas resaltantes.40. Diferencia entre modelo de programa vs modelos de programacin:Los modelos de programa son SPMD, maestro/esclavo, fork/join y los modelos de programacin son OpenMP, MPI y CUDA.Se puede notar que un modelo de programa tiene caractersticas especiales y define forma de solucin pero no es un herramienta comercial o acabada, mientras que los modelos de programacin son estndares que estn implementados en herramientas comerciales.