Hawk: A Runtime System for Partitioned Objects

S. Ben Hassen, H.E. Bal, A.S. Tanenbaum

Research output: Contribution to JournalArticleAcademicpeer-review

Abstract

Hawk is a language-independent runtime system for writing data-parallel programs using partitioned objects. A partitioned object is a multidimensional array of elements that can be partitioned and distributed by the programmer. The Hawk runtime system uses the user-defined partitioning of objects and a runtime mechanism based on Partition Dependency Graphs (PDGs) to increase the granularity of data transfers and consistency checks to a partition. Hawk further oplimizes the execution of parallel operations by prefetching data and overlapping communication and computation.

We first present the partitioned object model. Then, we give an overview of Hawk and describe how it uses PDGs to reduce communication overhead and optimize parallel operations. Finally, we discuss the effectiveness of our optimization technique with two applications written on top of Hawk.
Original languageEnglish
Pages (from-to)205-230
Number of pages26
JournalJournal of Parallel and Distributed Computing
Volume12
Issue number1-3
DOIs
Publication statusPublished - 1997

Fingerprint

Runtime Systems
Dependency Graph
Partition
Communication
Data transfer
Multidimensional Arrays
Data Consistency
Prefetching
Parallel Programs
Object Model
Data Transfer
Granularity
Optimization Techniques
Overlapping
Partitioning
Optimise
Object

Keywords

  • Data Parallelism
  • Partitioned Objects
  • Data Transfers
  • Performance

Cite this

@article{519b83c43401491bb942a3a30cb79e00,
title = "Hawk: A Runtime System for Partitioned Objects",
abstract = "Hawk is a language-independent runtime system for writing data-parallel programs using partitioned objects. A partitioned object is a multidimensional array of elements that can be partitioned and distributed by the programmer. The Hawk runtime system uses the user-defined partitioning of objects and a runtime mechanism based on Partition Dependency Graphs (PDGs) to increase the granularity of data transfers and consistency checks to a partition. Hawk further oplimizes the execution of parallel operations by prefetching data and overlapping communication and computation.We first present the partitioned object model. Then, we give an overview of Hawk and describe how it uses PDGs to reduce communication overhead and optimize parallel operations. Finally, we discuss the effectiveness of our optimization technique with two applications written on top of Hawk.",
keywords = "Data Parallelism, Partitioned Objects, Data Transfers, Performance",
author = "{Ben Hassen}, S. and H.E. Bal and A.S. Tanenbaum",
year = "1997",
doi = "10.1080/01495739708941422",
language = "English",
volume = "12",
pages = "205--230",
journal = "Journal of Parallel and Distributed Computing",
issn = "0743-7315",
publisher = "Academic Press Inc.",
number = "1-3",

}

Hawk: A Runtime System for Partitioned Objects. / Ben Hassen, S.; Bal, H.E.; Tanenbaum, A.S.

In: Journal of Parallel and Distributed Computing, Vol. 12, No. 1-3, 1997, p. 205-230.

Research output: Contribution to JournalArticleAcademicpeer-review

TY - JOUR

T1 - Hawk: A Runtime System for Partitioned Objects

AU - Ben Hassen, S.

AU - Bal, H.E.

AU - Tanenbaum, A.S.

PY - 1997

Y1 - 1997

N2 - Hawk is a language-independent runtime system for writing data-parallel programs using partitioned objects. A partitioned object is a multidimensional array of elements that can be partitioned and distributed by the programmer. The Hawk runtime system uses the user-defined partitioning of objects and a runtime mechanism based on Partition Dependency Graphs (PDGs) to increase the granularity of data transfers and consistency checks to a partition. Hawk further oplimizes the execution of parallel operations by prefetching data and overlapping communication and computation.We first present the partitioned object model. Then, we give an overview of Hawk and describe how it uses PDGs to reduce communication overhead and optimize parallel operations. Finally, we discuss the effectiveness of our optimization technique with two applications written on top of Hawk.

AB - Hawk is a language-independent runtime system for writing data-parallel programs using partitioned objects. A partitioned object is a multidimensional array of elements that can be partitioned and distributed by the programmer. The Hawk runtime system uses the user-defined partitioning of objects and a runtime mechanism based on Partition Dependency Graphs (PDGs) to increase the granularity of data transfers and consistency checks to a partition. Hawk further oplimizes the execution of parallel operations by prefetching data and overlapping communication and computation.We first present the partitioned object model. Then, we give an overview of Hawk and describe how it uses PDGs to reduce communication overhead and optimize parallel operations. Finally, we discuss the effectiveness of our optimization technique with two applications written on top of Hawk.

KW - Data Parallelism

KW - Partitioned Objects

KW - Data Transfers

KW - Performance

U2 - 10.1080/01495739708941422

DO - 10.1080/01495739708941422

M3 - Article

VL - 12

SP - 205

EP - 230

JO - Journal of Parallel and Distributed Computing

JF - Journal of Parallel and Distributed Computing

SN - 0743-7315

IS - 1-3

ER -