Dynamic web worker pool management for highly parallel javascript web applications

JavaScript web applications are improving performance mainly thanks to the inclusion of new standards by HTML5. Among others, web workers API allows multithreaded JavaScript web apps to exploit parallel processors. However, developers have difficulties to determine the minimum number of web workers...

Descripción completa

Detalles Bibliográficos
Autores: Verdú Mulà, Javier|||0000-0003-4485-2419, Costa Prats, Juan José|||0000-0003-2479-0230, Pajuelo González, Manuel Alejandro|||0000-0002-5510-6860
Tipo de recurso: artículo
Fecha de publicación:2016
País:España
Institución:Universitat Politècnica de Catalunya (UPC)
Repositorio:UPCommons. Portal del coneixement obert de la UPC
Idioma:inglés
OAI Identifier:oai:upcommons.upc.edu:2117/90716
Acceso en línea:https://hdl.handle.net/2117/90716
https://dx.doi.org/10.1002/cpe.3739
Access Level:acceso abierto
Palabra clave:Parallel processing (Electronic computers)
Simultaneous multithreading processors
HTML5
Web workers
JavaScript
Web applications
Parallelism
Multithreaded
Processament en paral·lel (Ordinadors)
Àrees temàtiques de la UPC::Informàtica::Arquitectura de computadors
Descripción
Sumario:JavaScript web applications are improving performance mainly thanks to the inclusion of new standards by HTML5. Among others, web workers API allows multithreaded JavaScript web apps to exploit parallel processors. However, developers have difficulties to determine the minimum number of web workers that provide the highest performance. But even if developers found out this optimal number, it is a static value configured at the beginning of the execution. Because users tend to execute other applications in background, the estimated number of web workers could be non-optimal, because it may overload or underutilize the system. In this paper, we propose a solution for highly parallel web apps to dynamically adapt the number of running web workers to the actual available resources, avoiding the hassle to estimate a static optimal number of threads. The solution consists in the inclusion of a web worker pool and a simple management algorithm in the web app. Even though there are co-running applications, the results show our approach dynamically enables a number of web workers close to the optimal. Our proposal, which is independent of the web browser, overcomes the lack of knowledge of the underlying processor architecture as well as dynamic resources availability changes.