Cost semantics for heterogeneous parallel functional languages

<p>In today's world parallelism is ubiquitous, and different types of parallel models and processors are becoming increasingly common. Moreover, while our programs become increasingly heterogeneous in the parallelism they employ, user-visible parallelism in our languages becomes increasin...

Full description

Bibliographic Details
Main Author: Zakian, TAK
Other Authors: Gibbons, J
Format: Thesis
Language:English
Published: 2019
Subjects:
_version_ 1797085357314932736
author Zakian, TAK
author2 Gibbons, J
author_facet Gibbons, J
Zakian, TAK
author_sort Zakian, TAK
collection OXFORD
description <p>In today's world parallelism is ubiquitous, and different types of parallel models and processors are becoming increasingly common. Moreover, while our programs become increasingly heterogeneous in the parallelism they employ, user-visible parallelism in our languages becomes increasingly homogeneous, with the parallelization onus put more and more on the compiler or runtime. This increasing divide between what is seen and what happens in our languages makes being able to determine the costs of running the same program on different types of hardware evermore important. And, in such a world, having the means to profile programs by their underlying semantic properties is crucial.</p> <p>However, while there are means of semantically profiling parallel programs written for the CPU, there are still no means to profile and reason about parallel programs that use multiple types of parallel processor based upon their underlying semantics. In this dissertation, we set out to solve this problem by presenting a cost semantic theory that allows profiling for both time and space in heterogeneous parallel programs, while also allowing higher-order constructs on the GPU. Specifically, in this dissertation we develop cost semantics for region-based heterogeneous parallel functional programming languages. We do so by developing it for a core calculus that is readily extendable to other functional programming languages.</p> <p>In order to develop a cost semantics for such a language, we first develop a novel cost semantics for a region-based homogeneous-parallel functional language residing on the CPU, along with a novel trace-based cost semantics for a similarly region-based homogeneous-parallel functional language residing on the GPU. We then develop and present a way to glue together these two languages that reside on different computational realms---statically, semantically, and operationally---to arrive at a region-based heterogeneous parallel language, and a cost theory that is able to profile programs written in that language. We then implement and evaluate our theory and show that it accurately reflects the real-world runtime characteristics of source programs.</p>
first_indexed 2024-03-07T02:07:49Z
format Thesis
id oxford-uuid:9f973626-8981-4329-ab38-76ba2efe301f
institution University of Oxford
language English
last_indexed 2024-03-07T02:07:49Z
publishDate 2019
record_format dspace
spelling oxford-uuid:9f973626-8981-4329-ab38-76ba2efe301f2022-03-27T00:59:07ZCost semantics for heterogeneous parallel functional languagesThesishttp://purl.org/coar/resource_type/c_db06uuid:9f973626-8981-4329-ab38-76ba2efe301fsemanticscomputer scienceprogramming languagesEnglishHyrax Deposit2019Zakian, TAKGibbons, JStaton, SMycroft, A<p>In today's world parallelism is ubiquitous, and different types of parallel models and processors are becoming increasingly common. Moreover, while our programs become increasingly heterogeneous in the parallelism they employ, user-visible parallelism in our languages becomes increasingly homogeneous, with the parallelization onus put more and more on the compiler or runtime. This increasing divide between what is seen and what happens in our languages makes being able to determine the costs of running the same program on different types of hardware evermore important. And, in such a world, having the means to profile programs by their underlying semantic properties is crucial.</p> <p>However, while there are means of semantically profiling parallel programs written for the CPU, there are still no means to profile and reason about parallel programs that use multiple types of parallel processor based upon their underlying semantics. In this dissertation, we set out to solve this problem by presenting a cost semantic theory that allows profiling for both time and space in heterogeneous parallel programs, while also allowing higher-order constructs on the GPU. Specifically, in this dissertation we develop cost semantics for region-based heterogeneous parallel functional programming languages. We do so by developing it for a core calculus that is readily extendable to other functional programming languages.</p> <p>In order to develop a cost semantics for such a language, we first develop a novel cost semantics for a region-based homogeneous-parallel functional language residing on the CPU, along with a novel trace-based cost semantics for a similarly region-based homogeneous-parallel functional language residing on the GPU. We then develop and present a way to glue together these two languages that reside on different computational realms---statically, semantically, and operationally---to arrive at a region-based heterogeneous parallel language, and a cost theory that is able to profile programs written in that language. We then implement and evaluate our theory and show that it accurately reflects the real-world runtime characteristics of source programs.</p>
spellingShingle semantics
computer science
programming languages
Zakian, TAK
Cost semantics for heterogeneous parallel functional languages
title Cost semantics for heterogeneous parallel functional languages
title_full Cost semantics for heterogeneous parallel functional languages
title_fullStr Cost semantics for heterogeneous parallel functional languages
title_full_unstemmed Cost semantics for heterogeneous parallel functional languages
title_short Cost semantics for heterogeneous parallel functional languages
title_sort cost semantics for heterogeneous parallel functional languages
topic semantics
computer science
programming languages
work_keys_str_mv AT zakiantak costsemanticsforheterogeneousparallelfunctionallanguages