MULTIDATA es una plataforma que facilita la interacción y procesamiento de medios multimodales.
Una interfaz web proporciona una puerta de entrada donde los usuarios pueden subir sus archivos .zip con videos para analizar. El sistema procesa los videos y ejecuta varias herramientas especializadas en análisis de video. Al concluir el procesamiento, los videos son recomprimidos y preparados para que el usuario pueda descargar los datos resultantes.
Las herramientas de proceso de videos son las siguientes: transcripción y alineamiento del lenguaje hablado, detección automática de puntos clave del cuerpo (pose detection), análisis automático de habla y detección automática de personas.
Los archivos son manejados a través de una cola de trabajos diseñada para gestionar múltiples tareas de forma eficiente. Este proceso se acompaña de notificaciones por correo electrónico que informan a los usuarios sobre los cambios de estado de sus trabajos en la cola.
El procesamiento actual se lleva a cabo en un clúster de alto rendimiento (HPC) ubicado en la Universidad Friedrich-Alexander de Erlangen-Núremberg (FAU), que está diseñado para manejar aplicaciones que requieren un intenso uso de GPU. Utilizamos regularmente la partición Alex de este clúster, administrado por el Centro Nacional de Computación de Alto Rendimiento (NHR@FAU). El clúster Alex está equipado con 304 GPUs Nvidia A40 y 256 GPUs Nvidia A100, repartidas en 82 nodos. Cada nodo del clúster cuenta con procesadores AMD EPYC 7713 "Milan", 1,024 GB de RAM DDR4 y 14 TB de almacenamiento en SSD NVMe, proporcionando la capacidad necesaria para realizar cálculos científicos complejos y la transferencia de datos de manera rápida y eficiente.
El software está diseñado para ser compatible con cualquier clúster que posea capacidades de procesamiento GPU para sistemas de Deep Learning. Esto permite iniciar operaciones con un número reducido de nodos en la Universidad de Murcia y expandir la capacidad de procesamiento a medida que aumenten las necesidades.
En términos de tecnología y librerías, la aplicación utiliza Ruby on Rails para su funcionamiento principal, PostgreSQL para la gestión de la base de datos, y Devise para la autenticación de usuarios. Devise ofrece diversas configuraciones y métodos de autenticación, permitiendo una adaptación flexible a las necesidades específicas del proyecto, incluida la posibilidad de implementar una estrategia de autenticación de Single Sign-On (SSO) en el futuro.
Para la gestión de la cola de trabajos se utiliza Sidekiq, que se apoya en Redis para almacenar los trabajos pendientes y en proceso. Para la carga de archivos, MULTIDATA emplea Carrierwave, que proporciona una forma simple y extremadamente flexible de manejar cargas de archivos desde aplicaciones Ruby. La presentación visual de la plataforma se maneja con Bootstrap, lo que garantiza una interfaz de usuario coherente y accesible.