Parallel Nondeterministic Programming as a Language Extension to C (Short Paper)

Lucas Kramer, Eric Van Wyk

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

This paper explores parallel nondeterministic programming as an extension to the C programming language; it provides constructs for specifying code containing ambiguous choice as introduced by McCarthy. A translator to plain C code was implemented as an extension to the ableC language specification. Translation involves a transformation to continuation passing style, providing lazy choice by storing continuation closures in a separate task buffer. This exploration considers various search evaluation approaches and their impact on correctness and performance. Multiple search drivers were implemented, including single-Threaded depth-first search, a combined breadth-And depth-first approach, as well as two approaches to parallelism. Several benchmark applications were created using the extension, including n-Queens, SAT, and triangle peg solitaire. The simplest parallel search driver, using independent threads, showed the best performance in most cases, providing a significant speedup over the sequential versions. Adding task sharing between threads showed similar or slightly improved performance.

Original languageEnglish (US)
Title of host publicationGPCE 2019 - Proceedings of the 18th ACM SIGPLAN International Conference on Generative Programming
Subtitle of host publicationConcepts and Experiences, co-located with SPLASH 2019
EditorsIna Schaefer, Christoph Reichenbach, Tijs van der Storm
PublisherAssociation for Computing Machinery, Inc
Pages20-26
Number of pages7
ISBN (Electronic)9781450369800
DOIs
StatePublished - Oct 21 2019
Event18th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, GPCE 2019, co-located with ACM SIGPLAN Conference on Systems, Programming, Languages, and Applications: Software for Humanity, SPLASH 2019 - Athens, Greece
Duration: Oct 21 2019Oct 22 2019

Publication series

NameGPCE 2019 - Proceedings of the 18th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, co-located with SPLASH 2019

Conference

Conference18th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, GPCE 2019, co-located with ACM SIGPLAN Conference on Systems, Programming, Languages, and Applications: Software for Humanity, SPLASH 2019
CountryGreece
CityAthens
Period10/21/1910/22/19

Bibliographical note

Funding Information:
This material is partially based upon work supported by the National Science Foundation (NSF) under Grant Nos. 1628929. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author and do not necessarily reflect the views of the NSF.

Keywords

  • Extensible languages
  • Nondeterministic programming
  • Parallel programming

Fingerprint Dive into the research topics of 'Parallel Nondeterministic Programming as a Language Extension to C (Short Paper)'. Together they form a unique fingerprint.

Cite this