Coplanificación de procesos maleables de aprendizaje automático mediante contenedores

En las últimas décadas, el avance de los algoritmos de Aprendizaje Automático (Machine Learning, ML) ha despertado el interés en la búsqueda de estrategias que logren acelerar los procesos de entrenamiento e inferencia típicos de este ámbito, especialmente cuando éstos surgen en servidores con un e...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autor principal: Libutti, Leandro Ariel
Otros Autores: Igual, Francisco
Formato: Tesis Tesis de maestria
Lenguaje:Español
Publicado: 2023
Materias:
Acceso en línea:http://sedici.unlp.edu.ar/handle/10915/153706
https://doi.org/10.35537/10915/153706
Aporte de:
id I19-R120-10915-153706
record_format dspace
spelling I19-R120-10915-1537062023-06-01T04:08:05Z http://sedici.unlp.edu.ar/handle/10915/153706 https://doi.org/10.35537/10915/153706 Coplanificación de procesos maleables de aprendizaje automático mediante contenedores Libutti, Leandro Ariel 2023-05-04 2023 2023-05-31T12:45:23Z Igual, Francisco De Giusti, Laura Cristina es Ciencias Informáticas Aplicaciones Elásticas Tensorflow Contenedores Docker Planificación de contenedores En las últimas décadas, el avance de los algoritmos de Aprendizaje Automático (Machine Learning, ML) ha despertado el interés en la búsqueda de estrategias que logren acelerar los procesos de entrenamiento e inferencia típicos de este ámbito, especialmente cuando éstos surgen en servidores con un elevado grado de paralelismo, complejidad y heterogeneidad. Típicamente, estos procesos se realizan a través de entornos de trabajo (frameworks) de propósito específico tales como Tensoflow, Keras, Caffe o Pytorch. A día de hoy, Tensorflow es uno de los frameworks más utilizados por parte de los desarrolladores de algoritmos de ML. Desde el punto de vista de rendimiento computacional, existen entre sus parámetros de configuración diversas opciones de configuración relativas al grado de paralelismo, que pueden ser fijadas a priori, pero no pueden ser reconfiguradas durante el proceso de entrenamiento o inferencia, por lo que se consideran parámetros rígidos. En situaciones en las que múltiples instancias del framework se ejecutan en una misma máquina, dicha rigidez puede derivar en problemas tales como oversuscription, degradamiento del rendimiento del sistema y/o aplicación e infrautilización de los recursos computacionales. Por lo tanto, resulta importante agregar un grado de elasticidad en Tensorflow, permitiendo aumentar la productividad del sistema en entornos dinámicos multiprogramados. Por otro lado, la utilización de contenedores como método de virtualización ligera permite una mejor administración de los recursos y portabilidad. Existen múltiples planificadores que permiten aprovechar los beneficios de los contenedores, pero solo permiten llevar a cabo una asignación estática de recursos en el momento de su creación, y en algunos casos reasignación de recursos en tiempo de ejecución; en cualquier caso, las aplicaciones en ejecución dentro del contenedor no se encuentran preparadas para reaccionar ante dicho evento, y por tanto no se adaptarán en ningún caso a la modificación en los recursos asignados al contenedor. Por todo lo comentado anteriormente, este trabajo propone el diseño e implementación de un mecanismo completo de elasticidad en el uso de recursos computacionales en el framework Tensorflow, permitiendo la reasignación dinámica de núcleos de cómputo durante la ejecución del algoritmo de ML. Además, se extiende el uso de la elasticidad a contenedores con la implementación de un controlador/cliente que permita administrar los recursos computacionales asignados a los algoritmos de ML que ejecutan internamente. Por último, se implementa un planificador de contenedores elásticos con el fin de gestionar dinámicamente los recursos del sistema entre todos los contenedores activos y definir políticas de planificación que favorezcan el rendimiento global del sistema. Facultad de Informática Tesis Tesis de maestria http://creativecommons.org/licenses/by-nc-sa/4.0/ Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) application/pdf
institution Universidad Nacional de La Plata
institution_str I-19
repository_str R-120
collection SEDICI (UNLP)
language Español
topic Ciencias Informáticas
Aplicaciones Elásticas
Tensorflow
Contenedores
Docker
Planificación de contenedores
spellingShingle Ciencias Informáticas
Aplicaciones Elásticas
Tensorflow
Contenedores
Docker
Planificación de contenedores
Libutti, Leandro Ariel
Coplanificación de procesos maleables de aprendizaje automático mediante contenedores
topic_facet Ciencias Informáticas
Aplicaciones Elásticas
Tensorflow
Contenedores
Docker
Planificación de contenedores
description En las últimas décadas, el avance de los algoritmos de Aprendizaje Automático (Machine Learning, ML) ha despertado el interés en la búsqueda de estrategias que logren acelerar los procesos de entrenamiento e inferencia típicos de este ámbito, especialmente cuando éstos surgen en servidores con un elevado grado de paralelismo, complejidad y heterogeneidad. Típicamente, estos procesos se realizan a través de entornos de trabajo (frameworks) de propósito específico tales como Tensoflow, Keras, Caffe o Pytorch. A día de hoy, Tensorflow es uno de los frameworks más utilizados por parte de los desarrolladores de algoritmos de ML. Desde el punto de vista de rendimiento computacional, existen entre sus parámetros de configuración diversas opciones de configuración relativas al grado de paralelismo, que pueden ser fijadas a priori, pero no pueden ser reconfiguradas durante el proceso de entrenamiento o inferencia, por lo que se consideran parámetros rígidos. En situaciones en las que múltiples instancias del framework se ejecutan en una misma máquina, dicha rigidez puede derivar en problemas tales como oversuscription, degradamiento del rendimiento del sistema y/o aplicación e infrautilización de los recursos computacionales. Por lo tanto, resulta importante agregar un grado de elasticidad en Tensorflow, permitiendo aumentar la productividad del sistema en entornos dinámicos multiprogramados. Por otro lado, la utilización de contenedores como método de virtualización ligera permite una mejor administración de los recursos y portabilidad. Existen múltiples planificadores que permiten aprovechar los beneficios de los contenedores, pero solo permiten llevar a cabo una asignación estática de recursos en el momento de su creación, y en algunos casos reasignación de recursos en tiempo de ejecución; en cualquier caso, las aplicaciones en ejecución dentro del contenedor no se encuentran preparadas para reaccionar ante dicho evento, y por tanto no se adaptarán en ningún caso a la modificación en los recursos asignados al contenedor. Por todo lo comentado anteriormente, este trabajo propone el diseño e implementación de un mecanismo completo de elasticidad en el uso de recursos computacionales en el framework Tensorflow, permitiendo la reasignación dinámica de núcleos de cómputo durante la ejecución del algoritmo de ML. Además, se extiende el uso de la elasticidad a contenedores con la implementación de un controlador/cliente que permita administrar los recursos computacionales asignados a los algoritmos de ML que ejecutan internamente. Por último, se implementa un planificador de contenedores elásticos con el fin de gestionar dinámicamente los recursos del sistema entre todos los contenedores activos y definir políticas de planificación que favorezcan el rendimiento global del sistema.
author2 Igual, Francisco
author_facet Igual, Francisco
Libutti, Leandro Ariel
format Tesis
Tesis de maestria
author Libutti, Leandro Ariel
author_sort Libutti, Leandro Ariel
title Coplanificación de procesos maleables de aprendizaje automático mediante contenedores
title_short Coplanificación de procesos maleables de aprendizaje automático mediante contenedores
title_full Coplanificación de procesos maleables de aprendizaje automático mediante contenedores
title_fullStr Coplanificación de procesos maleables de aprendizaje automático mediante contenedores
title_full_unstemmed Coplanificación de procesos maleables de aprendizaje automático mediante contenedores
title_sort coplanificación de procesos maleables de aprendizaje automático mediante contenedores
publishDate 2023
url http://sedici.unlp.edu.ar/handle/10915/153706
https://doi.org/10.35537/10915/153706
work_keys_str_mv AT libuttileandroariel coplanificaciondeprocesosmaleablesdeaprendizajeautomaticomediantecontenedores
_version_ 1767633997811154944