-
Notifications
You must be signed in to change notification settings - Fork 0
Actividad 1.3
En los primeros años de las computadoras sólo se tenía un procesador, actualmente la mayoría de las computadoras tienen más de un núcleo para poder satisfacer las necesidades del usuario al realizar diversas tareas al mismo tiempo, esto se le llama paralelismo.
Para saber cómo nuestra computadora personal trabaja con los procesadores, se ejecutará el código de muestra Fig. 1.1 con 3, 6, 9, 12, 15 y 18 threads. Para cada caso, se ejecutará el programa al menos 15 veces y se realizará una gráfica mostrando la forma en cada uno de los threads solicitados atiende el llamado de servicio. Para poder acceder a los threads se utiliza la librería de OpenMP.
Código en lenguaje C para comprobar el llamado de servicio a los procesadores:
#include <stdio.h>
#include <omp.h>
#define NUM_THREADS 3 //Probar con 3, 6, 9, 12, 15 y 18 threads.
int main()
{
omp_set_num_threads(NUM_THREADS);
#pragma omp parallel
{
int ID = omp_get_thread_num();
printf("\nProcesadores(%d) ", ID);
printf("Multiples(%d) ", ID);
printf("en accion(%d) ", ID);
}
}
A continuación, se muestran las gráficas con 3, 6, 9, 12, 15 y 18 threads después de correr el código 15 veces:
Como se pueden observar en las gráficas, los procesadores que se llegan a liberar o atender el llamado de servicio primero son los primeros procesadores, en ocasiones y de manera poco probable, los procesadores intermedios llegan a atender el llamado, pero regularmente lo hacen los primeros procesadores. Dicho de otra forma, entre menos hilos sean siempre parecerá que son los mismos procesadores que atienden el llamado, pero mientras se van aumentando se nota que se llegan a desocupar primero los procesadores iniciales.
Hecho con ♡ por anthonyibrail