Paralelismo Flashcards

1
Q

Si ya no se puede aumentar la frecuencia del clock ni optimizar el set de instrucciones ¿Cómo se poría aumentar el rendimiento del chip?

A

Implementando un esquema de multiprocesamiento paralelo masivo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿A qué se refiere el grado de acoplamiento?

A

Hace referencia a la cantidad de recursos que se comparten entre los procesadores.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Qué es un coprocesador?

A

Es un procesador auxiliar que asiste al CPU principal realizando ciertas operaciones específicas (ej: punto flotante, gráficos, etc).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Cuál es la diferencia entre un multiprocesador y una multicomputadora?

A

El multiprocesador tiene más de un núcleo pero comparte la memoria mientras que en las multicomputadoras la memoria es privada y los procesadores se comunican a través de una red de interconexión.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Cuál es la diferencia entre una multicomputadora y una grid?

A

La interacción entre las computadoras. En las multicomputadoras se debe interaccionar a alta velocidad mientras que en las grids las computadoras son más independientes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué propone una arquitectura superescalar?

A

Propone tener muchas unidades de ejecución después de decodificar la instrucción. Esto permite despachar las operaciones a componentes de hardware independientes tal que puedan trabajar de forma simultánea.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Cuáles son las etapas de una arquitectura superescalar?

A
  1. Fetch: Extrae la instrucción de la memoria de programa.
  2. Decode: Decodifica la instrucción.
  3. Issue: Detecta cuál de las etapas paralelizadas se encuentra disponible y cuál es apropiada para ejecutar la instrucción pendiente.
  4. Execute: La instrucción se ejecuta en la unidad correspondiente.
  5. Retire: Se escribe en un registro o en memoria el resultado de la operación.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué proponen los sistemas VLIW?

A

Very Long Instruction Word (VLIW): Sistemas donde la palabra de instrucción es muy larga y puede contener muchas operaciones que son paralelizables. Entonces se decodifican todas juntas y la planificación de la paralelización se realiza en tiempo de compilación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué son los bundles en VLIW?

A

Como no se utilizan todos los recursos en todo momento, quedaban muchas zonas desaprovechadas en la palabra de instrucción, ocupando más lugar en memoria.
Entonces se implementaron los bundles que buscan compactar el formato, son palabras de instrucción de largo variable que transmiten la misma información sin dejar huecos de memoria.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué significan las siglas EPIC?

A

Explicitly Parallel Instruction Computing (EPIC): Aprovecha el compilador para optimizar el código tal que sea paralalelizable y resolver la planificación de las instrucciones en tiempo de compilación. Se considera una mejora a la arquitectura VLIW.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué problema puede surgir cuando se resuelve el paralelismo en tiempo de compilación?

A

Como al compilar estamos optimizando un programa en particular y la carga del CPU es variable, puede haber problemas en procesadores de propósito general.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué tipo de procesador es el TriMedia?

A

Es un CPU que utiliza VLIW con 27 unidades para ejecutar operaciones en paralelo. Fue diseñado para tareas de multimedia por lo que el programa que va a ejecutar es fijo para la aplicación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Cómo hace el multithreading para aumentar el rendimiento?

A

Busca aprovechar el tiempo mientras el pipeline está parado porque está ejecutando una tarea que tarda mucho. Si durante ese tiempo se ejecutan otras tareas independientes, se aprovechan los tiempos muertos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Cuál es la diferencia entre el multithreading de grano fino y grano grueso?

A

En el de grano fino se intercalan las instrucciones de cada thread tal que siempre se aproveche el tiempo de espera entre instrucciones lentas. En cambio en grano grueso se ejecuta un mismo thread y salta sólo cuando tiene que esperar.

El grano fino requiere una cantidad de hilos acorde a la demora de las instrucciones más lentas pero permite una ejecución continua aprovechando todos los ciclos de máquina. Por otro lado, el grano grueso es más flexible en cuanto a la cantidad de threads pero puede tener ejecución no continua.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿A qué se refiere el simultaneous multithreading?

A

A la combinación de las técnicas de multithreading con una arquitectura superescalar.
Aumenta el rendimiento pero complejiza el manejo de los hilos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Cuál es la diferencia entre multiprocesadores homogéneos y heterogéneos?

A

En los homogéneos todos los núcleos son iguales y tienen la misma prioridad mientras que en los heterogéneos los procesadores pueden ser de diferente tipo y con distintos niveles de prioridad.

17
Q

¿Qué es un multiprocesador simétrico?

A

Es cuando los núcleos son similares entre sí, tal que cualquier procesador puede realizar las tareas de otro.

18
Q

¿Qué significa las sigla NOW?

A

Network of Workstation (NOW): Son las redes conformadas por sistemas multicomputadores para los puestos de trabajo interconectados.

19
Q

¿Qué significa la sigla UMA?

A

Uniform Memory Access (UMA): Significa que cualquiera de los núcleos puede acceder a la memoria compartida de igual forma.

20
Q

¿Qué significa la sigla NUMA?

A

Non Uniform Memory Access (NUMA): Significa que todos los procesadores pueden acceder a la memoria pero con distinta dificultad y prioridad.
Un mismo software podría tardar diferente tiempo en ser ejecutado según a qué procesador le toca.

21
Q

¿Qué es un contrato de consistencia?

A

Se refiere a los distintos grados de libertad con los que se puede alterar el orden de las operaciones.

22
Q

¿Cuáles son los tipos de consistencia?

A
  • Consistencia Estricta: Las operaciones se ejecutan en el orden establecido por el programador.
  • Consistencia Secuencial: La única restricción es que todos los procesadores vean la misma secuencia de operaciones ejecutadas.
  • Consistencia a nivel de procesador: La combinación puede ser distinta en cada ejecución y otro procesador podría ver un orden distinto pero cada uno debe ver la secuencia de sus operaciones en orden.
  • Consistencia Débil: Las operaciones se realizan en cualquier orden hasta que ocurre un evento de sincronización, donde se deben atender todas las instrucciones anteriores antes de continuar.
  • Consistencia a nivel de “release”: Cierto proceso adquiere el contro sobre una determinada zona de memoria y hasta que no se libere nadie más la puede usar.
23
Q

¿Qué propone el protocolo MESI?

A

El protocolo MESI busca mantener la consistencia del caché incorporando 4 flags a una fila de caché:
- Modified: El dato se modificó en caché pero no en la memoria principal. Todas las demás instancias de ese dato son inválidas hasta que se realice un write back.
- Exclusive: Sólo 1 procesador levantó el dato de la memoria principal.
- Shared: El dato se encuentra en la caché de 2 o más procesadores y está actualizada en la memoria principal.
- Invalid: El dato en caché no es válido.

24
Q

¿Qué es un snooping caché?

A

Es un proceso dentro de la controladora del caché que se encarga de modificar los flags MESI, así se mantiene la coherencia sin tener que modificar muchos bits.

25
Q

¿Qué es un crossbar switch?

A

Es un mecanismo para interconectar puntos para la comunicación de señales eléctricas entre diferentes procesadores y recursos sin ser bloqueante.

26
Q

¿Qué es un omega switching network?

A

Es otra forma de interconectar procesadores y recursos, con una menor cantidad de componentes y por lo tanto menor costo pero mayor probabilidad de colisiones.

27
Q

¿Cómo se comparan las topologías de red?

A

Se pueden comparar según su:
- Número de nodos -> Indica la tolerancia de falla
- Cantidad de vínculos de los nodos -> Indica la tolerancia de falla
- Diámetro (el camino más corto entre los nodos más alejados) -> Indica el retardo
- Dimensionalidad (la cantidad de caminos entre un nodo y otro) -> Indica la tolerancia de falla
- Ancho de banda de bisección -> Indica la capacidad de procesamiento

28
Q

¿En qué consiste el modelo Fork-Join?

A

Es un modelo que se emplea para la ejecución en paralelo de tareas en diferentes hilos de ejecución. A partir de un hilo maestro se realiza un fork donde se inician múltiples hilos de ejecución para resolver diferentes tareas en paralelo. Luego se realiza un join para finalizarlos, de forma que sus tareas convergen en la continuación del hilo maestro.

29
Q

¿Qué es la Taxonomía de Flynn?

A

Es una clasificación de sistemas de computación de acuerdo al flujo de instrucciones y al flujo de datos. Se categorizan según qué cantidad de instrucciones se manejan sobre qué cantidad de datos, de forma independiente y simultánea.

30
Q

¿Cuáles son las categorías que considera la Taxonomía de Flynn?

A
  • Single Instruction, Single Data (SISD): Es una computadora secuencial que no explota el paralelismo en las instrucciones ni en flujos de datos (ej: Arquitectura Von-Neumann).
  • Single Instruction Stream, Multiple Data Streams (SIMD): Todas las unidades ejecutan la misma instrucción de forma sincronizada, pero con datos distintos (ej: arquitectura vectorial).
  • Multiple Instruction Streams, Single Data Stream (MISD): Varias unidades funcionales realizan operaciones diferentes sobre los mismos datos, no se usa mucho (ej: paralelismo redundante).
  • Multiple Instruction Streams, Multiple Data Streams (MIMD): Varios procesadores autónomos que ejecutan simultáneamente instrucciones diferentes sobre datos diferentes (ej: sistemas distribuidos).
31
Q

¿Qué significa la sigla MPI?

A

Message Passing Interface (MPI): Es un paquete de comunicación para sistemas multicomputadoras que permite pasar mensajes ente procesos que se están ejecutando de forma simultánea en diferentes procesadores.

32
Q

Los ‘contratos de consistencia’ establecen reglas para relajar los requerimientos de sincronización y secuencialidad tradicionales que, en caso de ser implementados en un equipo con numerosos procesadores, conllevan una pérdida de rendimiento respecto del que podría lograrse cuando estas reglas no son tan estrictas.
¿Verdadero o Falso?

A

Verdadero.

33
Q

Una de las posibilidades para conectar los módulos de memoria con los procesadores en un sistema NUMA consiste en el empleo de ‘switches’ que vinculan entre sí los módulos de memoria y los procesadores “cercanos”. Estos ‘switches’, además, se vinculan con otros ‘switches’ ubicados en un nivel jerárquico superior, configurando, por ejemplo, una topología de árbol invertido.
¿Verdadero o Falso?

A

Verdadero.

34
Q

En el modelo ‘fork-join’, el programa inicia con todos los threads (hilos) que va a utilizar en cualquier momento de ejecución.

A

Falso.

35
Q

El procesador Philips TriMedia comentado en el curso…

a) puede despachar simultáneamente cualquier combinación de instrucciones en la medida en que no existan dependencias o conflictos entre ellas.
b) emplea un formato VLIW para resolver el paralelismo en tiempo de compilación.
c) hace un fuerte control de los errores en tiempo de ejecución (run time errors)
d) tiene instrucciones que operan con aritmética de saturación para operaciones orientadas a multimedia.

A

b) y d) son verdaderas.

b) emplea un formato VLIW para resolver el paralelismo en tiempo de compilación.

d) tiene instrucciones que operan con aritmética de saturación para operaciones orientadas a multimedia.

36
Q

En un procesador Itanium (iA64) …

a) se emplea un formato de “palabras de instrucción largas” (VLIW).
b) el compilador resuelve cuestiones de paralelismo y arma grupos de instrucciones.
c) la predicación ayuda a mantener un flujo continuo de instrucciones en el pipeline.
d) las instrucciones pueden referenciar tres registros y un predicado.

A

Todas son correctas.

a) se emplea un formato de “palabras de instrucción largas” (VLIW).
b) el compilador resuelve cuestiones de paralelismo y arma grupos de instrucciones.
c) la predicación ayuda a mantener un flujo continuo de instrucciones en el pipeline.
d) las instrucciones pueden referenciar tres registros y un predicado.

37
Q

En MPI, la instancia ‘master’ del programa puede iniciar nuevos threads (hilos) o instancias del programa en otros nodos.
¿Verdadero o Falso?

A

Falso.

38
Q

En MPI, cada nodo corre una versión independiente del programa que puede enviar y recibir mensajes a los otros nodos.
¿Verdadero o Falso?

A

Verdadero.

39
Q

En MPI, los mensajes se pasan sólo entre thread (hilos) de un mismo proceso.
¿Verdadero o Falso?

A

Falso.