Declarative, Parallel Programming For End-User Development

Alexander Asp Bock

Research output: Book / Anthology / Report / Ph.D. thesisPh.D. thesis

Abstract

Spreadsheets are popular tools in many areas such as science, finance and engineering for large, complex models that inform critical decisions. Spreadsheet end-users are usually domain experts but may not be trained IT professionals.

Shared-memory multicore processors have become commonplace commodities, but how can spreadsheet end-users leverage this powerful hardware to accelerate spreadsheet computation? They may need to collaborate with an IT department or consult professionals.

Existing solutions usually require some level of user interaction or the availability of a compute cluster. This thesis investigates the development of tools and algorithms that automatically accelerate spreadsheet recalculation in a completely transparent manner, targeting the shared-memory multicore processors of today’s computers. The declarative and functional nature of spreadsheets makes them a prime candidate for automatic parallelism.

We explore two approaches to automatic parallelism. The first dynamically attempts to discover local parallelism on-the-fly during cell evaluation. The second approach statically analyses the spreadsheet and globally partitions cells into load-balanced groups that can be executed in parallel on shared-memory multicore processors.

The work is implemented in Funcalc, a research spreadsheet application featuring higher-order functions. They can be defined directly inside the spreadsheet using the formula language endusers are already familiar with. We believe this additional expressive power combined with automatic tools for levering the underlying hardware is a powerful framework for end-user development.
Original languageEnglish
PublisherIT-Universitetet i København
Number of pages230
ISBN (Print)978-87-7949-025-3
Publication statusPublished - 2019

Fingerprint

Dive into the research topics of 'Declarative, Parallel Programming For End-User Development'. Together they form a unique fingerprint.

Cite this