Extensible sparse functional arrays with circuit parallelism

O'Donnell, J. T. (2015) Extensible sparse functional arrays with circuit parallelism. Science of Computer Programming, 111(1), pp. 23-50. (doi: 10.1016/j.scico.2014.12.005)

[img]
Preview
Text
98983.pdf - Accepted Version

380kB

Abstract

A longstanding open question in algorithms and data structures is the time and space complexity of pure functional arrays. Imperative arrays provide update and lookup operations that require constant time in the Random Access Machine (RAM) theoretical model, but it is conjectured that there does not exist a RAM algorithm that achieves the same complexity for functional arrays, unless restrictions are placed on the operations. The main result of this paper is an algorithm that does achieve optimal unit time and space complexity for update and lookup on functional arrays. This algorithm does not run on a RAM, but instead it exploits the massive parallelism inherent in digital circuits. The algorithm also provides unit time operations that support storage management, as well as sparse and extensible arrays. The main idea behind the algorithm is to replace a RAM memory by a tree circuit that is more powerful than the RAM yet has the same asymptotic complexity in time (gate delays) and size (number of components). The algorithm uses an array representation that allows elements to be shared between many arrays with only a small constant factor penalty in space and time. This system exemplifies circuit parallelism, which exploits large numbers of transistors per chip in order to speed up key algorithms. Extensible Sparse Functional Arrays (ESFA) can be used with both functional and imperative programming languages. The system comprises a set of algorithms and a circuit specification, and it has been implemented on a GPGPU.

Item Type:Articles
Status:Published
Refereed:Yes
Glasgow Author(s) Enlighten ID:O'Donnell, Dr John
Authors: O'Donnell, J. T.
College/School:College of Science and Engineering > School of Computing Science
Journal Name:Science of Computer Programming
Publisher:Elsevier B.V.
ISSN:0167-6423
ISSN (Online):1872-7964
Copyright Holders:Copyright © 2015 Elsevier B.V.
First Published:First published in Science of Computer Programming 111(1):23-50
Publisher Policy:Reproduced in accordance with the copyright policy of the publisher.

University Staff: Request a correction | Enlighten Editors: Update this record