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...
Main Author: | |
---|---|
Other Authors: | |
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 |