Extensible sparse functional arrays with circuit parallelism

O'Donnell, J. (2013) Extensible sparse functional arrays with circuit parallelism. In: 15th International Symposium on Principles and Practice of Declarative Programming, Madrid, Spain, 16-18 September 2013, pp. 133-144. (doi:10.1145/2505879.2505891)

83574.pdf - Accepted Version


Publisher's URL: http://users.ugent.be/~tschrijv/PPDP2013/


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 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 very 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 with good performance.

Item Type:Conference Proceedings
Additional Information:This is the author's version of the work. It is posted here for your personal use. Not for redistribution. The definitive Version of Record was published in PPDP '13 Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming, http://dx.doi.org/10.1145/2505879.2505891.
Keywords:functional array, sparse array, extensible array, functional programming, circuit parallelism
Glasgow Author(s) Enlighten ID:O'Donnell, Dr John
Authors: O'Donnell, J.
Subjects:Q Science > QA Mathematics > QA75 Electronic computers. Computer science
College/School:College of Science and Engineering > School of Computing Science
Research Group:ENDS
Copyright Holders:Copyright © 2013 ACM
First Published:First published in PPDP '13 Proceedings of the 15th Symposium on Principles and Practice of Declarative Programming: 133-144
Publisher Policy:Reproduced in accordance with the copyright policy of the publisher.
Related URLs:

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