Abstract
Spreadsheets are popular tools for end-user development and complex modelling but can suffer from poor performance. While end-users are usually domain experts they are seldom IT professionals that can leverage today’s abundant multicore architectures to offset such poor performance. We present an iterative, greedy algorithm for automatically partitioning spreadsheets into load-balanced, acyclic groups of cells that can be scheduled to run on shared-memory multicore processors. A big-step cost semantics for the spreadsheet formula language is used to estimate work and guide partitioning. The algorithm does not require end-users to modify the spreadsheet in any way. We implement three extensions to the algorithm for further accelerating computation; two of which recognise common cell structures known as cell arrays that naturally express a degree of parallelism. To the best of our knowledge, no such automatic algorithm has previously been proposed for partitioning spreadsheets. We report a maximum 24-fold speed-up on 48 logical cores.
Supported by the Independent Research Fund Denmark.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Originally referred to as the convexity constraint in [17] as it relates to convex subgraphs.
- 2.
Available unmodified at https://gerrit.libreoffice.org/gitweb?p=benchmark.git;a=tree.
- 3.
Raw data available at https://github.com/popular-parallel-programming/p3-results/tree/master/static-partitioning.
- 4.
We used the Windows Performance Monitor to monitor performance characteristics and WinDbg to inspect the managed heap.
References
Abraham, R., Erwig, M.: Inferring templates from spreadsheets. In: ICSE (2006)
Abramson, D., Sosic, R., Giddy, J., Hall, B.: Nimrod: a tool for performing parametrised simulations using distributed workstations. In: HPDC (1995)
Abramson, D., Roe, P., Kotler, L., Mather, D.: Activesheets: super-computing with spreadsheets. In: HPC (2001)
Biermann, F., Bock, A.A.: Puncalc: task-based parallelism and speculative reevaluation in spreadsheets. In: HLPP (2018)
Biermann, F., Dou, W., Sestoft, P.: Rewriting high-level spreadsheet structures into higher-order functional programs. In: Calimeri, F., Hamlen, K., Leone, N. (eds.) PADL 2018. LNCS, vol. 10702, pp. 20–35. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-73305-0_2
Bock, A.A.: A literature review of spreadsheet technology. Technical report (2016). ISBN 978-87-7949-364-3
Bock, A.A., Bøgholm, T., Sestoft, P., Thomsen, B., Thomsen, L.L.: Concrete and abstract cost semantics for spreadsheets. Technical report (2018). ISBN 978-87-7949-369-8
Cann, D.: Retire Fortran? A debate rekindled. Commun. ACM 35(8), 81–89 (1992)
Dou, W., Cheung, S.C., Wei, J.: Is spreadsheet ambiguity harmful? Detecting and repairing spreadsheet smells due to ambiguous computation. In: ICSE (2014)
EuSpRiG Horror Stories. http://eusprig.org/horror-stories.htm
Fisher, M., Rothermel, G.: The EUSES spreadsheet corpus: a shared resource for supporting experimentation with spreadsheet dependability mechanisms. In: SIGSOFT SEN (2005)
Hermans, F., Dig, D.: BumbleBee: a refactoring environment for spreadsheet formulas. In: SIGSOFT FSE (2014)
Hermans, F., Murphy-Hill, E.: Enron’s spreadsheets and related emails: a dataset and analysis. In: ICSE (2015)
Hermans, F., Pinzger, M., van Deursen, A.: Supporting professional spreadsheet users by generating leveled dataflow diagrams. In: ICSE (2011)
Leijen, D., Schulte, W., Burckhardt, S.: The design of a task parallel library. SIGPLAN Not. 44(10), 227–242 (2009)
Microsoft: HPC Services For Excel
Sarkar, V.: Partitioning and Scheduling Parallel Programs for Multiprocessors. Research Monographs In Parallel and Distributed Computing. MIT Press, Cambridge (1989)
Sestoft, P.: Spreadsheet Implementation Technology. MIT Press, Cambridge (2014)
Swidan, A., Hermans, F., Koesoemowidjojo, R.: Improving the performance of a large scale spreadsheet: a case study. In: SANER (2016)
Trudeau, J.: Collaboration and Open Source at AMD: LibreOffice. https://developer.amd.com/collaboration-and-open-source-at-amd-libreoffice/
Wack, A.P.: Partitioning dependency graphs for concurrent execution: a parallel spreadsheet on a realistically modeled message passing environment. Ph.D. thesis, Newark, DE, USA (1996)
Acknowledgements
The author would like to thank Peter Sestoft and Florian Biermann for valuable insight and discussions during the development of this work, as well as Peter Sestoft and Holger Stadel Borum for proofreading.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Bock, A.A. (2019). Static Partitioning of Spreadsheets for Parallel Execution. In: Alferes, J., Johansson, M. (eds) Practical Aspects of Declarative Languages. PADL 2019. Lecture Notes in Computer Science(), vol 11372. Springer, Cham. https://doi.org/10.1007/978-3-030-05998-9_14
Download citation
DOI: https://doi.org/10.1007/978-3-030-05998-9_14
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-05997-2
Online ISBN: 978-3-030-05998-9
eBook Packages: Computer ScienceComputer Science (R0)