Skip to content

Actividad 1.3

Anthony Ibrail Ortega Méndez edited this page Nov 3, 2022 · 4 revisions

Introducción

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.

Desarrollo

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);
    }
}

Resultados

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:

image

image

image

image

image

image

Conclusiones

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.

Clone this wiki locally