Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Matthew I. Frank

dblp:10/5657 · DBLP profile ↗
← Back
20ranked-venue papers
2as first author
0since 2021 · last 2011
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 19 · 2 first-authorSoftware engineering, systems software and programming languages · 6Security and privacy · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
13 papers
Processor architecture and microarchitecture · 57% Parallel and multicore computing · 14% Hardware accelerators and domain-specific architectures · 10%
Software engineering, system software, and programming languages
5 papers
Concurrent programming · 73% Compilers and program optimization · 14% Program analysis · 8%

Topics — the 30 heaviest of 41, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Parallel and multicore computing
parallel programming models
0.222009
Rigel: an architecture and scalable programming interface for a 1000-core accelerator · ISCA 2009
Implicitly Parallel Programming Models for Thousand-Core Microprocessors · DAC 2007
Processor architecture and microarchitecture
branch prediction
0.222008
Fetch-Criticality Reduction through Control Independence · ISCA 2008
PaCo: Probability-based path confidence prediction · HPCA 2008
Processor architecture and microarchitecture › instruction-level parallelism
control independence
0.222008
Fetch-Criticality Reduction through Control Independence · ISCA 2008
Branch-mispredict level parallelism (BLP) for control independence · HPCA 2008
Processor architecture and microarchitecture
instruction-level parallelism
0.232008
Branch-mispredict level parallelism (BLP) for control independence · HPCA 2008
Evaluation of the Raw Microprocessor: An Exposed-Wire-Delay Architecture for ILP and Streams · ISCA 2004
Space-Time Scheduling of Instruction-Level Parallelism on a Raw Machine · ASPLOS 1998
Concurrent programming › concurrency bug detection
data race detection
0.112011
Demand-driven software race detection using hardware performance counters · ISCA 2011
Concurrent programming › concurrency bug detection › data race detection
dynamic race detection
0.112011
Demand-driven software race detection using hardware performance counters · ISCA 2011
Hardware accelerators and domain-specific architectures
many-core accelerator
0.112009
Rigel: an architecture and scalable programming interface for a 1000-core accelerator · ISCA 2009
Hardware accelerators and domain-specific architectures › accelerator architecture
programmable accelerator
0.112009
Rigel: an architecture and scalable programming interface for a 1000-core accelerator · ISCA 2009
Processor architecture and microarchitecture › branch prediction
branch misprediction
0.112008
Branch-mispredict level parallelism (BLP) for control independence · HPCA 2008
Processor architecture and microarchitecture › branch prediction
branch misprediction recovery
0.112008
Fetch-Criticality Reduction through Control Independence · ISCA 2008
Energy-efficient computing › power management › fine-grain power management
pipeline gating
0.112008
PaCo: Probability-based path confidence prediction · HPCA 2008
Concurrent programming
speculative execution
0.112007
Exploiting Postdominance for Speculative Parallelization · HPCA 2007
Processor architecture and microarchitecture
many-core architecture
0.112007
Implicitly Parallel Programming Models for Thousand-Core Microprocessors · DAC 2007
Parallel and multicore computing
speculative parallelization
0.112007
Exploiting Postdominance for Speculative Parallelization · HPCA 2007
Processor architecture and microarchitecture
load/store queue
0.112005
Address-Indexed Memory Disambiguation and Store-to-Load Forwarding · MICRO 2005
Processor architecture and microarchitecture › out-of-order execution
memory disambiguation
0.112005
Address-Indexed Memory Disambiguation and Store-to-Load Forwarding · MICRO 2005
Processor architecture and microarchitecture › memory system microarchitecture
store-load forwarding
0.112005
Address-Indexed Memory Disambiguation and Store-to-Load Forwarding · MICRO 2005
Performance modeling and evaluation › network performance analysis
network contention modeling
0.122001
LoGPC: Modeling Network Contention in Message-Passing Programs · IEEE Trans. Parallel Distributed Syst. 2001
LoGPC: Modeling Network Contention in Message-Passing Programs · SIGMETRICS 1998
Interconnection networks and networks-on-chip › interprocessor communication
operand transport network
0.012004
Evaluation of the Raw Microprocessor: An Exposed-Wire-Delay Architecture for ILP and Streams · ISCA 2004
Processor architecture and microarchitecture
tiled architecture
0.012004
Evaluation of the Raw Microprocessor: An Exposed-Wire-Delay Architecture for ILP and Streams · ISCA 2004
Processor architecture and microarchitecture
speculative execution
0.022008
Branch-mispredict level parallelism (BLP) for control independence · HPCA 2008
Address-Indexed Memory Disambiguation and Store-to-Load Forwarding · MICRO 2005
Program analysis
dynamic analysis
0.012011
Demand-driven software race detection using hardware performance counters · ISCA 2011
Distributed systems › operating system support › interprocess communication
message-passing communication
0.012001
LoGPC: Modeling Network Contention in Message-Passing Programs · IEEE Trans. Parallel Distributed Syst. 2001
Processor architecture and microarchitecture › multithreading
simultaneous multithreading
0.012008
PaCo: Probability-based path confidence prediction · HPCA 2008
Compilers and program optimization › parallelization
automatic parallelization
0.012007
Implicitly Parallel Programming Models for Thousand-Core Microprocessors · DAC 2007
Compilers and program optimization
instruction scheduling
0.011998
Space-Time Scheduling of Instruction-Level Parallelism on a Raw Machine · ASPLOS 1998
Compilers and program optimization › instruction scheduling
software pipelining
0.011998
Space-Time Scheduling of Instruction-Level Parallelism on a Raw Machine · ASPLOS 1998
Operating systems › resource management › memory management
virtual memory
0.011998
Exploiting Two-Case Delivery for Fast Protected Messaging · HPCA 1998
Interconnection networks and networks-on-chip
network interface
0.011998
Exploiting Two-Case Delivery for Fast Protected Messaging · HPCA 1998
High-performance computing
performance optimization at scale
0.011998
LoGPC: Modeling Network Contention in Message-Passing Programs · SIGMETRICS 1998

Methods — techniques the papers use, named apart from their topics

simulation · 0.3immediate postdominance · 0.1dynamic reconvergence prediction · 0.1hardware performance counters · 0.1hierarchical core organization · 0.1bulk-synchronous task scheduling · 0.1probability estimation · 0.1prediction · 0.1criticality modeling · 0.1circuit complexity analysis · 0.1cost modeling · 0.1emulation · 0.0
YearPublicationVenuePosition
2011 Demand-driven software race detection using hardware performance counters
abstract
Dynamic data race detectors are an important mechanism for creating robust parallel programs. Software race detectors instrument the program under test, observe each memory access, and watch for inter-thread data sharing that could lead to concurrency errors. While this method of bug hunting can find races that are normally difficult to observe, it also suffers from high runtime overheads. It is not uncommon for commercial race detectors to experience 300x slowdowns, limiting their usage.
Joseph L. Greathouse, Matthew I. Frank, Ramesh Peri, Todd M. Austin
ISCA3
2009 A Task-Centric Memory Model for Scalable Accelerator Architectures
abstract
This paper presents a task-centric memory model for 1000-core compute accelerators. Visual computing applications are emerging as an important class of workloads that can exploit 1000-core processors. In these workloads, we observe data sharing and communication patterns that can be leveraged in the design of memory systems for future 1000-core processors. Based on these insights, we propose a memory model that uses a software protocol, working in collaboration with hardware caches, to maintain a coherent, single-address space view of memory without the need for hardware coherence support. We evaluate the task-centric memory model in simulation on a 1024-core MIMD accelerator we are developing that, with the help of a runtime system, implements the proposed memory model. We evaluate coherence management policies related to the task-centric memory model and show that the overhead of maintaining a coherent view of memory in software can be minimal. We further show that, while software management may constrain speculative hardware prefetching into local caches, a common optimization, it does not constrain the more relevant use case of off-chip prefetching from DRAM into shared caches.
John H. Kelm, Daniel R. Johnson, Steven S. Lumetta, Matthew I. Frank, Sanjay J. Patel
PACT4
2009 Emµcode: Masking hard faults in complex functional units
abstract
This paper presents Emmucode, a technique for masking hard faults in modern microprocessors that provides graceful performance degradation. Emmucode employs microcode traces with control flow that replace an original instruction once a fault is detected. Emmucode adds lightweight microarchitectural hardware to assist in correcting hard faults in larger structures, such as SIMD execution units found in contemporary microprocessors, where replication is infeasible. Key challenges in implementing microcode traces include maintaining proper architectural state and the optimization of trace code. We are able to significantly optimize traces by exploiting dynamic trace behavior and by performing minor modifications to the microarchitecture. We find that removing hard to predict branches is important for optimizing traces. Emmucode uses partial predication, new microcode operations, and the full use of the microcode's flexibility and visibility to create fast traces. This paper studies the viability of implementing SIMD floating point arithmetic operations found in modern x86 processors using Emmucode traces. Our results show that for programs with 1 to 5 percent of the dynamic instructions replaced by Emmucode, a graceful performance degradation of only 1.3times to 4times is achievable.
Nicholas Weaver, John H. Kelm, Matthew I. Frank
DSN3
2009 Rigel: an architecture and scalable programming interface for a 1000-core accelerator
abstract
This paper considers Rigel, a programmable accelerator architecture for a broad class of data- and task-parallel computation. Rigel comprises 1000+ hierarchically-organized cores that use a fine-grained, dynamically scheduled single-program, multiple-data (SPMD) execution model. Rigel's low-level programming interface adopts a single global address space model where parallel work is expressed in a task-centric, bulk-synchronized manner using minimal hardware support. Compared to existing accelerators, which contain domain-specific hardware, specialized memories, and/or restrictive programming models, Rigel is more flexible and provides a straightforward target for a broader set of applications.
John H. Kelm, Daniel R. Johnson, Matthew R. Johnson 0003, Neal Clayton Crago, William Tuohy, Aqeel Mahesri, Steven S. Lumetta, Matthew I. Frank, Sanjay J. Patel
ISCA8
2008 PaCo: Probability-based path confidence prediction
abstract
A path confidence estimate indicates the likelihood that the processor is currently fetching correct path instructions. Accurate path confidence prediction is critical for applications like pipeline gating and confidence-based SMT fetch prioritization. Previous work in this domain uses a threshold-and-count predictor, where the number of unresolved, low-confidence branches serves as an estimate of path confidence. This approach is inaccurate since it implicitly assumes that all low-confidence branches have the same mispredict rate, and that high-confidence branches never mispredict. We propose an alternative path confidence predictor designed from first principles, called PaCo, that directly estimates the probability that the processor is on the goodpath, and considers contributions from all branches, both high and low confidence. Even though it uses only modest hardware, PaCo can estimate the processor’s goodpath likelihood with very high accuracy, with an RMS error of 3.8%. We show that PaCo significantly outperforms threshold-and-count predictors in pipeline gating and SMT fetch prioritization. In pipeline gating, while the best conventional predictor can reduce badpath instructions executed by 7% with a small loss in performance, PaCo can reduce bad-path instructions by 32% without any performance loss. In SMT fetch prioritization, using PaCo instead of conventional path confidence predictors improves performance by up to 23%, and 5.5% on average.
Kshitiz Malik, Mayank Agarwal, Vikram Dhar, Matthew I. Frank
HPCA4
2008 Branch-mispredict level parallelism (BLP) for control independence
abstract
A microprocessorpsilas performance is fundamentally limited by the rate at which it can resolve branch mispredictions. Control independence (CI) architectures look for useful control and data independent instructions to fetch and execute in the shadow of a branch misprediction. This paper demonstrates that CI architectures can be guided to exploit substantial branch-mispredict level parallelism (BLP) in existing control intensive applications. A program has branch-mispredict level parallelism when its dynamic execution trace contains hard-to-predict branches that are both control and data independent, and thus could, potentially, be resolved in parallel. Although applications have a high degree of inherent BLP, we find that the amount of BLP exploited by naive CI architectures tends to be quite small. We show that spawn selection and data dependence handling policies in a CI architecture should make choices that explicitly aim to maximize branch-mispredict level parallelism. We demonstrate that with BLP-focussed policies, CI architectures can expose high amounts of branch-mispredict level parallelism and achieve 50% to 90% improvements in IPC on several of the SPEC 2000 Integer benchmarks.
Kshitiz Malik, Mayank Agarwal, Sam S. Stone, Kevin M. Woley, Matthew I. Frank
HPCA5
2008 Fetch-Criticality Reduction through Control Independence
abstract
Architectures that exploit control independence (CI) promise to remove in-order fetch bottlenecks, like branch mispredicts, instruction-cache misses and fetch unit stalls, from the critical path of single-threaded execution. By exposing more fetch options, however, CI architectures also expose more performance tradeoffs. These tradeoffs make it hard to design policies that deliver good performance. This paper presents a criticality-based model for reasoning about CI architectures, and uses that model to describe the tradeoffs between gains from control independence versus increased costs of honoring data dependences. The model is then used to derive the design of a criticality-aware task selection policy that strikes the right balance between fetch-criticality and execute-criticality. Finally, the paper validates the model by attacking branch-misprediction induced fetch-criticality through the above derived spawn policy. This leads to as high as 100% improvements in performance, and in the region of 40% or more improvements for four of the benchmarks where this is the main problem. Criticality analysis shows that this improvement arises due to reduced fetch-criticality.
Mayank Agarwal, Nitin Navale, Kshitiz Malik, Matthew I. Frank
ISCA4
2007 Implicitly Parallel Programming Models for Thousand-Core Microprocessors
abstract
This paper argues for an implicitly parallel programming model for many-core microprocessors, and provides initial technical approaches towards this goal. In an implicitly parallel programming model, programmers maximize algorithm-level parallelism, express their parallel algorithms by asserting high-level properties on top of a traditional sequential programming language, and rely on parallelizing compilers and hardware support to perform parallel execution under the hood. In such a model, compilers and related tools require much more advanced program analysis capabilities and programmer assertions than what are currently available so that a comprehensive understanding of the input program's concurrency can be derived. Such an understanding is then used to drive automatic or interactive parallel code generation tools for a diverse set of parallel hardware organizations. The chip-level architecture and hardware should maintain parallel execution state in such a way that a strictly sequential execution state can always be derived for the purpose of verifying and debugging the program. We argue that implicitly parallel programming models are critical for addressing the software development crises and software scalability challenges for many-core microprocessors.
Wen-Mei W. Hwu, Shane Ryoo, Sain-Zee Ueng, John H. Kelm, Isaac Gelado, Sam S. Stone, Robert E. Kidd, Sara S. Baghsorkhi, Aqeel Mahesri, Stephanie C. Tsao, Nacho Navarro, Steven S. Lumetta, Matthew I. Frank, Sanjay J. Patel
DAC13
2007 Exploiting Postdominance for Speculative Parallelization
abstract
Task-selection policies are critical to the performance of any architecture that uses speculation to extract parallel tasks from a sequential thread. This paper demonstrates that the immediate postdominators of conditional branches provide a larger set of parallel tasks than existing task-selection heuristics, which are limited to programming language constructs (such as loops or procedure calls). Our evaluation shows that postdominance-based task selection achieves, on average, more than double the speedup of the best individual heuristic, and 33% more speedup than the best combination of heuristics. The specific contributions of this paper include, first, a description of task selection based on immediate post-dominance for a system that speculatively creates tasks. Second, our experimental evaluation demonstrates that existing task-selection heuristics based on loops, procedure calls, and if-else statements are all subsumed by compiler-generated immediate postdominators. Finally, by demonstrating that dynamic reconvergence prediction closely approximates immediate postdominator analysis, we show that the notion of immediate postdominators may also be useful in constructing dynamic task selection mechanisms
Mayank Agarwal, Kshitiz Malik, Kevin M. Woley, Sam S. Stone, Matthew I. Frank
HPCA5
2005 Address-Indexed Memory Disambiguation and Store-to-Load Forwarding
abstract
This paper describes a scalable, low-complexity alternative to the conventional load/store queue (LSQ) for superscalar processors that execute load and store instructions speculatively and out-of-order prior to resolving their dependences. Whereas the LSQ requires associative and age-prioritized searches for each access, we propose that an address-indexed store-forwarding cache (SFC) perform store-to-load forwarding and that an address-indexed memory disambiguation table (MDT) perform memory disambiguation. Neither structure includes a CAM. The SFC behaves as a small cache, accessed speculatively and out-of-order by both loads and stores. Because the SFC does not rename in-flight stores to the same address, violations of memory anti and output dependences can cause in-flight loads to obtain incorrect values from the SFC. Therefore, the MDT uses sequence numbers to detect and recover from true, anti, and output memory dependence violations. We observe empirically that loads and stores that violate anti and output memory dependences are rarely on a program's critical path and that the additional cost of enforcing predicted anti and output dependences among these loads and stores is minimal. In conjunction with a scheduler that enforces predicted anti and output dependences, the MDT and SFC yield performance equivalent to that of a large LSQ that has similar or greater circuit complexity. The SFC and MDT are scalable structures that yield high performance and lower dynamic power consumption than the LSQ, and they are well-suited for checkpointed processors with large instruction windows
Sam S. Stone, Kevin M. Woley, Matthew I. Frank
MICRO3
2004 Evaluation of the Raw Microprocessor: An Exposed-Wire-Delay Architecture for ILP and Streams
abstract
This paper evaluates the Raw microprocessor. Raw addresses the challenge of building a general-purpose architecture that performs well on a larger class of stream and embedded computing applications than existing microprocessors, while still running existing ILP-based sequential programs with reasonable performance in the face of increasing wire delays. Raw approaches this challenge by implementing plenty of on-chip resources - including logic, wires, and pins - in a tiled arrangement, and exposing them through a new ISA, so that the software can take advantage of these resources for parallel applications. Raw supports both ILP and streams by routing operands between architecturally-exposed functional units over a point-to-point scalar operand network. This network offers low latency for scalar data transport. Raw manages the effect of wire delays by exposing the interconnect and using software to orchestrate both scalar and stream data transport. We have implemented a prototype Raw microprocessor in IBM's 180 nm, 6-layer copper, CMOS 7SF standard-cell ASIC process. We have also implemented ILP and stream compilers. Our evaluation attempts to determine the extent to which Raw succeeds in meeting its goal of serving as a more versatile, general-purpose processor. Central to achieving this goal is Raw's ability to exploit all forms of parallelism, including ILP, DLP, TLP, and Stream parallelism. Specifically, we evaluate the performance of Raw on a diverse set of codes including traditional sequential programs, streaming applications, server workloads and bit-level embedded computation. Our experimental methodology makes use of a cycle-accurate simulator validated against our real hardware. Compared to a 180nm Pentium-III, using commodity PC memory system components, Raw performs within a factor of 2/spl times/ for sequential applications with a very low degree of ILP, about 2/spl times/ to 9/spl times/ better for higher levels of ILP, and 10/spl times/-100/spl times/ better when highly parallel applications are coded in a stream language or optimized by hand. The paper also proposes a new versatility metric and uses it to discuss the generality of Raw.
Michael B. Taylor, Walter Lee, Jason E. Miller, David Wentzlaff, Ian Bratt, Ben Greenwald, Henry Hoffmann, Paul R. Johnson, Jason Sungtae Kim, James Psota, Arvind Saraf, Nathan Shnidman, Volker Strumpen, Matthew I. Frank, Saman P. Amarasinghe, Anant Agarwal
ISCA14
2001 LoGPC: Modeling Network Contention in Message-Passing Programs
abstract
In many real applications, for example, those with frequent and irregular communication patterns or those using large messages, network contention and contention for message processing resources can be a significant part of the total execution time. This paper presents a new cost model, called LoGPC, that extends the LogP and LogGP models to account for the impact of network contention and network interface DMA behavior on the performance of message passing programs. We validate LoGPC by analyzing three applications implemented with Active Messages on the MIT Alewife multiprocessor. Our analysis shows that network contention accounts for up to 50 percent of the total execution time. In addition, we show that the impact of communication locality on the communication costs is at most a factor of two on Alewife. Finally, we use the model to identify trade-offs between synchronous and asynchronous message passing styles.
Csaba Andras Moritz, Matthew I. Frank
IEEE Trans. Parallel Distributed Syst.2
1999 Parallelizing Applications into Silicon
abstract
The next decade of computing will be dominated by embedded systems, information appliances and application-specific computers. In order to build these systems, designers will need high-level compilation and CAD tools that generate architectures that effectively meet the needs of each application. In this paper we present a novel compilation system that allows sequential programs, written in C or FORTRAN, to be compiled directly into custom silicon or reconfigurable architectures. This capability is also interesting because trends in computer architecture are moving towards more reconfigurable hardware-like substrates, such as FPGA based systems. Our system works by successfully combining two resource-efficient computing disciplines: Small Memories and Virtual Wires. For a given application, the compiler first analyzes the memory access patterns of pointers and arrays in the program and constructs a partitioned memory system made up of many small memories. The computation is implemented by active computing elements that are spatially distributed within the memory array. A space-time scheduler assigns instructions to the computing elements in a way that maximizes locality and minimizes physical communication distance. It also generates an efficient static schedule for the interconnect. Finally, specialized hardware for the resulting schedule of memory accesses, wires, and computation is generated as a multi-process state machine in synthesizable Verilog. With this system, implemented as a set of SUIF compiler passes, we have successfully compiled programs into hardware and achieve specialization performance enhancements by up to an order of magnitude versus a single general purpose processor. We also achieve additional parallelization speedups similar to those obtainable using a tightly-interconnected multiprocessor.
Jonathan Babb, Martin C. Rinard, Csaba Andras Moritz, Walter Lee, Matthew I. Frank, Rajeev Barua, Saman P. Amarasinghe
FCCM5
1998 Space-Time Scheduling of Instruction-Level Parallelism on a Raw Machine
abstract
Increasing demand for both greater parallelism and faster clocks dictate that future generation architectures will need to decentralize their resources and eliminate primitives that require single cycle global communication. A Raw microprocessor distributes all of its resources, including instruction streams, register files, memory ports, and ALUs, over a pipelined two-dimensional mesh interconnect, and exposes them fully to the compiler. Because communication in Raw machines is distributed, compiling for instruction-level parallelism (ILP) requires both spatial instruction partitioning as well as traditional temporal instruction scheduling. In addition, the compiler must explicitly manage all communication through the interconnect, including the global synchronization required at branch points. This paper describes RAWCC, the compiler we have developed for compiling general-purpose sequential programs to the distributed Raw architecture. We present performance results that demonstrate that although Raw machines provide no mechanisms for global communication the Raw compiler can schedule to achieve speedups that scale with the number of available functional units.
Walter Lee, Rajeev Barua, Matthew I. Frank, Devabhaktuni Srikrishna, Jonathan Babb, Vivek Sarkar, Saman P. Amarasinghe
ASPLOS3
1998 Exploiting Two-Case Delivery for Fast Protected Messaging
abstract
We propose and evaluate two complementary techniques to protect and virtualize a tightly-coupled network interface in a multicomputer. The techniques allow efficient, direct application access to network hardware in a multiprogrammed environment while gaining most of the benefits of a memory-based network interface. First, two-case delivery allows an application to receive a message directly from the network hardware in ordinary circumstances, but provides buffering transparently when required for protection. Second, virtual buffering stores messages in virtual memory on demand, providing the convenience of effectively unlimited buffer capacity while keeping actual physical memory consumption low. The evaluation is based on workloads of real and synthetic applications running on a simulator and partly on emulated hardware. The results show that the direct path is also the common path, justifying the use of software buffering. Further results show that physical buffering requirements remain low in our applications despite the use of unacknowledged messages and despite adverse scheduling conditions.
Kenneth Mackenzie, John Kubiatowicz, Matthew I. Frank, Walter Lee, Victor Lee, Anant Agarwal, M. Frans Kaashoek
HPCA3
1998 LoGPC: Modeling Network Contention in Message-Passing Programs
abstract
In many real applications, for example those with frequent and irregular communication patterns or those using large messages, network contention and contention for message processing resources can be a significant part of the total execution time. This paper presents a new cost model, called LoGPC, that extends the LogP [9] and LogGP [4] models to account for the impact of network contention and network interface DMA behavior on the performance of message-passing programs.We validate LoGPC by analyzing three applications implemented with Active Messages [11, 18] on the MIT Alewife multiprocessor. Our analysis shows that network contention accounts for up to 50% of the total execution time. In addition, we show that the impact of communication locality on the communication costs is at most a factor of two on Alewife. Finally, we use the model to identify tradeoffs between synchronous and asynchronous message passing styles.
Csaba Andras Moritz, Matthew I. Frank
SIGMETRICS2
1997 The RAW benchmark suite: computation structures for general purpose computing
abstract
The RAW benchmark suite consists of twelve programs designed to facilitate comparing, validating, and improving reconfigurable computing systems. These benchmarks run the gamut of algorithms found in general purpose computing, including sorting, matrix operations, and graph algorithms. The suite includes an architecture-independent compilation framework, Raw Computation Structures (RawCS), to express each algorithm's dependencies and to support automatic synthesis, partitioning, and mapping to a reconfigurable computer. Within this framework, each benchmark is portably designed in both C and Behavioral Verilog and scalably parameterized to consume a range of hardware resource capacities. To establish initial benchmark ratings, we have targeted a commercial logic emulation system based on virtual wires technology to automatically generate designs up to millions of gates (14 to 379 FPGAs). Because the virtual wires techniques abstract away machine-level details like FPGA capacity and interconnect, our hardware target for this system is an abstract reconfigurable logic fabric with memory-mapped host I/O. We report initial speeds in the range of 2X to 1800X faster than a 2.82 SPECint95 SparcStation 20 and encourage others in the field to run these benchmarks on other systems to provide a standard comparison.
Jonathan Babb, Matthew I. Frank, Victor Lee, Elliot Waingold, Rajeev Barua, Michael B. Taylor, Jang Kim, Devabhaktuni Srikrishna, Anant Agarwal
FCCM2
1997 Implications of I/O for Gang Scheduled Workloads
Walter Lee, Matthew I. Frank, Victor Lee, Kenneth Mackenzie, Larry Rudolph
JSSPP2
1997 LoPC: Modeling Contention in Parallel Algorithms
abstract
Parallel algorithm designers need computational models that take first order system costs into account, but are also simple enough to use in practice. This paper introduces the LoPC model, which is inspired by the LogP model but accounts for contention for message processing resources in parallel algorithms on a multiprocessor or network of workstations. LoPC takes the L, o and P parameters directly from the LogP model and uses them to predict the cost of contention, C.This paper defines the LoPC model and derives the general form of the model for parallel applications that communicate via active messages. Model modifications for systems that implement coherent shared memory abstractions are also discussed. We carry out the analysis for two important classes of applications that have irregular communication. In the case of parallel applications with homogeneous all-to-any communication, such as sparse matrix computations, the analysis yields a simple rule of thumb and insight into contention costs. In the case of parallel client-server algorithms, the LoPC analysis provides a simple and accurate calculation of the optimal allocation of nodes between clients and servers. The LoPC estimates for these applications are shown to be accurate when compared against event driven simulation and against a sparse matrix computation on the MIT Alewife multiprocessor.
Matthew I. Frank, Anant Agarwal, Mary K. Vernon
PPoPP1
1993 A Hybrid Shared Memory/Message Passing Parallel Machine
abstract
Current and emerging high-performance parallel com puter architectures generally implement one of two types of communication mechanisms: shared memory (SM) or message passing (MP). In this paper we propose a hybrid SM/MP architecture together with a hybrid SM/MP programming model, that we believe effectively combines the advantages of each system. The SM/MP architecture contains both a high-performance coherence protocol for shared memory, and message-passing primi tives that coexist with the coherence protocol but have no coherence overhead. The SM/MP programming model provides a framework for safely and effectively using the SM/MP communication primitives. We illustrate the use of the model and primitives to reduce communication overhead in SM systems.
Matthew I. Frank, Mary K. Vernon
ICPP (1)1