Contabilidad de Recursos en Sistemas de Cómputo de Alto Rendimiento en la GridUNAM
Información del reporte:
Licencia Creative Commons

El contenido de los textos es responsabilidad de los autores y no refleja forzosamente el punto de vista de los dictaminadores, o de los miembros del Comité Editorial, o la postura del editor y la editorial de la publicación.
Para citar este reporte técnico:
Flores Salgado, Y. (2024). Contabilidad de recursos en la GridUNAM. Cuadernos Técnicos Universitarios de la DGTIC, 2 (1). https://doi.org/10.22201/dgtic.ctud.2024.2.1.31
Lourdes Yolanda Flores Salgado
Dirección General de Cómputo y de
Tecnologías de Información y Comunicación
Universidad Nacional Autónoma de México
ORCID: 0000-0002-5790-5092
Resumen:
La contabilidad en sistemas de cómputo de alto rendimiento consiste en el registro sistemático de los recursos utilizados por cada trabajo o tarea que se ejecuta en el sistema, en el caso de la GridUNAM, se tiene un sistema federado donde un usuario puede enviar trabajos a cada uno de los clusters que conforman la infraestructura. La contabilidad debe registrar el uso individual en cada cluster, consolidarla en periodos determinados y permitir crear reportes consolidados de uso general de la grid. Este reporte técnico se realizó con la finalidad de explicar cómo funciona el proceso de contabilización de los recursos y explicar la metodología utilizada para su implementación en la GridUNAM.
Palabras clave:
Supercómputo, grid computacional, administración de sistemas, HPC, cluster, nodo de cómputo.
1.INTRODUCCIÓN
La iniciativa para construir una grid institucional en la Universidad Nacional Autónoma de México (UNAM), surgió para responder al programa 3.2 del Plan de Desarrollo Institucional 2019-2023 (Graue, 2020), proyecto 7 “Actualizar y consolidar la infraestructura de cómputo orientada a la investigación y capacitar al personal académico de todos los campi en materia de acceso y operación de los recursos existentes.” Para consolidar la iniciativa, participaron las dependencias y/o entidades universitarias que poseen mayores recursos de cómputo de alto rendimiento (HPC por sus siglas en inglés), siendo éstas la Dirección General de Cómputo y de Tecnologías de Información y Comunicación (DGTIC), el Laboratorio de Modelos y Datos (LAMOD) con recursos del Instituto de Astronomía Sede CU e Instituto de Ciencias Nucleares; el Instituto de Astronomía Sede Ensenada (IAE) y el Instituto de Ciencias de la Atmósfera y Cambio Climático (ICAYCC).
En la GridUNAM, nombre que se le dio a esta iniciativa, cada entidad participante aporta recursos computacionales que ofrecen un rendimiento superior a los sistemas de cómputo convencionales, los cuales se integran en un sistema federado que posee recursos de cómputo de alto rendimiento (HPC), con lo que las entidades comparten capacidades de cómputo y almacenamiento para apoyar el desarrollo de proyectos de investigación (Lineamientos de conformación y uso de la Grid UNAM, 2023).
Entre 2021 y 2023 se llevó a cabo la primera etapa del proyecto, en la cual se definió la normatividad de la GridUNAM y se construyó el prototipo. Una vez que el prototipo fue construido se requería probarlo en condiciones controladas de operación, para lo cual se invitó a un grupo de profesores e investigadores de la UNAM a trabajar en conjunto con el equipo técnico del prototipo con el fin de adecuar sus códigos y ejecutarlos en la infraestructura de la grid. Así, debido a que las políticas de uso del servicio (Politicas de uso del servicio GridUNAM, 2023), establecen que los proyectos deben ser evaluados por el Comité Académico de Supercómputo (CAS) para en su caso, ser beneficiados con una asignación de recursos, surgió la necesidad de realizar el monitoreo del uso de los recursos. En este reporte técnico se muestra el proceso de implementación de la contabilidad de recursos en la GridUNAM, el cual abarca las etapas de análisis de la configuración, elección del estilo de contabilidad, configuración, extracción y consolidación de la información contable; su objetivo es configurar el sistema de contabilidad y generar informes de uso horas-core-CPU de los usuarios en los diferentes clusters de la Grid.
2. Desarrollo técnico
La contabilidad puede ser vista como “un sistema de información mediante el cual se registra, clasifica y resume para generar informes, en forma clara, completa y fidedigna” (Velásquez y Lopera, 2020, p. 7). El valor de la contabilidad está asociado a la utilidad de ésta para la toma de decisiones y control de recursos.
Un sistema contable consta de tres elementos principales (Velásquez y Lopera, 2020, p. 8):
- Entradas: Son todos los registros ocurridos en un periodo determinado
- Proceso: Con el cual se clasifica y resume la información
- Salidas: Informes generados
Para la implementación de la contabilidad de recursos en la GridUNAM, se consideró la integración de todos los elementos de un sistema contable, así se elaboró una metodología que considerara los tres elementos. A continuación se describen los pasos que se realizaron:
2.1 Análisis de la configuración del prototipo
Para realizar la implementación de un sistema contable para la GridUNAM, se partió de analizar la configuración general del prototipo.
Como se mencionó anteriormente, en la GridUNAM cada dependencia o entidad miembro aporta recursos computacionales. En la figura 1 se muestra la configuración de la infraestructura aportada por cada miembro la cual consta de un nodo submit y un cluster HPC compuesto por un nodo maestro (nodo de control del cluster) y al menos un nodo de cálculo (nodo de procesamiento).
Figura 1
Infraestructura aportada a la GridUNAM por cada dependencia o entidad miembro

Un nodo submit es una computadora que permite a los usuarios conectarse a la infraestructura de la grid y enviar trabajos a ejecución. En cambio, un cluster HPC está formado por un conjunto de computadoras interconectadas, que funcionan como un solo recurso computacional.
Para el envío de trabajos, la configuración del prototipo cuenta con dos sistemas de administración de tareas:
- HTCondorCE, en los nodos submit.
- Slurm, en los clusters HPC.
El usuario envía sus trabajos utilizando el cliente HTCondorCE, el cual traducirá el envío y a su vez lo dirigirá para ser ejecutado en el sistema de administración de tareas del cluster HPC (Slurm).
Cada nodo submit de la infraestructura puede enviar trabajos a cualquiera de los clusters HPC de la grid, por lo cual cada cluster HPC recibirá los trabajos que le sean enviados por los nodos submit y los ejecutará en sus respectivos nodos de cálculo. Con el fin de simplificar el manejo de la información registrada y al haber una configuración homogénea donde todos los clusters de la infraestructura GridUNAM tienen configurado Slurm, se decidió utilizar las herramientas para la contabilidad de Slurm en el proceso de la implementación.
2.2 Determinar el estilo de contabilidad
Slurm es un sistema de administración de tareas, que permite realizar el registro de la contabilidad de cada trabajo o etapa del mismo, en texto plano o mediante el uso de una base de datos. Proporciona tres plugins (complementos) diferentes por medio de los cuales se puede realizar el registro, su uso se configura en el archivo slurm.conf por medio de la modificación de los parámetros siguientes: (Slurm workload manager, 2023):
- AccountingStorageType: Controla como se registra la información detallada del trabajo Archivo de texto plano o Base de datos SlurmDB.
- JobAcctGatherType: Indica el mecanismo utilizado para recopilación de datos.
- JobCompType: Controla cómo se registra la información de finalización del trabajo.
Con el fin de homogeneizar la forma en que se extrae la información de la contabilidad en otras infraestructuras HPC de la DGTIC, como es el caso de la supercomputadora Miztli y aprovechar procedimientos ya existentes para la contabilidad de recursos en sistemas HPC, se decidió utilizar la opción de registro en archivos en texto plano.
2.3 Configuración de la contabilidad en el prototipo virtual
Cuando se trabajaba en la implementación de la contabilidad, no se encontraba concluida la primera etapa de la construcción del prototipo, debido a esto y para no interferir con el avance de las pruebas y configuraciones realizadas por el grupo técnico del prototipo, se tomó la decisión de utilizar un prototipo virtualizado.
Para ello se configuró y activó la contabilidad al utilizar el plugin que permite registrar los datos de un trabajo cuando éste emplea un archivo en texto plano, al ajustar el archivo de configuración slurm.conf con los siguientes valores:
AccountingStorageType=accounting_storage/none JobAcctGatherType=jobacct_gather/linux JobCompType=jobcomp/filetxt
En la figura 2 se muestra el ciclo de vida de un trabajo enviado a la GridUNAM desde el punto de vista del sistema de contabilidad. El trabajo es enviado por el usuario desde el nodo submit al sistema HTCondorCE, el cual traduce el envío y lo reenvía al nodo maestro del cluster HPC solicitado. Como el cluster HPC maneja Slurm, es recibido por slurmctld y enviado a slurmd para su procesamiento en los nodos de cálculo correspondientes. Una vez que el trabajo termina su ejecución, slurmctld registra los datos de uso del trabajo en el archivo job_completions. El formato del archivo job_completions se muestra en la figura 3.
Figura 2
Ciclo de vida de un job en la GridUNAM con respecto a la contabilidad

Figura 3
Formato del archivo job_completions

Nota: Cada registro es una línea que comienza con la palabra JobId
En este paso, se verificó que los trabajos se registraran correctamente, para ello se enviaron trabajos de prueba y se analizó la información proporcionada por el plugin de la contabilidad y el comando de contabilidad de sacct. Como la unidad de contabilización requerida era la hora-core-CPU, se debían obtener los tiempos de inicio y fin de cada trabajo ejecutado en un formato que permitiera calcular el tiempo en hora-core-CPU, para ello se realizaron pruebas de extracción de la información en tiempo epoch (segundos transcurridos desde el 1 de enero de 1970) y se configuró la variable SLURM_TIME_FORMAT con un valor “%s” logrando obtener los datos en un formato simplificado como se muestra en la figura 4.
Figura 4
Extracción de datos simplificada del archivo job_completions

Una vez que se logró extraer la información en el formato simplificado, se escribió el procedimiento para replicar la configuración en el prototipo real.
2.4 Configuración de la contabilidad en el prototipo
En este paso se aplicó el procedimiento para la configuración de la contabilidad y se probó su funcionamiento en el cluster DGTIC. Una vez validado, se liberó el procedimiento y se solicitó a los administradores del resto de los clusters que conforman la infraestructura GridUNAM que aplicaran los cambios en sus respectivos sistemas.
En esta etapa se vio la necesidad de abrir una cuenta para el monitoreo de la contabilidad con privilegios para la extracción de la información en cada cluster que conforma la GridUNAM.
2.5 Construcción de los programas scripts de extracción y consolidación de los reportes contables
Una vez activada la contabilidad de Slurm en cada uno de los clusters de la GridUNAM, se construyeron programas script en bash y perl como herramientas auxiliares para hacer el corte contable. Una característica de la contabilidad es que se busca trabajar con información histórica, es decir, sólo se contabilizan trabajos que han terminado su ejecución.
Si bien cada trabajo ejecutado en un cluster HPC se registra al terminar su ejecución, la tarea de extraer datos en forma periódica se realiza en forma separada. Para esto se define el periodo contable, en este caso se utilizó el mes contable, es decir que la contabilidad es procesada únicamente los días 1 del mes y se extraen los datos de todos los trabajos terminados en el mes anterior; por ejemplo, el día 1 de noviembre de 2023, se extrajeron los datos correspondientes al mes de octubre de 2023, por lo que el reporte contable incluyó los datos de uso de cada trabajo terminado en el periodo contable, independientemente de su fecha de inicio.
Se configuró cada sistema para ejecutar los programas cada mes en forma automatizada, consolidando la información de todos los trabajos terminados en el periodo en un solo registro contable correspondiente al periodo, y generando un nuevo archivo consolidado por usuario. En la figura 5 se muestra un ejemplo de archivo consolidado generado a partir del archivo simplificado que se mostró en la figura 4.
Figura 5
Archivo consolidado por usuario

Nota: El formato del archivo es usuario: número de trabajos:Horas-core-CPU:TiempoEspera
En esta etapa los programas script generados extraen en forma automatizada la información del archivo job_completions, la simplifican al cambiar el formato de ésta y consolidan por usuario en un archivo de texto plano cuyo nombre corresponde a repCLUSTER_Año_Mes.txt (donde CLUSTER se cambia por el código del cluster correspondiente en la infraestructura GridUNAM). Además, estos programas agregan el registro de usuario TOTAL que contiene el dato consolidado de toda la contabilidad, el cual se utiliza como dato de control para verificar los registros contables.
2.6 Construcción de los programas script para transferencia de datos y alimentación de la base de datos de un servidor LAMP
En este paso se construyeron los programas bash script necesarios para verificar la generación de los reportes consolidados de cada cluster y centralizar la información en un servidor LAMP (Linux, Apache, MySQL y PHP) que es un servidor que permitirá visualizar los reportes automatizados mediante un navegador Web.
En la tabla 1 se observan los nombres que toman los archivos contables transferidos al sistema centralizado dependiendo del cluster HPC donde fueron generados, así como el formato utilizado para determinar el periodo contable al que pertenecen, en este caso se asocian los datos año y mes a cada archivo generado. Por ejemplo, el archivo repDGTIC_2023_06.txt contiene los datos de uso en horas-core-CPU consolidados por usuario de todos los trabajos ejecutados en el cluster DGTIC, y que terminaron su ejecución en el periodo comprendido del 1 al 30 de junio de 2023.
Tabla 1
Reportes de contabilidad en texto plano por dependencia o entidad participante
Dependencia/Entidad | Archivo |
DGTIC | repDGTIC_año_mes.txt |
LAMOD | repLAMOD_año_mes.txt |
IAE | repIAE_año_mes.txt |
ICAYCC | repICAYCC_año_mes.txt |
Para subir los datos de cada archivo a la base de datos y sean diferenciados de los datos obtenidos en otros periodos contables, se añade a cada registro la información del año y mes en que se generó, la cual se toma del nombre del archivo. Con el fin de consultar los datos desde un navegador web, se escribieron 3 programas modelo en php para la extracción de datos: por usuario, por cluster y globales.
2.7 Resultados
En la figura 6 se muestra la configuración final para el sistema de contabilidad de recursos en la GridUNAM, por claridad se considera la presencia de un único bloque de infraestructura formado por un nodo submit y un cluster con su propia implementación de Slurm de la cual se extrae la contabilidad en el archivo repCLUSTER_año_mes.txt, el cual es enviado a un sistema LAMP para ser almacenado en una base de datos. Sin embargo, como la infraestructura total de la GridUNAM está constituida por cuatro nodos submit y cuatro clusters, la información contable de cada cluster se concentra en una base de datos única.
Figura 6
Implementación de la contabilidad de recursos en la GridUNAM

Al final, los datos generados posr la contabilidad de cada cluster HPC que conforma la infraestructura quedan disponibles para ser visualizados en tres formas distintas: por usuario, por cluster y en forma global, como se muestra en la figura 7.
Figura 7
Reportes de la contabilidad de recursos en la GridUNAM

Para la primera etapa del prototipo, sólo se requirió generar y visualizar datos simples por usuario, por lo cual los reportes obtenidos en una página web cumplieron el requerimiento y se consideró que la implementación concluye con la generación de estos informes que constituyen la base que permiten visualizar mes a mes el uso de recursos, y en su caso elaborar informes anuales que den seguimiento a los proyectos aprobados para la etapa dos del proyecto GridUNAM.
3. Conclusiones
La implementación de la contabilidad de recursos en la GridUNAM constituye una herramienta útil para controlar el uso de la infraestructura. A través del sistema contable construido, se pueden generar informes de uso de horas-core-CPU que permitan observar el aprovechamiento de los recursos asignados y disponibles. Con estos datos se puede conocer el uso específico de cada cluster, o de toda la infraestructura. Además, los datos se podrían utilizar para generar nuevas estadísticas como el uso en periodos anuales o semestrales, e incluso para extraer datos de comportamiento tales como usuarios con mayor consumo, cluster HPC más utilizado, etc.
La información generada servirá principalmente para dar seguimiento sobre la asignación y consumo de recursos. En un futuro puede ser útil para tomar decisiones sobre la necesidad de crecimiento o actualización de la infraestructura. Para la etapa dos de la iniciativa GridUNAM y como un trabajo a futuro, se puede asociar la información por grupos de usuarios, de tal forma que se pueda dar seguimiento integral al consumo de horas-core-CPU de los proyectos aprobados. Además, sería conveniente modificar la página web para mejorar el despliegue de los informes realizados, e incluir la generación de gráficas de uso por cluster y de la grid.
4. Agradecimientos
Agradezco a Eduardo Ortega (DGTIC, UNAM) por el apoyo para la utilización del prototipo virtual y por facilitarme los accesos al prototipo físico. Asimismo, agradezco a los administradores de los clusters HPC de la infraestructura por el apoyo brindado para la implementación de la contabilidad en cada uno de ellos.
REFERENCIAS BIBLIOGRÁFICAS
Graue Wiechers, E. (2020, Junio). Plan de Desarrollo Institucional 2019-2023. Ciudad Universitaria, Universidad Nacional Autónoma de México. [Archivo PDF]. https://www.rector.unam.mx/doctos/PDI2019-2023.pdf
Lineamientos de conformación y uso de la Grid UNAM. (2023). https://grid.unam.mx/wp-content/uploads/2023/07/lineamientos2023.pdf
Politicas de uso del servicio GridUNAM. (2023). https://grid.unam.mx/wp-content/uploads/2023/08/Politicas_grid.pdf
Slurm workload manager. (2023). Accounting and Resource Limits. https://slurm.schedmd.com/accounting.html
Velásquez, G. S. M., y Lopera, A. G. (2020). Fundamentos de Contabilidad - 1ra edición: Con NIC y Normas Internacionales de Información Financiera. Ecoe Ediciones.