A case study on parallelism and multithreading in a meteorological JavaScript web application

Loading...
Thumbnail Image
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu | Master's thesis
Date
2023-01-23
Department
Major/Subject
Computer Science
Mcode
SCI3042
Degree programme
Master’s Programme in Computer, Communication and Information Sciences
Language
en
Pages
65 + 1
Series
Abstract
The web is undergoing a transformation into a fully fledged application platform. Meanwhile, the importance of leveraging available hardware capabilities, such as parallelism, is increasing. The web provides some facilities for parallelism and multithreading, but these seem to have low adoption in typical web software development. This thesis conducted a case study on parallelism and multithreading in a meteorological JavaScript web application. The aim was to study the disparity between the perceived need and lacking adoption of parallelism and multithreading on the web. More precisely, the areas of interest were the size of possible performance improvements, how often the techniques are applicable, and factors that hinder the adoption of the techniques. The research was conducted in two parts. The first part used proof-of-concept implementations that attempted to leverage parallelism and multithreading in the application's performance bottlenecks. The second part used a survey to map out developers' views on the techniques. A number of performance bottlenecks were found in the application, and three proof-of-concept solutions were created for them. Parallelism and multithreading were found to be only situationally applicable in the application. In suitable cases, performance improvements of varying amount were achieved. However, architectural problems and other restrictions were found in the enabling technologies. Developers were somewhat unfamiliar with the newer enabling technologies but showed a generally positive sentiment towards the topic. Support was shown for abstracting lower level details away from developers. Currently, the limitations of the enabling technologies may steer developers towards other solution patterns. In the future, incremental improvements and greater awareness of the technologies may increase their adoption. Internal use of parallelism and multithreading in an application framework may prove particularly beneficial.

Web-alustasta on kehittymässä täysimittainen sovellusalusta. Samanaikaisesti on muodostumassa kasvava tarve hyödyntää kaikki tietokonelaitteiston tarjoama suorituskyky, kuten rinnakkaisuus. Web-alusta tarjoaa edellytyksiä rinnakkaisuudelle ja monisäikeisyydelle, mutta menetelmien käyttö tyypillisessä web-ohjelmisto\-kehityksessä vaikuttaa jääneen vähäiseksi. Tämä työ muodosti tapaustutkimuksen rinnakkaisuudesta ja monisäikeisyydestä meteorologisessa JavaScript-pohjaisessa web-sovelluksessa. Tutkimuksen tarkoituksena oli tutkia epäsuhtaa kyseisten menetelmien ilmeisen tarpeen ja niiden vähäisen käytön välillä. Kiinnostavia kysymyksiä olivat erityisesti mahdollisten suorituskykyparannusten suuruus, menetelmien soveltuvuuden yleisyys sekä menetelmien käyttöä rajoittavat tekijät. Tutkimus toteutettiin kahdessa osassa. Ensimmäisessä osassa toteutettiin konseptitodistuksen tyyppisiä prototyyppimuutoksia, joissa sovellettiin rinnakkaisuutta ja monisäikeisyyttä tutkitun sovelluksen suorituskyvyn pullonkauloihin. Toisessa osassa kartoitettiin ohjelmistokehittäjien näkemyksiä menetelmiin liittyen. Sovelluksesta löydettiin useita suorituskyvyn pullonkauloja, joiden puitteissa tehtiin kolme prototyyppitoteutusta. Rinnakkaisuuden ja monisäikeisyyden todettiin soveltuvan vain ajoittain käytettäväksi sovelluksessa. Soveltuvissa tilanteissa saavutettiin vaihtelevan suuruisia suorituskykyparannuksia. Mahdollistavissa teknologioissa tunnistettiin arkkitehtuurillisia ongelmia ja muita rajoitteita. Uudemmat mahdollistavat teknologiat olivat jokseenkin vähän tunnettuja kehittäjien keskuudessa. Kehittäjät olivat kuitenkin yleisesti positiivisesti asennoituneita aihetta kohtaan. Tukea osoitettiin matalan tason yksityiskohtien abstrahoimiseksi pois kehittäjiltä. Nykytilassa mahdollistavien teknologioiden rajoitteet saattavat ohjata kehittäjiä käyttämään muita ratkaisumenetelmiä. Tulevaisuudessa teknologioiden asteittaiset parannukset ja parempi tunnettuus voivat kasvattaa kyseisten teknologioiden käyttöä. Rinnakkaisuuden ja monisäikeisyyden sisäinen käyttö jonkin sovelluskehyksen toimesta voisi olla erityisen hyödyllistä.
Description
Supervisor
Vuorimaa, Petri
Thesis advisor
Vuorio, Mika
Keywords
parallelism, multithreading, JavaScript, web worker
Other note
Citation