option
Cuestiones
ayuda
daypo
buscar.php

Multiprocesadores (Parcial 2)

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
Multiprocesadores (Parcial 2)

Descripción:
Aprende hasta la saciedad

Fecha de Creación: 2025/12/07

Categoría: Informática

Número Preguntas: 40

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

MPI_Barrier(). Es una rutina colectiva que sirve para enviar el mismo mensaje desde el proceso root a los demás procesos dentro de un comunicador. Es una rutina colectiva que sirve para dividir los datos del bufer de envío entre los procesos dentro de un comunicador. Es una rutina colectiva que sirve para sincronizar los procesos dentro de un comunicador. Es una rutina colectiva que sirve para recoger las partes del buffer de recepción que se encuentran en los procesos dentro de un comunicador.

¿Qué devuelve MPI_COMM_RANK?. El Identificador del proceso Linux. El identificador numérico del proceso actual dentro de un comunicador MPI. La prioridad del proceso actual. El número de procesos en un programa MPI.

Si el proceso 3 manda un mensaje con tag 7 antes que el proceso 2 mande otro mensaje con tag 8, ambos al proceso 5. El proceso 5 puede leer primero el mensaje con tag 8 y luego el mensaje con tag 7. El proceso 3 no puede mandar el mensaje con tag 8 si antes no ha mandado mensajes con tags del 1 al 7. El proceso 5 debe leer primero el mensaje con tag 7 y luego el mensaje con tag 8 ya que MPI garantiza que los mensajes no se adelantan unos a otros.

MPI_Reduce(). Es una rutina colectiva que sirve para dividir los datos del bufer de envío entre los procesos dentro de un comunicador. Es una rutina colectiva que aplica una operación de reducción (como la suma) en todos los procesos del comunicador y pone el resultado en un proceso del comunicador. Es una rutina colectiva que sirve para recoger las partes del bufer de recepción que se encuentran en los procesos dentro de un comunicador.

¿Cuales son los principales riesgos del MPI_Ssend()?. Serialización. Interbloqueo. Todas las opciones.

Marca la rutina que no tiene un comunicador: Todas las respuestas tienen un comunicador. MPI_Send(). MPI_Bcast(). MPI_Init().

Un programa MPI es normalmente del tipo. SISD: Simple Instrucción, Simple Dato. SIMD: Simple Instrucción, Multiple Datos. SPMD: Simple Programa, Multiple Datos.

¿Qué combinación de rutinas MPI entre dos procesos vecinos que tienen que recibir y enviar datos uno del ortro es más eficiente?. MPI_Irecv + MPI_Send. No se sabe ya que MPI es portable pero no su eficiencia. MPI_Isend + MPI_Irecv.

MPI_Barrier(). Se debe usar solo después de las rutinas de comunicación MPI para asegurarse de que los datos están ya en el bufer de destino. Se debe usar después de cada rutina MPI para asegurarse de que los datos están ya en el bufer de destino. Normalmente no se necesita y se usa solo para debugging o profiling.

¿Cual de estas rutinas se bloquea hasta que se haya recibido o enviado el mensaje no bloqueante?. MPI_WAIT(). MPI_Test(). MPI_Get_count().

En el comando: MPI_Send(message, 13, MPICHAR, x, 10, MPI_COMM_WORLD); ¿Cuando puede modificarse x sin que se afecte el mensaje que se envía?. Antes de ejecutar la rutina. Cuando la rutina retorna, es decir en los comandos siguientes a este. Cualquiera de las opciones. En cualquier momento.

El parámetro status en el MPI_Recv() sirve para. Saber la fuente y la etiqueta del remitente del mensaje. Para poder realizar después un MPI_Wait() y estar seguro de que se han recibido los datos. Para poder realizar después un MPI_Test() y chequear que se han recibido los datos.

El comando MPI_Finalize(). Termina la ejecución del entorno MPI. Finaliza el programa. Todas las otras opciones son verdaderas.

MPI_Send(message, 4, MPI_CHAR, 5, tag, MPI_COMM_WORLD) envía un mensaje al proceso: tag. 5. 4.

¿Cual es la diferencia entre MPI_Wait() y MPI_Test()?. MPI_Wait() es no bloqueante y MPI_Test() es bloqueante. MPI_Wait() se una con MPI_Recv() y MPI_Test() con MPI_IRecv(). MPI_Wait() es bloqueante y MPI_Test() es no bloqueante.

Las rutinas de comunicación punto-a-punto bloqueantes de envío y recepción. Se pueden recibir o enviar, resp en el otro proceso con rutinas punto-a-punto solo bloqueantes. Se pueden recibir o enviar, resp. en los otros procesos con rutinas colectivas. Se pueden recibir o enviar, resp. en el otro proceso con rutinas punto-a-punto bloqueantes o no bloqueantes.

MPI_Recv(message, 4, MPI_CHAR, 5, tag, MPI_COMM_WORLD, &status) Describe el parámetro tag: Es tipo del método de comunicación. Es un número asignado por el usuario que debe casar en ambos, emisor y receptor. Es el tipo de grupo de procesos. Es el tipo de message en el mensaje de recepción.

¿Qué significa una rutina MPI de paso de mensaje no bloqueante (o asíncrona)?. La rutina retorna cuando se ha completado la transferencia del mensaje. La rutina retorna cuando todas las acciones MPI del proceso local se han realizado, pero la transferencia del mensaje puede no haber sido completada. La rutina retorna inmediatamente, pero la transferencia del mensaje podría no haberse realizado. La rutina bloquea las acciones MPI de otros procesos hasta que se hayan completado las acciones del proceso actual.

La función MPI_Init(). Solo debe ejecurase en el proceso root. Debe llamarse en cada programa MPI antes de usar otras fuciones MPI y solo debe llamarse una sola vez. Se puede ejecutar varias veces en un proceso MPI.

Un proceso MPI tiene que saber el proceso que le envía el mensaje y la etiqueta asociada. Puede recibir de cualquier proceso pero debe saber la etiqueta. No, puede recibir en esa rutina de cualquier proceso y con cualquier etiqueta si usa MPI_ANY_SOURCE y MPI_ANY_TAG. Si, para ponerlos en la correspondiente rutina de recepción.

¿En qué rutinas MPI se usa status o request?. El status se usa para esperar a que se haya realizado la acción y request para saber la fuente del mensaje. Status se usa en las rutinas de recepción bloquantes y request en las no bloqueantes ya sean de emisión o recepción. Request se usa en las rutinas de recepción bloquantes y status en las no bloqueantes ya sean de emisión o recepción.

¿Qué debe cumplir una comunicación colectiva?. La rutina colectiva usa el mismo tag en todos los procesos. La rutina colectiva debe recibirse con una rutina punto-a-punto en cada proceso. Todos los procesos deben llamar a la rutina colectiva.

¿Cual de los siguientes datos no es requerido en una llamada de paso de mensaje?. El tamaño de los datos del mensaje en número de bytes. El tipo de mensaje. La dirección de comienzo de los datos del mensaje. El número de elementos de datos en el mensaje.

El parámetro request en las rutinas de comunicación no bloqueantes sirve: Para conocer el emisor y el tag del mensaje. Para poder saber si el envío del mensaje se ha completado al usarlo como parámetro en un MPI_Wait o MPI_Test. Para establecer la etiqueta usada en el mensaje y poder seleccionar el mensaje a leer por esa etiqueta.

El comando MPI_Get_count() sirve para. Saber la fuente, la etiqueta y el número de elementos del tipo de datos recibido antes de leerlos. Para saber cuantos mensajes están pendientes de lectura. Para saber el número de byes recibidos en el mensaje antes de leerlo.

El comando: $ mpirun -np 4 xterm -hold -e MPI_hello. Ejecuta 4 terminales xterm en los cuales se ejecuta un proceso MPI_hello. Los terminales se mantendrán visibles y el usuario debe cerrarlos. Ejecuta 4 procesos MPI_hello. Las salidas por pantalla de los procesos MPI aparecen desordenadas en el mismo terminal. Ejecuta 4 procesos MPI_hello. Las salidas por pantalla de los procesos MPI aparecen ordenadas en el mismo terminal.

MPI_Isend(). Es necesario hacer un MPI_Probe() en el mismo proceso que hizo el MPI_Isend para ver si se ha completado el envío. El programa no continúa su ejecución hasta que se jaya completado el envío. El programa continua sin esperar que se haya completado el envío.

Si rank en el siguiente código es el rango del proceso actual y size es el número de procesos MPI en el comunicador, que sentencia es verdadera: for (i=0; i < size; i++) { if (rank == i) { printf("Hello from rank %d\n", rank); j = 10*i; } }. El bucle asegura que todas las operaciones se ejecutan en orden: rank 0 primero, rank 1 después,... El bucle asegura que todas las operaciones se realizan en paralelo en todos los procesos. El valor final de j es 10*(size-1) en todos los procesos. El valor final de j es 10*rank en el proceso rank.

MPI_Probe() se utiliza. Para bloquearse hasta que haya llegado un mensaje del que no se sabe el emisor ni la etiqueta. Para ver si ha llegado un mensaje del que no se sabe el emisor ni la etiqueta, sin bloquearse. Para recibir solo los mensajes que se han enviado con MPI_Isend().

El comando MPI_Get_processor_name(). Devuelve el hostname del PC donde se ejecuta el programa MPI. Devuelve el tipo de procesador, por ejemplo Intel i7-4770K. Ninguna de las opciones.

MPI_Iprobe(). Se bloquea si el mensaje que se espera no ha llegado. Se utiliza para saber si ha llegado un mensaje con cualquier fuente y tag, o con fuente y tag especificados. El proceso que lo ejecuta no se bloquea si no ha llegado el mensaje. Solo puede chequear si ha llegado un mensaje de una fuente y tag especificados.

MPI_Bcast(). Es una rutina colectiva que sirve para enviar el mismo mensaje desde el proceso root a los demás procesos dentro de un comunicador. Es una rutina colectiva que sirve para recoger las partes del bufer de recepción que se encuentran en los procesos dentro de un comunicador. Es una rutina colectiva que sirve para dividir los datos del bufer de envío entre los procesos dentro de un comunicador.

¿Cuál de la siguientes sentencias es incorrecta sobre MPI?. MPI usa un modelo de programación basado en memoria compartida, lo que significa que todos los procesos pueden acceder a la memoria compartida. Cualquier proceso MPI puede enviar y recibir mensajes directamente desde y hacia otro proceso. Las funciones MPI son estandarizadas, lo que significa que se comportan igual independientemente de la implementación MPI usada. Puedes compilar el código MPI usando cualquier implementación MPI que se ejecute en tu arquitectura.

¿Se puede enviar un vector donde cada elemento es una estructura con distintos tipos de datos en MPI?. No, solo si la estructura tiene elementos del mismo tipo de datos. Si, si se crea un tipo de dato derivado MPI_Type_struct. No, MPI solo permite el envío de los datos predefinidos en C.

MPI_Gather(). Es una rutina colectiva que sirve para enviar el mismo mensaje desde el proceso root a los demás procesos dentro de un comunicador. Es una rutina colectiva que sirve para recoger las partes del bufer de recepción que se encuentran en los procesos dentro de un comunicador. Es una rutina colectiva que sirve para dividir los datos del bufer de envío entre los procesos dentro de un comunicador.

¿Cuando retorna la rutina MPI_Recv()?. Después de que llegue el mensaje que la rutina espera y se han recopilado los datos del mensaje. Después de que llegue el mensaje que la rutina espera, pero antes de que se hayan recopilado los datos del mensaje. Después del tiempo especificado en la rutina.

¿Qué realiza la rutina MPI_Wtime()?. Devuelve el tiempo transcurrido desde un tiempo arbitrario en el pasado. Devuelve el tiempo de ejecución del proceso actual. Espera el tiempo especificado en el parámetro antes de retornar.

MPI_Irecv(). El proceso que lo ejecuta necesita realizar un MPI_Wait() para estar seguro de que se han recibido los datos. Normalmente el siguiente comando es un MPI_Wait(). Se puede usar el bufer de recepción en los siguientes comandos ya que es bloqueante.

El comando MPI_Comm_size(). Siempre devuelve el número de tareas MPI disponibles en la aplicación. Devuelve el número de procesos en el comunicador especificado. Solo funciona con el comunicador MPI_COMM_WORLD.

¿Cual es el nombre del comunicador MPI por defecto?. MPI_COMM_WORLD. COMM_WORLD. DEF_MPI_COMM_WORLD.

Denunciar Test