Está en la página 1de 27

1. Señale todas las opciones correctas: los siguientes son niveles de paralelismo.

2. Señale todas las opciones correctas: para el mapeo de hilos o procesos a los procesadores o núcleos, en Linux, el programador
puede utilizar los siguientes mecanismos.

3. La instrucción addv a,b,c (a=b+c; donde a,b y c son vectores de números enteros), es un paralelismo de tipo:

4. Que tipos de paralelismo utilizaría un servidor de bases de datos para procesar varios INSERT de manera concurrente:

5. ¿Cuáles de las siguientes técnicas son utilizadas para reducir el tiempo de acceso a memoria?

6. Utilizar caches separados para instrucciones y datos utiliza mejor el espacio del cache

7. El cache directo utiliza mejor la capacidad de almacenamiento que el cache asociativo

8. El diámetro de una red hipercubo de 512 nodos es:

9. Si ¾ de un programa es infinitamente paralelizable, ¿cuál es la máxima aceleración que se puede obtener para dicho programa?

10. ¿Cuántos bits utiliza para la etiqueta (TAG) el siguiente cache asociativo por conjuntos (set associative)?
• Tamaño de la memoria = 1MB
• Tamaño del cache = 64 KB
• Tamaño del bloque = 4B
• Tamaño del conjunto = 4 bloques
11. Para el mismo cache, pero utilizando mapeo directo, ¿cuál sería el tamaño de la etiqueta?

12. Sin paralelismo a nivel de instrucciones; que tipo de dependencia produciría la ejecución de la siguiente ejecución de
instrucciones:

R0 <- R1 + 5
R1 <- R2 – R3

13. Para encontrar la cantidad de veces que se repite el número 3 en un arreglo de 500x500, ¿cómo debería distribuir los datos (el
arreglo) entre cuatro procesadores, si dicho arreglo está almacenado en filas?

14. Considere dos hilos ejecutando los siguientes segmentos de código dentro del mismo proceso:

Hilo 1: Hilo 2:

• Mutex.lock(m1) • Mutex.lock(m2)
• C++ • C++
• Mutex.unlock(m1) • Mutex.unlock(m2)

Los dos hilos:

1. Una sección crítica de un programa paralelo es:

2. Los hilos de un programa paralelo intercambian información (marque todas las opciones que sean correctas):

3. Considere 2 computadores, A y B, con arquitecturas RISC y CISC, respectivamente. Al ejecutar el programa P, los computadores
obtienen el mismo resultado en MIPS. Señale todas las proposiciones que son verdaderas sobre el rendimiento de los
mencionados computadores:
4. Considere una implementación de MPI sobre TCP. Si MPI utiliza un buffer de 2 KB (1 KB = 1024 Bytes) y TCP utilizar un buffer de
4 KB, el siguiente código bloquearía al programa, si la contraparte no ejecuta la correspondiente operación MPI_Recv()?

MPI_Send (sendbuf1, 1030, MPI_CHAR, dst, tag, comm);


MPI_Send (sendbuf1, 1030, MPI_CHAR, dst, tag, comm);

5. Considere una implementación de MPI sobre TCP. Si MPI utiliza un buffer de 2 KB (1 KB = 1024 Bytes) y TCP utiliza un buffer de
4 KB, el siguiente código bloquearía al programa, si la contraparte no ejecuta la correspondiente operación MPI_Recv()?

MPI_Send (sendbuf1, 2050, MPI_CHAR, dst, tag, comm);


MPI_Send (sendbuf1, 1024, MPI_CHAR, dst, tag, comm);

6. En el modelo BSP:

7. Considere las redes hipercubo y anillo para la multiplicación matriz * vector; señale todas las proposiciones que son verdaderas
sobre el tiempo total de ejecución (TTE).

8. Si el computador A obtiene un resultado SPECspeed mayor al del computador B por un factor de 1,5; entonces:

9. Si dos hilos de un programa ejecutan únicamente el siguiente bloque de código en un computador con varios núcleos:
{
C = 4;
C = C + 2;
}

¿Cuál será el valor de C al final del programa, considerando que C es una variable compartida?

10. Si dos hilos de un programa ejecutan únicamente el siguiente bloque de código en un computador con varios núcleos:

{
Mutex.lock();
C = 4;
C = C + 2;
Mutex.unlock();

¿Cuál será el valor de C al final del programa, considerando que C es una variable compartida?

11. En un proceso de multiplicación matriz * vector (A * b = c) iterativo (el vector c pasa a ser el vector b en la siguiente iteración),
realizado como una serie de productos escalares, qué operaciones de comunicación se debe utilizar, en una red hipercubo
(asumir que uno de los nodos almacena inicialmente la matriz A y el vector b y que el mismo nodo debe almacenar el resultado
final c)?

12. En un proceso de multiplicación matriz * vector (A * b = c) iterativo (el vector c pasa a ser el vector b en la siguiente iteración),
realizado como una serie de productos escalares, qué operaciones de comunicación se debe utilizar, en una red “fat tree”
(asumir que uno de los nodos almacena inicialmente la matriz A y el vector b y que el mismo nodo debe almacenar el resultado
final c)?

13. Si ¾ de un programa es infinitamente paralelizable, ¿cuál es la máxima aceleración que se puede obtener para dicho programa?

14. Cuántos supersteps ejecutan los procesos en la siguiente función:


Int reverse (int x) {
bsp_push_reg (&x, sizeof(int));
bsp_sync();
bsp_put (bsp_nprocs() – bsp_pid() – 1, &x, &x, 0, sizeof(int));
bsp_sync();
bsp_pop_reg(&x);
bsp_sync();
return x;
}

1. ¿Cuántos hilos estarán activos en el punto marcado en el siguiente código?

main () {
pthread_create(&th1, …);
/*NÚMERO DE HILOS EN ESTE PUNTO?*/
pthread_join (th1);
}

2. ¿Cuál es el valor de la variable c que producirá el siguiente programa?

func () {
int c = c+ 1;
}

main () {
int c = 1;
pthread_create (&th1, &attr, func, …);
printf(“%d\n”, c)
pthread_join (th1);
}

3. ¿Cuál es el valor de la variable c, que producirá el siguiente programa?

Int c;

func () {
int c = c+ 2;
}

main () {
c = 0;
pthread_create (&th1, &attr, func, …);
pthread_create (&th2, &attr, func, …);
pthread_join (th1);
printf(“%d\n”, c)
pthread_join (th2);
}
4. Considere un “pipeline” para procesar documentos en 5 fases. ¿Cuál es el (work y span) si se procesan 250 documentos?

5. Considere una clase totalmente sincronizada, en Java. Para evitar deadlocks entre hilos que invocan los métodos sincronizados
de dicha clase:

6. ¿Cuál es (son) el (los) valor (es) posibles de la variable “resultado”?

ExecutorService.executor = Executor.newFixedThreadPool(2);
Future<Integer> future = executor.submit() -> {
TimeUnit.SECONDS.sleep(2);
return 987;
});
resultado = future.get(2, TimeUnit.SECONDS);

7. ¿Qué valor de la variable n imprimirá el siguiente código?

int n = 0;
void sumar() {
n = n + 1;
}
ExecutorService.executor = Executor.newFixedThreadPool(2);
IntStream.range(0, 10000).forEach(I -> executor.submit(sumar));
stop(executor);
Sytem.out.println(n);

8. ¿Cuáles serán las posibles planificaciones (scheduling) estáticas para 2 hilos, de los siguientes bucles?

#praga omp parallel for collapse (2)


for(int i=1; i<=4; i++)
#pragma omp parallel for
for (int j=1; j<=4, j++)

9. ¿Cuál será el valor de variable “total”, con 5 hilos?

total = 0;
#pragma omp parallel for
for (int i=1; i<=5; i++)
total = total + I;
printf(“%d\n”, total);

10. Considere un kernel CUDA para sumar dos vectores de 1024 elementos. El kernel es ejecutado con bloques bidimensionales de
hilos:

saxpy<<<32, (8,4)>>>(1024, d_x, d_y);

¿Cuál es la opción correcta para calcular el índice que le corresponde a cada hilo?

1. ¿Cuál de las siguientes secuencias de llamadas a la API sockets es correcta para un cliente HTTP?

2. SSH es una aplicación con estado

3. El rendimiento de HTTP depende de:

4. ¿Cuál es la mejor solución para la aplicación NTP?

5. La API sockets es:

6. En un computador big-endian, los bytes de la dirección IP 192.168.1.3 se almacenan de la siguiente manera. Considere que el
primer byte ocupa la dirección más baja de memoria.

7. ¿Cuáles de las siguientes secuencias son correctas para un servidor concurrente orientado a conexión? [funcion1(); funcion2();]
representa un bucle de las funciones.
8. ¿Cuáles de las siguientes secuencias de llamadas son correctas para el servidor echo concurrente UDP?

9. Considere la siguiente secuencia generada por XDR al procesar un árbol binario (subárbol izquierdo, raíz, subárbol derecho)

TTF4F2TF5F1TTF6F3TF7F

¿Cuáles de las siguientes proposiciones son verdaderas?

10. ¿Cuáles de las siguientes son direccione RPC validas?

11. Una nube para prestar servicios solo a las universidades públicas del Ecuador es:

1. Cuáles de los siguientes son modelos computacionales (paralelos)

2. Cuáles de los siguientes son pasos para paralelizar un programa:

3. En el paralelismo a nivel de instrucciones debemos considerar:

4. En los programas OpenMPI:


5. Las siguientes son calendarizaciones validas de bucles for:

6. En el siguiente código:

for (i=0; i<100; i++)


for (j=0; j<100; j++)
B[i][j] = A[j][i];

La granularidad máxima de paralelismo es:

7. OpenMPI siempre entrega los mensajes entre dos nodos en el mismo orden en que fueron enviados?

8. En la multiplicación matriz * vector, con combinaciones lineales:

9. En el rendimiento de la CPU depende de:

10. Teóricamente, el speedup de un programa paralelo puede ser mayor que el número de procesadores.

1. La mircoarquitectura es:

2. Paralelismo se puede dar en los siguientes niveles:

3. ¿Qué factores afectan negativamente el rendimiento de pipeline de un procesador?

4. ¿Cuáles de las siguientes son clasificaciones de la taxonomía de Flynn?

5. ¿Cuáles son topologías de redes de interconexión?


6. Livelock es cuando dos más hilos se bloquean mutuamente

7. Para evitar el efecto negativo de las líneas de cache se debe utilizar:

8. Considere dos hilos ejecutando los siguientes segmentos de código dentro del mismo proceso:

Hilo 1: Hilo 2:

• Mutex.lock(m1) • Mutex.lock(m2)
• C++ • C++
• Mutex.unlock(m1)
Mutex.unlock(m2)

Los dos hilos pueden producir un escenario de deadlock:

9. Que afecta el rendimiento de las redes de interconexión

10. ¿Cuáles de las siguientes son consideradas unidades de computación paralela?

1. Señale cuales de los siguientes protocolos tienen estado:

2. En un sistema distribuido se puede tener concurrencia:

3. En Linux, concurrencia se puede implementar con:

4. Livelock es cuando dos o más hilos se bloquean mutuamente

5. Para evitar el efecto negativo de las líneas de cache se debe utilizar:


6. Cuál de los siguientes factores NO afecta el rendimiento de HTTP

7. Considere dos hilos ejecutando los siguientes segmentos de código dentro del mismo proceso:

Hilo 1: Hilo 2:

• Mutex.lock(m1) • Mutex.lock(m2)
• C++ • C++
• Mutex.unlock(m1)
Mutex.unlock(m2)

Los dos hilos pueden producir un escenario de deadlock.

8. Cuáles de los siguientes son locks estructurados:

9. Los sockets funcionan en la capa de sesión del modelo OSI

10. Qué llamadas a la API sockets no utilizan un cliente:

1. La microarquitectura es:

2. Paralelismo se puede dar en los siguientes niveles:

3. ¿Qué factores afectan negativamente el rendimiento del pipeline de un procesador?

4. ¿Cuáles de las siguientes son clasificaciones de la taxonomía de Flynn?

5. ¿Cuáles son topologías de redes de interconexión?


6. Livelock es cuando dos o más hilos se bloquean mutuamente

7. Para evitar el efecto negativo de las líneas de cache se debe utilizar:

8. Considere dos hilos ejecutando los siguientes segmentos de código dentro del mismo proceso:

Hilo 1: Hilo 2:

• Mutex.lock(m1) • Mutex.lock(m2)
• C++ • C++
• Mutex.unlock(m1)
Mutex.unlock(m2)

Los dos hilos pueden producir un escenario de deadlock.

9. Que afecta el rendimiento de las redes de interconexión

10. ¿Cuáles de las siguientes son consideradas unidades de computación paralela?

1. Señale cuales de los siguientes protocolos tienen estado

2. En un sistema distribuido se puede tener concurrencia:

3. En Linux, concurrencia se puede implementar con:

4. Livelock es cuando dos o más hilos se bloquean mutuamente

5. Para evitar el efecto negativo de las líneas de cache se debe utilizar:

6. Cual de los siguientes factores NO afectan el rendimiento de HTTP


7. Considere dos hilos ejecutando los siguientes segmentos de código dentro del mismo proceso:

Hilo 1: Hilo 2:

• Mutex.lock(m1) • Mutex.lock(m2)
• C++ • C++
• Mutex.unlock(m1)
Mutex.unlock(m2)

Los dos hilos pueden producir un escenario de deadlock

8. Cuáles de los siguientes son locks estructurados

9. Los sockets funcionan en la capa de sesión del modelo OSI

10. Que llamadas a la API sockets no utiliza un cliente:

1. Cuales de los siguientes son modelos computacionales (paralelos):

2. Cuáles de los siguientes son pasos para paralelizar un programa

3. En el paralelismo a nivel de instrucciones debemos considerar:

4. En los programas OpenMPI:

5. Las siguientes son calendarizaciones validas de bucles for

6. En el siguiente código:

for (i=0; i<100; i++)


for (j=0; j<100; j++)
B[i][j] = A[j][i];

La granularidad máxima de paralelismo es:


7. OpenMPI siempre entrega los mensajes entre dos nodos en el mismo orden en que fueron enviados?

8. En la multiplicación matriz * vector, con combinaciones lineales:

9. El rendimiento de la CPU depende de:

10. Teóricamente, el speedup de un programa paralelo puede ser mayor que el número de procesadores

1. 2PC es:

2. Cuales de los siguientes son protocolos distribuidos:

3. El rendimiento de HTTP depende de:

4. Cuales de las siguientes opciones constituyen mecanismos de optimización de HTTP

5. Cuales de las siguientes llamadas pueden utilizar un cliente orientado a conexión:

6. El protocolo NTP utiliza concurrencia en:

7. En una arquitectura Little-endian, cual es el orden de los bytes del entero (decimal) 520, asumiendo que el byte de la izquierda
está almacenado en la dirección más baja de memoria:

8. RPC se implementa en la capa de:

9. Cuales de las siguientes son referencias remotas en RPC:


10. Señale las opciones correctas. En RMI:

1. Alta disponibilidad a nivel de hardware se logra mediante:

2. Cual es la disponibilidad del acceso a un servidor, el cual se debe conectar mediante TRES enrutadores, cada uno con una
disponibilidad de 0,997. El servidor tiene una disponibilidad de 0,998. Los enrutadores y el servidor están conectados en serie:

3. En VRRP:

4. Señale las opciones correctas. En RMI:

5. En los programas OpenMP:

6. Cuales de los siguientes son protocolos distribuidos:

7. En map – reduce

8. Cuales de las siguientes llamadas de la API sockets son utilizadas por los servidores concurrentes orientados a conexión:

9. La función getservbyname() se utiliza para obtener:


10. Para evitar el efecto negativo de las líneas de cache (false sharing) se debe utilizar:

1. En una arquitectura Little-endian, cual es el orden de los bytes del entero 530

2. Para le enumeración:

Enumeración – enum (RED=2, YELLOW=3, BLUE=5) colors;

Como se almacenaría el color YELLOW en XDR.

3. El código

int i = 260;
FILE *fp;
fp = fopen(“archivo1”);
xdrmem_create (xdrp, buf, len, XDR_ENCODE);
xdr_int (xdrp, &i);

Grabaría:

4. RPC funciona a nivel de:

5. En RPC:

6. En la siguiente lista, cuales son protocolos de seguridad

7. Que autoridades intervienen en una PKI

8. Que servidores pueden ser clientes LDAP


9. Cual de los siguientes DN (distinguished name) son válidos:

10. Una base de datos física LDAP puede ser:

1.

2.

3.

4.

5.

6.

7.
8.

9.

10.

1.

2.

3.

4.

5.

6.

7.

8.
9.

10.

1.

2.

3.

4.

5.

6.

7.
8.

9.

10.

1.

2.

3.

4.
5.

6.

7.

8.

9.

10.

1.

2.

3.

4.

5.
6.

7.

8.

9.

10.

1.

2.
3.

4.

5.

6.

7.

8.

9.

10.

1.
2.

3.

4.

5.

6.

7.

8.

9.

10.
1.

2.

3.

4.

5.

6.

7.

8.

9.
10.

1.

2.

3.

4.

5.

6.

7.
8.

9.

10.

También podría gustarte