Skip to main content

Static Partitioning of Spreadsheets for Parallel Execution

  • Conference paper
  • First Online:
Book cover Practical Aspects of Declarative Languages (PADL 2019)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 11372))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Originally referred to as the convexity constraint in [17] as it relates to convex subgraphs.

  2. 2.

    Available unmodified at https://gerrit.libreoffice.org/gitweb?p=benchmark.git;a=tree.

  3. 3.

    Raw data available at https://github.com/popular-parallel-programming/p3-results/tree/master/static-partitioning.

  4. 4.

    We used the Windows Performance Monitor to monitor performance characteristics and WinDbg to inspect the managed heap.

References

  1. Abraham, R., Erwig, M.: Inferring templates from spreadsheets. In: ICSE (2006)

    Google Scholar 

  2. Abramson, D., Sosic, R., Giddy, J., Hall, B.: Nimrod: a tool for performing parametrised simulations using distributed workstations. In: HPDC (1995)

    Google Scholar 

  3. Abramson, D., Roe, P., Kotler, L., Mather, D.: Activesheets: super-computing with spreadsheets. In: HPC (2001)

    Google Scholar 

  4. Biermann, F., Bock, A.A.: Puncalc: task-based parallelism and speculative reevaluation in spreadsheets. In: HLPP (2018)

    Google Scholar 

  5. 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

    Chapter  Google Scholar 

  6. Bock, A.A.: A literature review of spreadsheet technology. Technical report (2016). ISBN 978-87-7949-364-3

    Google Scholar 

  7. 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

    Google Scholar 

  8. Cann, D.: Retire Fortran? A debate rekindled. Commun. ACM 35(8), 81–89 (1992)

    Article  Google Scholar 

  9. Dou, W., Cheung, S.C., Wei, J.: Is spreadsheet ambiguity harmful? Detecting and repairing spreadsheet smells due to ambiguous computation. In: ICSE (2014)

    Google Scholar 

  10. EuSpRiG Horror Stories. http://eusprig.org/horror-stories.htm

  11. Fisher, M., Rothermel, G.: The EUSES spreadsheet corpus: a shared resource for supporting experimentation with spreadsheet dependability mechanisms. In: SIGSOFT SEN (2005)

    Google Scholar 

  12. Hermans, F., Dig, D.: BumbleBee: a refactoring environment for spreadsheet formulas. In: SIGSOFT FSE (2014)

    Google Scholar 

  13. Hermans, F., Murphy-Hill, E.: Enron’s spreadsheets and related emails: a dataset and analysis. In: ICSE (2015)

    Google Scholar 

  14. Hermans, F., Pinzger, M., van Deursen, A.: Supporting professional spreadsheet users by generating leveled dataflow diagrams. In: ICSE (2011)

    Google Scholar 

  15. Leijen, D., Schulte, W., Burckhardt, S.: The design of a task parallel library. SIGPLAN Not. 44(10), 227–242 (2009)

    Article  Google Scholar 

  16. Microsoft: HPC Services For Excel

    Google Scholar 

  17. Sarkar, V.: Partitioning and Scheduling Parallel Programs for Multiprocessors. Research Monographs In Parallel and Distributed Computing. MIT Press, Cambridge (1989)

    MATH  Google Scholar 

  18. Sestoft, P.: Spreadsheet Implementation Technology. MIT Press, Cambridge (2014)

    Book  Google Scholar 

  19. Swidan, A., Hermans, F., Koesoemowidjojo, R.: Improving the performance of a large scale spreadsheet: a case study. In: SANER (2016)

    Google Scholar 

  20. Trudeau, J.: Collaboration and Open Source at AMD: LibreOffice. https://developer.amd.com/collaboration-and-open-source-at-amd-libreoffice/

  21. 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)

    Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Alexander Asp Bock .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics