z-logo
Premium
Parallel spreadsheet evaluation and dynamic cycle detection
Author(s) -
Bock Alexander Asp
Publication year - 2021
Publication title -
concurrency and computation: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.309
H-Index - 67
eISSN - 1532-0634
pISSN - 1532-0626
DOI - 10.1002/cpe.6218
Subject(s) - computer science , exploit , benchmark (surveying) , set (abstract data type) , domain (mathematical analysis) , parallelism (grammar) , computation , multi core processor , parallel computing , programming language , mathematical analysis , computer security , mathematics , geodesy , geography
Summary It was estimated there would be 72 million users using spreadsheets monthly in 2017 some of which build complex financial, scientific, and mathematical models. Most of these end‐users are not trained IT professionals but domain experts. In the age of multicore computing and ever‐increasing amounts of data, how can end‐users access this powerful, parallel hardware to accelerate spreadsheet computation? Some existing solutions are usually not fully automatic and require a level of interaction from end‐users to facilitate parallel execution. Ideally, an end‐user tool would transparently exploit the underlying hardware and automatically discover available parallelism in the spreadsheet without any required interaction. This article presents an algorithm for automatic parallel evaluation of the cells in a spreadsheet and dynamic, parallel cycle detection. It is implemented in the Funcalc research spreadsheet application which supports higher‐order functions in the spreadsheet paradigm. Altogether, this promises a powerful and expressive platform for end‐user development. Our results on a 48 logical core machine show a maximum 7–14× speed‐up on a set of benchmark spreadsheets and a maximum 21–32× speed‐up on a set of synthetic spreadsheets with predefined topologies.

This content is not available in your region!

Continue researching here.

Having issues? You can contact us here