WorksheetsCuestionario de Computación Paralela V2
Total questions: 42
Worksheet time: 24mins
¿Cuál fue una de las principales limitaciones que llevó a la adopción del paralelismo en lugar del aumento de la velocidad de reloj en CPUs secuenciales?
Costos de manufactura elevados
Ley de Moore
El muro de potencia y el límite del paralelismo a nivel de instrucción
La necesidad de procesar Big Data
¿Cuál de las siguientes afirmaciones describe mejor un procesador superescalar?
Ejecuta varias tareas independientes simultáneamente en diferentes núcleos
Decodifica y ejecuta múltiples instrucciones por ciclo de reloj
Opera en paralelo sobre una matriz de datos utilizando ALUs dedicadas
Ejecuta una sola instrucción sobre múltiples flujos de datos
En el contexto de la descomposición, ¿qué representa una granularidad fina?
Tareas con mucho trabajo y baja sincronización
Tareas pequeñas, alta dependencia y mayor necesidad de sincronización
Procesos que se ejecutan de forma completamente independiente
Un tipo de paralelismo funcional que no requiere comunicación
¿Cuál es una ventaja clave del paralelismo por datos frente al paralelismo funcional?
Permite evitar completamente la comunicación entre tareas
Reduce la complejidad del código fuente
Escala mejor con el tamaño del problema
Requiere menos hilos de ejecución
¿Qué tipo de arquitectura representa un sistema SIMD?
Varios procesadores ejecutan diferentes instrucciones en diferentes datos
Una única instrucción se aplica simultáneamente a múltiples datos
Diferentes instrucciones operan sobre los mismos datos
Una sola instrucción opera sobre un solo flujo de datos
¿Qué problema busca evitar la técnica de “snooping” en memoria caché compartida?
Falsa compartición
Acceso desbalanceado a memoria
Inconsistencias de coherencia entre cachés
Latencia de red entre procesadores
¿Cuál es la principal ventaja de usar OpenMP sobre Pthreads para programación paralela?
Soporte de ejecución distribuida sobre clústeres
Control total del programador sobre los hilos
Paralelización sencilla de código existente usando directivas
Mayor portabilidad entre arquitecturas
¿Cuál es el impacto principal de la falsa compartición en el rendimiento?
Incremento del paralelismo
Aumento de la eficiencia del caché
Mayor velocidad de sincronización
Degradación por invalidaciones innecesarias de caché
¿Cuál es el propósito del modelo PGAS en programación paralela?
Simular arquitecturas SISD
Ejecutar hilos POSIX en GPUs
Crear una visión compartida de memoria sobre sistemas distribuidos
Permitir comunicación sincrónica en SIMD
En términos de rendimiento, ¿qué representa la fórmula S = T_secuencial / T_paralelo?
Número de tareas distribuidas en un sistema
Velocidad de la memoria compartida
Aceleración (Speedup)
Tasa de eficiencia energética
¿Qué ocurre con el Speedup ideal si un 10%
¿Qué ocurre con el Speedup ideal si un 10% del código no puede ser paralelizado?
Es infinito
Tiene un límite de 10
Está limitado por la Ley de Amdahl
Aumenta proporcionalmente con el número de núcleos
¿Qué técnica permite medir la eficiencia energética y el uso de hardware en aplicaciones paralelas?
Pthreads
PGAS
PAPI
Linpack
¿Cuál es la ventaja principal del modelo híbrido MPI + OpenMP?
Minimiza las dependencias de memoria
Elimina la sobrecarga por sincronización
Combina paralelismo de grano fino y grueso
Solo se ejecuta en arquitecturas SIMD
En la computación en pipeline, ¿qué característica es fundamental?
Todas las tareas usan el mismo bloque de datos
Las tareas se sincronizan después de cada ciclo
El flujo de datos se procesa en etapas secuenciales
Cada proceso trabaja con todo el conjunto de datos
¿Qué factor limita el rendimiento en un esquema maestro-esclavo con distribución estática?
Consumo de energía
Número de instrucciones por segundo
Desequilibrio de carga entre los esclavos
El tamaño del problema
¿Qué tipo de arquitectura corresponde a MIMD con UMA?
CPU + GPU con caché no coherente
Sistema con múltiples hilos compartiendo memoria equitativa
Pipeline de datos secuencial
Computación SIMD con memoria dedicada
¿Qué mide la función de isoeficiencia?
La cantidad de datos procesados por ciclo
La relación entre tamaño del problema y eficiencia
El consumo energético promedio
El número ideal de hilos para un algoritmo
¿Cuál es la función de la unidad de captura del procesador?
Ejecutar operaciones lógicas
Leer y escribir datos en memoria
Determinar la próxima instrucción a ejecutar
Acceder a la caché compartida
¿Cuál es una característica de los problemas “embarrassingly parallel”?
Requieren comunicación intensiva
Son secuenciales por naturaleza
Poseen tareas que no requieren comunicación
Tienen aceleración nula con más procesadores
¿Qué tecnología está diseñada específicamente para programación paralela en GPU de Nvidia?
OpenCL
MPI
OpenMP
CUDA
¿Cuál es el principal objetivo del mapeo en programación paralela?
Definir la cantidad de hilos
Optimizar el uso del caché
Minimizar el tiempo de ejecución asignando tareas a procesadores
Sincronizar la ejecución de todas las tareas
¿En qué situación se prefiere OpenCL sobre CUDA?
Cuando se usan GPUs de Nvidia
Cuando se busca portabilidad entre distintos fabricantes
Cuando se requiere más velocidad
En arquitecturas UMA
¿Qué representa el CPI?
Número de procesadores por instrucción
Coste por instrucción paralela
Ciclos por instrucció
¿Qué representa el CPI?
Número de procesadores por instrucción
Coste por instrucción paralela
Ciclos por instrucción
Comunicaciones por iteración
¿Cuál es el objetivo del benchmark Linpack?
Calcular el tiempo de comunicación entre procesos
Estimar la eficiencia energética del sistema
Resolver ecuaciones lineales y medir MFlops
Determinar el consumo de memoria de un proceso
¿Qué componente de rendimiento se ve más afectado por la sobrecarga?
Tiempo secuencial
Velocidad del bus
Aceleración total
Memoria RAM
¿Cuál es la principal causa de baja eficiencia en paralelismo con muchos núcleos?
Baja frecuencia de reloj
Código con pocas instrucciones
Alto overhead por comunicación y sincronización
Uso de memoria caché
¿Cuál es el enfoque de la Ley de Gustafson respecto al paralelismo?
Minimiza el tamaño del problema para obtener speedup
Supone que la parte secuencial es constante
Aumentar el tamaño del problema para justificar más procesadores
Propone limitar el número de procesadores
¿Qué define mejor el concepto de escalado débil?
Mejorar el rendimiento sin cambiar el problema
Aumentar el número de procesadores manteniendo el problema fijo
Mantener eficiencia incrementando simultáneamente problema y procesadores
Ejecutar múltiples tareas en una sola CPU
¿Qué herramienta proporciona visualización gráfica de trazas de programas paralelos?
TAU
Vampir
PAPI
Linpack
¿Qué condición es más crítica para alcanzar exaescala en sistemas futuros?
Acceso uniforme a memoria
Frecuencia de reloj alta
Concurrencia extrema y eficiencia energética
Disponibilidad de software comercial
Seleccione la alternativa correcta. ¿Cuál de las siguientes técnicas es esencial para evitar deadlocks en la programación paralela?
Reducción de la granularidad de las tareas.
Imponer un orden jerárquico en la adquisición de recursos.
Dividir el problema en tareas más pequeñas.
Uso de variables globales.
Marque verdadero o falso, según corresponda al valor de verdad de la afirmación dada a continuación. El paralelismo existente en un programa es independiente del número de procesadores de los que se dispone. Depende únicamente de la distribución de tareas realizada y las dependencias entre ellas.
Verdadero
Falso
Seleccione la alternativa correcta. ¿Cuál es la principal implicación de la Ley de Amdahl para el diseño de sistemas paralelos?
Incrementar indefinidamente el número de procesadores siempre mejorará el rendimiento de un programa.
El rendimiento de un programa paralelo está limitado por la fracción del código que debe ejecutarse secuencialmente.
Reducir la fracción secuencial del programa no afecta significativamente el rendimiento global.
La Ley de Amdahl no se aplica a programas con para
¿Cuál de las siguientes afirmaciones describe correctamente el concepto de "Speedup" en computación paralela?
Es la cantidad de memoria RAM adicional requerida por un programa paralelo comparado con su equivalente programa secuencial.
Es la medida de cuánto más rápido un algoritmo paralelo puede resolver problema en comparación con un algoritmo secuencial, generalmente expresado como la razón del tiempo de ejecución secuencial al tiempo de ejecución paralelo.
Es la proporción de reducción del tiempo de ejecución de un programa cuando utiliza una sola unidad de procesamiento en comparación múltiples unidades de procesamiento.
Es el número de sub-tareas en que se puede dividir un programa para ejecutarse en paralelo sin aumentar la complejidad del código.
Arquitectura de sistemas de cómputo en la que los Procesadores matriciales son un ejemplo de esta arquitectura.
Arquitectura SISD
Arquitectura MIMD
Arquitectura SIMD
Arquitectura MISD
Forma en la que se añadió paralelismo a nivel de uniprocesador permitiendo procesar más de un dato a la vez con una única instrucción, con lo que se empezó a explotar el paralelismo a nivel de datos.
Arquitectura MIMD
Arquitectura MISD
Arquitectura SISD
Arquitectura SIMD
Un multiprocesador se puede ver como un computador paralelo compuesto por varios procesadores interconectados que pueden compartir un mismo sistema de memoria.
Verdadero
Falso
Paralelismo que proviene de la explotación de la constatación natural de que ciertas aplicaciones trabajan con estructuras de datos muy regulares (vectores, matrices) repitiendo una misma acción sobre cada elemento de la estructura.
Paralelismo a nivel de flujo
Paralelismo a nivel de datos
Paralelismo a nivel de control
Según la Ley de Amdahl, ¿Qué factor limita el aumento del rendimiento al paralelizar un programa?
La eficiencia del compilador paralelo.
La velocidad de los procesadores individuales.
La proporción del programa que no puede ser paralelizada.
La cantidad de memoria disponible.
En la metodología de la programación paralela, ¿qué técnica se emplea para minimizar el tiempo de comunicación y maximizar la eficiencia computacional en sistemas distribuidos?
Descomposición espacial
Descomposición funcional
Descomposición de datos
Descomposición recursiva
