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

Autores
Libutti, Leandro Ariel
Año de publicación
2023
Idioma
español castellano
Tipo de recurso
tesis de maestría
Estado
versión aceptada
Colaborador/a o director/a de tesis
Igual, Francisco
De Giusti, Laura Cristina
Descripción
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.
Magister en Cómputo de Altas Prestaciones
Universidad Nacional de La Plata
Facultad de Informática
Materia
Ciencias Informáticas
Aplicaciones Elásticas
Tensorflow
Contenedores
Docker
Planificación de contenedores
Nivel de accesibilidad
acceso abierto
Condiciones de uso
http://creativecommons.org/licenses/by-nc-sa/4.0/
Repositorio
SEDICI (UNLP)
Institución
Universidad Nacional de La Plata
OAI Identificador
oai:sedici.unlp.edu.ar:10915/153706

id SEDICI_f4d801c79b34d652f00a1e8e89b3d45b
oai_identifier_str oai:sedici.unlp.edu.ar:10915/153706
network_acronym_str SEDICI
repository_id_str 1329
network_name_str SEDICI (UNLP)
spelling Coplanificación de procesos maleables de aprendizaje automático mediante contenedoresLibutti, Leandro ArielCiencias InformáticasAplicaciones ElásticasTensorflowContenedoresDockerPlanificación de contenedoresEn 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.Magister en Cómputo de Altas PrestacionesUniversidad Nacional de La PlataFacultad de InformáticaIgual, FranciscoDe Giusti, Laura Cristina2023-05-04info:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/acceptedVersionTesis de maestriahttp://purl.org/coar/resource_type/c_bdccinfo:ar-repo/semantics/tesisDeMaestriaapplication/pdfhttp://sedici.unlp.edu.ar/handle/10915/153706https://doi.org/10.35537/10915/153706spainfo:eu-repo/semantics/openAccesshttp://creativecommons.org/licenses/by-nc-sa/4.0/Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)reponame:SEDICI (UNLP)instname:Universidad Nacional de La Platainstacron:UNLP2025-09-29T11:39:44Zoai:sedici.unlp.edu.ar:10915/153706Institucionalhttp://sedici.unlp.edu.ar/Universidad públicaNo correspondehttp://sedici.unlp.edu.ar/oai/snrdalira@sedici.unlp.edu.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:13292025-09-29 11:39:44.965SEDICI (UNLP) - Universidad Nacional de La Platafalse
dc.title.none.fl_str_mv Coplanificación de procesos maleables de aprendizaje automático mediante contenedores
title Coplanificación de procesos maleables de aprendizaje automático mediante contenedores
spellingShingle Coplanificación de procesos maleables de aprendizaje automático mediante contenedores
Libutti, Leandro Ariel
Ciencias Informáticas
Aplicaciones Elásticas
Tensorflow
Contenedores
Docker
Planificación de 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
dc.creator.none.fl_str_mv Libutti, Leandro Ariel
author Libutti, Leandro Ariel
author_facet Libutti, Leandro Ariel
author_role author
dc.contributor.none.fl_str_mv Igual, Francisco
De Giusti, Laura Cristina
dc.subject.none.fl_str_mv Ciencias Informáticas
Aplicaciones Elásticas
Tensorflow
Contenedores
Docker
Planificación de contenedores
topic Ciencias Informáticas
Aplicaciones Elásticas
Tensorflow
Contenedores
Docker
Planificación de contenedores
dc.description.none.fl_txt_mv 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.
Magister en Cómputo de Altas Prestaciones
Universidad Nacional de La Plata
Facultad de Informática
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.
publishDate 2023
dc.date.none.fl_str_mv 2023-05-04
dc.type.none.fl_str_mv info:eu-repo/semantics/masterThesis
info:eu-repo/semantics/acceptedVersion
Tesis de maestria
http://purl.org/coar/resource_type/c_bdcc
info:ar-repo/semantics/tesisDeMaestria
format masterThesis
status_str acceptedVersion
dc.identifier.none.fl_str_mv http://sedici.unlp.edu.ar/handle/10915/153706
https://doi.org/10.35537/10915/153706
url http://sedici.unlp.edu.ar/handle/10915/153706
https://doi.org/10.35537/10915/153706
dc.language.none.fl_str_mv spa
language spa
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
http://creativecommons.org/licenses/by-nc-sa/4.0/
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
eu_rights_str_mv openAccess
rights_invalid_str_mv http://creativecommons.org/licenses/by-nc-sa/4.0/
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:SEDICI (UNLP)
instname:Universidad Nacional de La Plata
instacron:UNLP
reponame_str SEDICI (UNLP)
collection SEDICI (UNLP)
instname_str Universidad Nacional de La Plata
instacron_str UNLP
institution UNLP
repository.name.fl_str_mv SEDICI (UNLP) - Universidad Nacional de La Plata
repository.mail.fl_str_mv alira@sedici.unlp.edu.ar
_version_ 1844616271247704064
score 13.070432