Font size
WorksheetsPrimer parcial Computación Paralela
Total questions: 26
Worksheet time: 32mins
¿Cuál es una de las razones principales por las que la computación paralela se ha vuelto esencial en los últimos años?
La disminución en la necesidad de software complejo.
El auge de los superordenadores exóticos.
El abandono de las interfaces gráficas multihilo.
La ralentización de los avances en la velocidad de reloj de las CPUs y el aumento de núcleos.
¿Cuál fue una limitación clave de la computación temprana en GPU que la arquitectura CUDA buscó aliviar?
La escasez de aplicaciones gráficas que pudieran beneficiarse.
La dificultad para predecir cómo se manejarían los datos de punto flotante.
El exceso de control que los desarrolladores tenían sobre las operaciones de hardware.
La imposibilidad de acceder a la memoria de la GPU desde la CPU.
¿Qué componente es requerido para desarrollar código en CUDA C?
Un compilador C estándar
Un dispositivo de visualización 2D.
Una tarjeta gráfica que no sea NVIDIA.
El kit de desarrollo de DirectX.
En la programación CUDA C, ¿a qué se refiere el término "host"?
A la memoria dedicada de la GPU.
A la CPU y la memoria del sistema.
A una función que se ejecuta en la GPU.
Al compilador de NVIDIA (nvcc).
¿Qué hace el calificador __global__ cuando se aplica a una función en CUDA C?
Indica que la función debe ser compilada para ejecutarse en la CPU.
Especifica que la función puede acceder únicamente a la memoria compartida.
Alerta al compilador que la función debe ejecutarse en un dispositivo (GPU).
Define la cantidad de bloques y threads a lanzar.
¿Cuál es una característica principal de la programación asíncrona?
Permite que múltiples entidades actúen concurrentemente sin bloquear la ejecución general.
Las operaciones se ejecutan secuencialmente, bloqueando el programa hasta su finalización.
Es intrínsecamente más fácil de implementar y depurar que la programación síncrona.
Todas las tareas se distribuyen entre múltiples hilos que compiten por la CPU.
¿Cómo logra asyncio la concurrencia en Python?
Distribuyendo las tareas entre múltiples hilos de CPU que compiten por el procesamiento.
Utilizando un único hilo y alternando la ejecución de tareas, suspendiendo una mientras espera.
Mediante la creación de múltiples procesos que se ejecutan en paralelo.
A través de la ejecución secuencial ultrarrápida de operaciones.
En la clasificación de Flynn, ¿qué significa SIMD?
Ejecuta una instrucción a la vez y utiliza un dato a la vez.
Tiene más de un procesador y cada uno ejecuta un programa diferente con múltiples flujos de datos.
Ejecuta varias instrucciones a la vez con los mismos datos.
Ejecuta una instrucción a la vez pero procesa más de un dato.
¿Qué tipo de núcleos en la GPU GA102 están diseñados para cálculos de multiplicación y suma de matrices, utilizados en redes neuronales e IA?
Cores CUDA.
Cores de Ray Tracing.
Cores Tensor.
Unidades de Función Especial.
¿Cuál es la unidad más pequeña de ejecución en la arquitectura jerárquica de CUDA?
(a)
¿Qué función de la API de CUDA se utiliza para asignar memoria en el dispositivo (GPU)?
malloc()
cudaMemcpy()
cudaMalloc()
cudaFree()
¿Cuál es el propósito de la exclusión mutua en la programación concurrente?
Garantizar que todos los procesos accedan al mismo recurso simultáneamente para mayor eficiencia.
Definir regiones de código donde solo un hilo puede ejecutar funciones secuenciales.
Permitir que las instrucciones se ejecuten en un orden impredecible para optimizar el rendimiento.
Asegurar que los procesos concurrentes no accedan a un mismo recurso al mismo tiempo, evitando inconsistencias
¿Qué es una corrutina en el contexto de asyncio?
Un tipo de hilo de CPU que ejecuta código en segundo plano.
Una versión especializada de una función generadora que puede suspender su ejecución y pasar el control.
Una función que siempre bloquea la ejecución del programa hasta su finalización.
Un objeto de la clase Task que envuelve una función síncrona.
¿Qué significa el término "embarrassingly parallel" en computación paralela?
Problemas que requieren un esfuerzo mínimo o nulo para dividirse en tareas paralelas.
Problemas que son demasiado complejos para ser paralelizados eficientemente.
Problemas que solo pueden ser resueltos por CPUs de alta gama.
Problemas que resultan en errores inesperados al intentar ejecutarse en paralelo.
¿Qué compilador se utiliza para compilar código CUDA C++?
GCC.
Microsoft Visual C o Visual Studio Code.
NVCC.
Java.
¿Cuál es una característica clave de la memoria compartida (shared memory) en CUDA en comparación con la memoria global?
Es la memoria principal de la tarjeta gráfica y es accesible por cualquier hilo.
Es más lenta y tiene mayor capacidad que la memoria global.
Su acceso es ineficiente cuando muchos hilos necesitan compartir datos.
Se encuentra dentro de cada bloque de hilos y es más rápida y de menor capacidad.
¿Qué es la memoria compartida en CUDA?
Para asegurar que la CPU espere a que la GPU termine sus cálculos.
Para evitar que los hilos accedan a la memoria global.
Para garantizar que todos los valores en la memoria compartida estén disponibles antes de ser usados por otros hilos del mismo bloque.
Para copiar los datos de la GPU a la CPU de forma eficiente.
¿Qué estructura de CUDA se utiliza para recuperar información detallada sobre las propiedades de un dispositivo CUDA-capable?
cudaDeviceQuery.
cudaDeviceConfig.
cudaDeviceProp.
cudaDeviceSpec.
¿Cuál es una propiedad básica de la programación concurrente?
El determinismo, que garantiza resultados idénticos en cada ejecución.
El no determinismo, donde se desconoce lo que ocurrirá en el siguiente instante de tiempo.
La exclusión mutua automática en todos los recursos compartidos.
La ejecución estrictamente secuencial de todas las instrucciones.
¿Cuál es la principal diferencia entre la arquitectura SIMD (Single Instruction Multiple Data) y SIMT (Single Instruction Multiple Threads) en GPUs modernas?
SIMD permite a los hilos de un warp ejecutar diferentes instrucciones, mientras que SIMT los mantiene en lockstep.
SIMT es más flexible y eficiente al manejar ramificaciones en el código, permitiendo que los hilos diverjan y luego reconverjan.
SIMD es una arquitectura más reciente que SIMT, optimizada para IA.
SIMT se refiere a la ejecución secuencial, mientras que SIMD es para paralelismo.
En la optimización del acceso a la memoria global en CUDA, ¿qué es la coalescencia?
Permite que varios hilos accedan a la memoria en una sola operación, mejorando la eficiencia.
Un mecanismo para evitar que múltiples hilos accedan a la misma ubicación de memoria.
Un tipo de memoria de solo lectura que acelera el acceso a datos constantes.
La transferencia de datos entre la CPU y la GPU.
¿Cómo creó NVIDIA el lenguaje CUDA C para facilitar el cómputo de propósito general en GPUs?
Desarrolló un lenguaje completamente nuevo desde cero.
Adaptó un lenguaje de sombreado gráfico existente como GLSL.
Tomó el estándar C de la industria y añadió un número relativamente pequeño de palabras clave.
Utilizó una versión modificada de FORTRAN.
¿Cuál de los siguientes describe procesos cooperativos en el contexto de la sincronización?
Procesos que no se comunican entre sí y no requieren acuerdos.
Procesos que comparten un número finito de recursos del sistema y compiten por su uso.
Procesos que colaboran en la realización de un trabajo y requieren comunicación y sincronización.
Procesos que se ejecutan en un solo hilo de ejecución secuencialmente.
¿Cuáles son las principales 3 aplicaciones de computación paralela?
¿Porqué es importante implementar CUDA y en qué lenguajes se puede utilizar?
¿Qué es CUDA?
