POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Horarios de Cursos 600 Veces Más Rápidos con Web Workers en CourseCast

Horarios de Cursos 600 Veces Más Rápidos con Web Workers en CourseCast

Publicado el 21/08/2025

Este artículo narra cómo logramos acelerar 600x la simulación Monte Carlo de asignación de horarios estudiantiles utilizando Web Workers y optimizaciones en el cliente

Partíamos de una versión prototipo que tardaba aproximadamente 50 segundos por solicitud de simulación y no soportaba bien unos 100 usuarios concurrentes en la nube compartida

El reto era claro: quitar el cuello de botella del servidor y ofrecer respuestas en tiempo real o incluso en menos tiempo que una carga de página

Curso CourseCast es un simulador de horarios inspirado en el sistema Course Match de la Wharton School donde cada estudiante valora cursos con una utilidad entre 0 y 100

El algoritmo original determina precios de equilibrio en función de oferta y demanda y asigna horarios maximizando utilidades y créditos dentro de las limitaciones de presupuesto de cada estudiante

Como los precios reales de equilibrio son desconocidos con antelación, CourseCast predice precios usando datos históricos y asume incertidumbre modelando cada precio como una variable aleatoria normal

Se ejecutan 100 simulaciones Monte Carlo muestreando precios y contando la frecuencia con la que aparecen cursos y combinaciones de horarios para presentar probabilidades al usuario

En la versión inicial la aplicación estaba implementada en Python y ejecuciones secuenciales de 100 instancias de un solver de programación lineal conducían a tiempos de respuesta de un minuto por usuario

La primera optimización fue cuestionar la necesidad del servidor Python y trasladar el cómputo al navegador: el formato Parquet permitió empaquetar y servir de forma eficiente todos los metadatos de cursos y los pesos del modelo para que el cliente cargara todo localmente

También se identificó una alternativa en JavaScript para resolver problemas de programación lineal, lo que eliminó la dependencia obligatoria de bibliotecas Python

La segunda optimización consistió en precomputar las reglas estáticas de conflicto entre cursos como grupos de conflicto que representan clases cuyas franjas horarias se solapan

Estos grupos de conflicto y metadatos con valores aleatorios iniciales se compactaron en un único archivo courses.parquet de tamaño reducido y se sirvieron desde CDN para reducir latencia y aprovechar cacheo en el borde

La tercera optimización atacó la naturaleza secuencial de las 100 simulaciones: cada ensayo es independiente, por lo que se puede paralelizar

Como las simulaciones son operaciones CPU bound, no eran adecuadas para async await en el hilo principal porque bloquearían el event loop; por tanto se usaron Web Workers para ejecutar el trabajo en hilos separados sin afectar la UI

Se diseñó un patrón de un solo envío y respuesta por worker, envolviendo el intercambio de mensajes en una interfaz basada en promesas para integrarlo con librerías de gestión de estado y caché en la UI

Para maximizar rendimiento se implementó un pool de threads usando navigator.hardwareConcurrency para determinar el número óptimo de workers y distribuir los 100 ensayos en batches entre los núcleos disponibles

Al reciclar workers en un pool se evitó la sobrecarga de inicialización por tarea y se ejecutaron múltiples solver en paralelo, reduciendo el tiempo total de ejecución de minutos a tiempos subsegundo en dispositivos con hardware moderno

Con el cómputo en el cliente, los conflictos precomputados y la paralelización por worker pool, CourseCast pasó de ser un prototipo limitado por la infraestructura a una solución prácticamente ilimitada en escala y muy rápida en respuesta

Lecciones clave aprendidas incluyen aprovechar el poder del navegador para offload compute cuando los datos son apropiados, precomputar información estática para evitar trabajo repetido y detectar oportunidades de paralelización en tareas independientes

En Q2BSTUDIO aplicamos estos principios para desarrollar soluciones de software a medida y aplicaciones a medida que combinan inteligencia artificial, agentes IA y arquitecturas eficientes que escalan sin necesidad de infraestructura pesada

Nuestros servicios incluyen software a medida, inteligencia artificial para empresas, servicios de ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y despliegues de paneles con power bi para visualización y análisis

Si tu proyecto requiere simulaciones paralelizables, procesamiento intensivo o agentes IA integrados, en Q2BSTUDIO podemos diseñar soluciones que muevan cómputo al cliente cuando convenga o que aprovechen la nube de forma híbrida para equilibrar seguridad y rendimiento

Contacta con Q2BSTUDIO para explorar cómo podemos transformar tu idea en una aplicación de alto rendimiento, segura y optimizada para negocio usando inteligencia artificial, ciberseguridad y servicios cloud aws y azure

Resumen de beneficios tecnológicos aplicables: menos dependencia de servidores costosos, mejora de experiencia de usuario con UI siempre responsiva, reducción de latencia mediante cacheo CDN y service workers, y escalabilidad natural al aprovechar los recursos del dispositivo

En conjunto estas técnicas permiten construir productos escalables y rápidos que mejoran la adopción por parte de usuarios finales y reducen el coste total de propiedad

Q2BSTUDIO combina experiencia técnica y foco en negocio para entregar software a medida que integra inteligencia artificial, agentes IA, power bi y servicios inteligencia de negocio con las mejores prácticas de ciberseguridad y arquitecturas cloud

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio