1998
DOI: 10.1007/bfb0032698
|View full text |Cite
|
Sign up to set email alerts
|

A compiler abstraction for machine independent parallel communication generation

Abstract: In this paper, we consider the problem of generating effident, portable communication in compilers for parallel languages. We introduce the IRONMAN abstraction, which separates data transfer from its implementing communication paradigm. This is done by annotating the compiler-generated code with legal ranges for data transfer in the form of calls to the IRONMAN library. On each target platform, these library calls are instantiated to perform the transfer using the machine's optimal communication paradigm. We c… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
2
0

Year Published

2000
2000
2002
2002

Publication Types

Select...
3

Relationship

0
3

Authors

Journals

citations
Cited by 3 publications
(2 citation statements)
references
References 12 publications
0
2
0
Order By: Relevance
“…In fact, the more distributed memory machines have supported Put/Get in hardware, the more attention compiler researchers have paid to code optimizations in the context of shared-memory models. Although there has been some work on optimizations for NCC machines, most of the work did not handle extensive compiler issues, only focusing on a couple of individual optimization issues, such as reducing synchronization overhead in Put/Get-based parallel codes [15] or building a new communication library that is to be used for an array language [8].…”
Section: Comparison With Prior Workmentioning
confidence: 99%
See 1 more Smart Citation
“…In fact, the more distributed memory machines have supported Put/Get in hardware, the more attention compiler researchers have paid to code optimizations in the context of shared-memory models. Although there has been some work on optimizations for NCC machines, most of the work did not handle extensive compiler issues, only focusing on a couple of individual optimization issues, such as reducing synchronization overhead in Put/Get-based parallel codes [15] or building a new communication library that is to be used for an array language [8].…”
Section: Comparison With Prior Workmentioning
confidence: 99%
“…For instance, some experimental studies [3], [13], [25] with microbenchmarking indicated that one-sided implementations are likely more efficient on NCC machines than two-sided implementations because they utilize the architectural features of the machines more efficaciously. 1 In addition, other studies [8], [15] concluded that 1) Put/Get is inherently less expensive than Send/ Receive for just data block copy and 2) their one-way communication protocol simplifies the compiler techniques for certain classes of computations, such as irregular computations and pointer chasing, because the problems of message marshaling, synchronization, and buffering are eliminated.…”
Section: Introductionmentioning
confidence: 99%