The data partitioning graph: Extending data and control dependencies for data partitioning

Tsuneo Nakanishi, Kazuki Joe, Hideki Saito, Constantine D. Polychronopoulos, Akira Fukuda, Keijiro Araki

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

2 Citations (Scopus)

Abstract

Scalability and cost considerations suggest that distributed and distributed shared memory parallel computers will dominate future parallel architectures. These machines could not be used effectively unless efficient automatic and static solutions to the data partitioning and placement problem become available. Significant progress toward this end has been made in the last few years, but we are still far from having general solutions which are efficient for all classes of applications. In this paper we propose the data partitioning graph (DPG) as an intermediate representation for parallelizing compilers, which augments previous intermediate representations, and provides a framework for carrying out partitioning and placement of not only regular data structures (such as arrays), but also of irregular structures and scalar variables. Although recent approaches to task-graph-based intermediate representations focus on representing data and control dependencies between tasks, they largely ignore the use of program variables by the different tasks. Traditional data partitioning methods usually employ algorithm-dependent techniques, and are considered independently of processor assignments (which ought to be handled simultaneously with data partitioning). Moreover, approaches to data partitioning concentrate exclusively on array structures. By explicitly encapsulating the use of program variables by the task nodes, the DPG provides a framework for handling data partitioning as well as processor assignment in the same context. We also discuss the hierarchical data partitioning graph (HDPG) which encapsulates the hierarchy of the compiled programs and is used to map the hierarchy of computations to massively parallel computers with distributed memory system.

Original languageEnglish
Title of host publicationLanguages and Compilers for Parallel Computing - 7th International Workshop, 1994, Proceedings
EditorsKeshav Pingali, David Padua, Alex Nicolau, Utpal Banerjee, David Gelernter
PublisherSpringer Verlag
Pages170-185
Number of pages16
ISBN (Print)354058868X, 9783540588689
Publication statusPublished - Jan 1 1995
Event7th International Workshop on Languages and Compilers for Parallel Computing, 1994 - Ithaca, United States
Duration: Aug 8 1994Aug 10 1994

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume892
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Other

Other7th International Workshop on Languages and Compilers for Parallel Computing, 1994
CountryUnited States
CityIthaca
Period8/8/948/10/94

Fingerprint

Data Partitioning
Data storage equipment
Data handling
Parallel architectures
Graph in graph theory
Data structures
Scalability
Computer systems
Parallel Computers
Costs
Assignment
Parallelizing Compilers
Data Placement
Distributed Shared Memory
Hierarchical Data
Task Graph
Parallel Architectures
Distributed Memory
General Solution
Placement

All Science Journal Classification (ASJC) codes

  • Theoretical Computer Science
  • Computer Science(all)

Cite this

Nakanishi, T., Joe, K., Saito, H., Polychronopoulos, C. D., Fukuda, A., & Araki, K. (1995). The data partitioning graph: Extending data and control dependencies for data partitioning. In K. Pingali, D. Padua, A. Nicolau, U. Banerjee, & D. Gelernter (Eds.), Languages and Compilers for Parallel Computing - 7th International Workshop, 1994, Proceedings (pp. 170-185). (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 892). Springer Verlag.

The data partitioning graph : Extending data and control dependencies for data partitioning. / Nakanishi, Tsuneo; Joe, Kazuki; Saito, Hideki; Polychronopoulos, Constantine D.; Fukuda, Akira; Araki, Keijiro.

Languages and Compilers for Parallel Computing - 7th International Workshop, 1994, Proceedings. ed. / Keshav Pingali; David Padua; Alex Nicolau; Utpal Banerjee; David Gelernter. Springer Verlag, 1995. p. 170-185 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics); Vol. 892).

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

Nakanishi, T, Joe, K, Saito, H, Polychronopoulos, CD, Fukuda, A & Araki, K 1995, The data partitioning graph: Extending data and control dependencies for data partitioning. in K Pingali, D Padua, A Nicolau, U Banerjee & D Gelernter (eds), Languages and Compilers for Parallel Computing - 7th International Workshop, 1994, Proceedings. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 892, Springer Verlag, pp. 170-185, 7th International Workshop on Languages and Compilers for Parallel Computing, 1994, Ithaca, United States, 8/8/94.
Nakanishi T, Joe K, Saito H, Polychronopoulos CD, Fukuda A, Araki K. The data partitioning graph: Extending data and control dependencies for data partitioning. In Pingali K, Padua D, Nicolau A, Banerjee U, Gelernter D, editors, Languages and Compilers for Parallel Computing - 7th International Workshop, 1994, Proceedings. Springer Verlag. 1995. p. 170-185. (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)).
Nakanishi, Tsuneo ; Joe, Kazuki ; Saito, Hideki ; Polychronopoulos, Constantine D. ; Fukuda, Akira ; Araki, Keijiro. / The data partitioning graph : Extending data and control dependencies for data partitioning. Languages and Compilers for Parallel Computing - 7th International Workshop, 1994, Proceedings. editor / Keshav Pingali ; David Padua ; Alex Nicolau ; Utpal Banerjee ; David Gelernter. Springer Verlag, 1995. pp. 170-185 (Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)).
@inproceedings{92ed3500dc194760bcbb4526e8f90079,
title = "The data partitioning graph: Extending data and control dependencies for data partitioning",
abstract = "Scalability and cost considerations suggest that distributed and distributed shared memory parallel computers will dominate future parallel architectures. These machines could not be used effectively unless efficient automatic and static solutions to the data partitioning and placement problem become available. Significant progress toward this end has been made in the last few years, but we are still far from having general solutions which are efficient for all classes of applications. In this paper we propose the data partitioning graph (DPG) as an intermediate representation for parallelizing compilers, which augments previous intermediate representations, and provides a framework for carrying out partitioning and placement of not only regular data structures (such as arrays), but also of irregular structures and scalar variables. Although recent approaches to task-graph-based intermediate representations focus on representing data and control dependencies between tasks, they largely ignore the use of program variables by the different tasks. Traditional data partitioning methods usually employ algorithm-dependent techniques, and are considered independently of processor assignments (which ought to be handled simultaneously with data partitioning). Moreover, approaches to data partitioning concentrate exclusively on array structures. By explicitly encapsulating the use of program variables by the task nodes, the DPG provides a framework for handling data partitioning as well as processor assignment in the same context. We also discuss the hierarchical data partitioning graph (HDPG) which encapsulates the hierarchy of the compiled programs and is used to map the hierarchy of computations to massively parallel computers with distributed memory system.",
author = "Tsuneo Nakanishi and Kazuki Joe and Hideki Saito and Polychronopoulos, {Constantine D.} and Akira Fukuda and Keijiro Araki",
year = "1995",
month = "1",
day = "1",
language = "English",
isbn = "354058868X",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
publisher = "Springer Verlag",
pages = "170--185",
editor = "Keshav Pingali and David Padua and Alex Nicolau and Utpal Banerjee and David Gelernter",
booktitle = "Languages and Compilers for Parallel Computing - 7th International Workshop, 1994, Proceedings",
address = "Germany",

}

TY - GEN

T1 - The data partitioning graph

T2 - Extending data and control dependencies for data partitioning

AU - Nakanishi, Tsuneo

AU - Joe, Kazuki

AU - Saito, Hideki

AU - Polychronopoulos, Constantine D.

AU - Fukuda, Akira

AU - Araki, Keijiro

PY - 1995/1/1

Y1 - 1995/1/1

N2 - Scalability and cost considerations suggest that distributed and distributed shared memory parallel computers will dominate future parallel architectures. These machines could not be used effectively unless efficient automatic and static solutions to the data partitioning and placement problem become available. Significant progress toward this end has been made in the last few years, but we are still far from having general solutions which are efficient for all classes of applications. In this paper we propose the data partitioning graph (DPG) as an intermediate representation for parallelizing compilers, which augments previous intermediate representations, and provides a framework for carrying out partitioning and placement of not only regular data structures (such as arrays), but also of irregular structures and scalar variables. Although recent approaches to task-graph-based intermediate representations focus on representing data and control dependencies between tasks, they largely ignore the use of program variables by the different tasks. Traditional data partitioning methods usually employ algorithm-dependent techniques, and are considered independently of processor assignments (which ought to be handled simultaneously with data partitioning). Moreover, approaches to data partitioning concentrate exclusively on array structures. By explicitly encapsulating the use of program variables by the task nodes, the DPG provides a framework for handling data partitioning as well as processor assignment in the same context. We also discuss the hierarchical data partitioning graph (HDPG) which encapsulates the hierarchy of the compiled programs and is used to map the hierarchy of computations to massively parallel computers with distributed memory system.

AB - Scalability and cost considerations suggest that distributed and distributed shared memory parallel computers will dominate future parallel architectures. These machines could not be used effectively unless efficient automatic and static solutions to the data partitioning and placement problem become available. Significant progress toward this end has been made in the last few years, but we are still far from having general solutions which are efficient for all classes of applications. In this paper we propose the data partitioning graph (DPG) as an intermediate representation for parallelizing compilers, which augments previous intermediate representations, and provides a framework for carrying out partitioning and placement of not only regular data structures (such as arrays), but also of irregular structures and scalar variables. Although recent approaches to task-graph-based intermediate representations focus on representing data and control dependencies between tasks, they largely ignore the use of program variables by the different tasks. Traditional data partitioning methods usually employ algorithm-dependent techniques, and are considered independently of processor assignments (which ought to be handled simultaneously with data partitioning). Moreover, approaches to data partitioning concentrate exclusively on array structures. By explicitly encapsulating the use of program variables by the task nodes, the DPG provides a framework for handling data partitioning as well as processor assignment in the same context. We also discuss the hierarchical data partitioning graph (HDPG) which encapsulates the hierarchy of the compiled programs and is used to map the hierarchy of computations to massively parallel computers with distributed memory system.

UR - http://www.scopus.com/inward/record.url?scp=84947795756&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84947795756&partnerID=8YFLogxK

M3 - Conference contribution

AN - SCOPUS:84947795756

SN - 354058868X

SN - 9783540588689

T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

SP - 170

EP - 185

BT - Languages and Compilers for Parallel Computing - 7th International Workshop, 1994, Proceedings

A2 - Pingali, Keshav

A2 - Padua, David

A2 - Nicolau, Alex

A2 - Banerjee, Utpal

A2 - Gelernter, David

PB - Springer Verlag

ER -