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...
Guardado en:
| Autor principal: | |
|---|---|
| Otros Autores: | |
| 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 |