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

Descubre cómo aceleramos 600x la simulación Monte Carlo de horarios estudiantiles trasladando el cómputo al navegador con Web Workers y Parquet, para soluciones de software a medida.

21 ago 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

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

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.