Escudo de la República de Colombia Escudo de la República de Colombia
/Rendimiento de celulares y computadores mejora con novedosa técnica
Ciencia y Tecnología

Rendimiento de celulares y computadores mejora con novedosa técnica

    Para procesar una acción requerida por el usuario –como sumar, reproducir un video o buscar información–, los celulares, tabletas o computadores requieren de unidades de procesamiento o núcleos internos que, en algunos casos, pueden tardar más de lo esperado ejecutando una tarea. La aplicación de la técnica de paralelización optimiza el rendimiento de estos dispositivos, ¿por qué?

    La capacidad de los dispositivos tecnológicos para procesar una acción varía según la gama del equipo: los de baja pueden tener entre 8 y 18 núcleos, y los de alta, o más avanzados, cuentan con hasta 128 núcleos, es decir que a mayor cantidad de núcleos, mejor será su flujo de trabajo.

    Mediante la técnica de paralelización, que consiste en repartir la carga de trabajo de un equipo en los diferentes núcleos disponibles de forma paralela y no en uno solo, se redujeron los tiempos de lectura de las tareas solicitadas de 5 a 20 minutos.

    La técnica fue probada por Ana Lorena Uribe Hurtado, junto al Grupo de Ambientes Inteligentes Adaptativos (GAIA), para su investigación doctoral en Ingeniería, Industria y Organizaciones, de la Universidad Nacional de Colombia (UNAL) Sede Manizales.

    “Se crearon y ejecutaron algoritmos computacionales –cuyas versiones son costosas en el mercado–, para generar una función equitativa, ‘paralela’, de los núcleos disponibles en cada dispositivo y mejorar su rendimiento”, explica la investigadora.

    Así, les indicó a dichos algoritmos, mediante código de programación –es decir de una serie de instrucciones que un desarrollador le “ordena” ejecutar a un computador–, que el procesador hiciera una ejecución lineal o una lista de acciones consecutivas para reducir los tiempos de ejecución y el número de pasos de una tarea.

    Optimizar recursos

    En un computador se intervino la unidad central de procesamiento (CPU), una de las partes esenciales de los dispositivos electrónicos, algo así como su cerebro, pues ahí reposa la información (datos, cifras, operaciones, etc.). Lo mismo se hizo con la unidad de procesamiento gráfico o GPU, que es como el corazón, donde reposan todos los componentes visuales (imágenes, videos, fotos). Cada unidad utiliza una cantidad de núcleos para desarrollar una tarea.

    “Para el estudio se modificó el sistema de fábrica para que ejecutara la acción en un solo núcleo, y que los restantes le sirvieran de refuerzo; si se distribuye el trabajo de un computador en todos los núcleos disponibles, no habría ralentización o sobrecarga en el dispositivo”, explica la investigadora.

    Para lograr la paralelización se utilizaron tres herramientas informáticas: API, OpenMP y OpenACC, las cuales aceleran los códigos de programación creados por ella, para que el sistema interprete con mayor rapidez la lectura de información que se debe hacer, que en este caso fue clasificación y agrupamiento de datos.

    Mediante el lenguaje programación C++ y Python se obtuvieron dos métodos algorítmicos de clasificación y tres de agrupamiento.

    “Es un reto programar esta ruta de acción, debido a que no existe un parámetro o regla establecida para elaborar un código de paralelización”, comenta la doctora.

    En su trabajo aplicó los algoritmos K-Centres y k-NN mode seeking, y Fast k-NN mode seeking directamente sobre la CPU y la GPU, e identificó que existe una aceleración de la lectura de información de la máquina para aprender y reconocer nuevas tareas.

    “Por ejemplo, en una empresa de bombones, mediante un código o algoritmo la máquina computacional debe aprender a clasificar los que están bien hechos y los que salieron defectuosos”.

    Estos procesos o pasos generan un consumo de espacio de memoria y la carga de volúmenes de información y operaciones numéricas para contar o agrupar, lo cual puede tardar hasta 20 horas en un proceso de producción; sin embargo, mediante el aprovechamiento de distribución de la información, poniendo a trabajar todos los núcleos de forma secuencial, la investigadora redujo los tiempos de lectura de 5 a 20 minutos.

    El resultado determina que la ejecución de una tarea computacional se puede desarrollar en menos de dos pasos, “que es lo que buscamos con la paralelización: optimizar los recursos existentes, como la cantidad de núcleos disponibles en un equipo”.

    La investigadora menciona que este tipo de flujos de la información, mediante procesos de programación, requieren de tiempo de desarrollo para que la máquina pueda paralelizar la información en sus núcleos, siempre y cuando tenga un sistema computacional que le permita modificar las características que vienen por defecto o de fábrica, como los sistemas Intel, AMD O NVIDIA