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

M. Aater Suleman

dblp:78/219 · DBLP profile ↗
← Back
9ranked-venue papers
4as first author
0since 2021 · last 2013
—ORCID · none

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

Systems, architecture and hardware · 9 · 4 first-authorSoftware engineering, systems software and programming languages · 6 · 3 first-author

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
7 papers
Processor architecture and microarchitecture · 62% Memory systems · 16% Parallel and multicore computing · 16%
Software engineering, system software, and programming languages
2 papers
Concurrent programming · 57% Operating systems · 43%

Topics — the 20 heaviest of 21, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Processor architecture and microarchitecture
chip multiprocessor
0.442012
MorphCore: An Energy-Efficient Microarchitecture for High Performance ILP and High Throughput TLP · MICRO 2012
Data marshaling for multi-core architectures · ISCA 2010
Accelerating critical section execution with asymmetric multi-core architectures · ASPLOS 2009
Processor architecture and microarchitecture › chip multiprocessor
heterogeneous chip multiprocessor
0.322013
Utility-based acceleration of multithreaded applications on asymmetric CMPs · ISCA 2013
Bottleneck identification and scheduling in multithreaded applications · ASPLOS 2012
Memory systems
cache management
0.222010
Data marshaling for multi-core architectures · ISCA 2010
Line Distillation: Increasing Cache Capacity by Filtering Unused Words in Cache Lines · HPCA 2007
Processor architecture and microarchitecture
multicore design
0.222012
Bottleneck identification and scheduling in multithreaded applications · ASPLOS 2012
Accelerating critical section execution with asymmetric multi-core architectures · ASPLOS 2009
Parallel and multicore computing › parallel scheduling
thread scheduling
0.212013
Utility-based acceleration of multithreaded applications on asymmetric CMPs · ISCA 2013
Parallel and multicore computing › parallel computing › parallel application performance
multithreaded application performance
0.112012
Bottleneck identification and scheduling in multithreaded applications · ASPLOS 2012
Processor architecture and microarchitecture › out-of-order execution
out-of-order core
0.112012
MorphCore: An Energy-Efficient Microarchitecture for High Performance ILP and High Throughput TLP · MICRO 2012
Processor architecture and microarchitecture › multithreading
simultaneous multithreading
0.112012
MorphCore: An Energy-Efficient Microarchitecture for High Performance ILP and High Throughput TLP · MICRO 2012
Processor architecture and microarchitecture › chip multiprocessor
inter-core communication
0.112010
Data marshaling for multi-core architectures · ISCA 2010
Processor architecture and microarchitecture › multithreading
multithreaded execution
0.112008
Feedback-driven threading: power-efficient and high-performance execution of multi-threaded workloads on CMPs · ASPLOS 2008
Memory systems › cache › cache behavior
cache line utilization
0.112007
Line Distillation: Increasing Cache Capacity by Filtering Unused Words in Cache Lines · HPCA 2007
Memory systems › cache
cache organization
0.112007
Line Distillation: Increasing Cache Capacity by Filtering Unused Words in Cache Lines · HPCA 2007
Electronic design automation › timing analysis
critical path analysis
0.012013
Utility-based acceleration of multithreaded applications on asymmetric CMPs · ISCA 2013
Operating systems › resource management › process management › CPU scheduling
thread scheduling
0.012012
Bottleneck identification and scheduling in multithreaded applications · ASPLOS 2012
Parallel and multicore computing
parallel programming models
0.012010
Data marshaling for multi-core architectures · ISCA 2010
Concurrent programming › synchronization
critical sections
0.012009
Accelerating critical section execution with asymmetric multi-core architectures · ASPLOS 2009
Concurrent programming
synchronization
0.012009
Accelerating critical section execution with asymmetric multi-core architectures · ASPLOS 2009
Energy-efficient computing › low-power design
on-chip power reduction
0.012008
Feedback-driven threading: power-efficient and high-performance execution of multi-threaded workloads on CMPs · ASPLOS 2008
Energy-efficient computing
power management
0.012008
Feedback-driven threading: power-efficient and high-performance execution of multi-threaded workloads on CMPs · ASPLOS 2008
Memory systems › data locality
spatial locality
0.012007
Line Distillation: Increasing Cache Capacity by Filtering Unused Words in Cache Lines · HPCA 2007

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

critical-path measurement · 0.3cooperative software-hardware mechanism · 0.3utility-based acceleration · 0.2software/hardware cooperative scheduling · 0.2core fusion · 0.1profiling · 0.1data marshaling · 0.1line distillation · 0.1LRU stack analysis · 0.1
YearPublicationVenuePosition
2013 Utility-based acceleration of multithreaded applications on asymmetric CMPs
abstract
Asymmetric Chip Multiprocessors (ACMPs) are becoming a reality. ACMPs can speed up parallel applications if they can identify and accelerate code segments that are critical for performance. Proposals already exist for using coarse-grained thread scheduling and fine-grained bottleneck acceleration. Unfortunately, there have been no proposals offered thus far to decide which code segments to accelerate in cases where both coarse-grained thread scheduling and fine-grained bottleneck acceleration could have value. This paper proposes Utility-Based Acceleration of Multithreaded Applications on Asymmetric CMPs (UBA), a cooperative software/hardware mechanism for identifying and accelerating the most likely critical code segments from a set of multithreaded applications running on an ACMP. The key idea is a new Utility of Acceleration metric that quantifies the performance benefit of accelerating a bottleneck or a thread by taking into account both the criticality and the expected speedup. UBA outperforms the best of two state-of-the-art mechanisms by 11% for single application workloads and by 7% for two-application workloads on an ACMP with 52 small cores and 3 large cores.
José A. Joao, M. Aater Suleman, Onur Mutlu, Yale N. Patt
ISCA2
2012 Bottleneck identification and scheduling in multithreaded applications
abstract
Performance of multithreaded applications is limited by a variety of bottlenecks, e.g. critical sections, barriers and slow pipeline stages. These bottlenecks serialize execution, waste valuable execution cycles, and limit scalability of applications. This paper proposes Bottleneck Identification and Scheduling in Multithreaded Applications (BIS), a cooperative software-hardware mechanism to identify and accelerate the most critical bottlenecks. BIS identifies which bottlenecks are likely to reduce performance by measuring the number of cycles threads have to wait for each bottleneck, and accelerates those bottlenecks using one or more fast cores on an Asymmetric Chip Multi-Processor (ACMP). Unlike previous work that targets specific bottlenecks, BIS can identify and accelerate bottlenecks regardless of their type. We compare BIS to four previous approaches and show that it outperforms the best of them by 15% on average. BIS' performance improvement increases as the number of cores and the number of fast cores in the system increase.
José A. Joao, M. Aater Suleman, Onur Mutlu, Yale N. Patt
ASPLOS2
2012 MorphCore: An Energy-Efficient Microarchitecture for High Performance ILP and High Throughput TLP
abstract
Several researchers have recognized in recent years that today's workloads require a micro architecture that can handle single-threaded code at high performance, and multi-threaded code at high throughput, while consuming no more energy than is necessary. This paper proposes Morph Core, a unique approach to satisfying these competing requirements, by starting with a traditional high performance out-of-order core and making minimal changes that can transform it into a highly-threaded in-order SMT core when necessary. The result is a micro architecture that outperforms an aggressive 4-way SMT out-of-order core, "medium" out-of-order cores, small in-order cores, and Core Fusion. Compared to a 2-way SMT out-of-order core, Morph Core increases performance by 10% and reduces energy-delay-squared product by 22%.
Khubaib, M. Aater Suleman, Milad Hashemi, Chris Wilkerson, Yale N. Patt
MICRO2
2010 Feedback-directed pipeline parallelism
abstract
Extracting high performance from Chip Multiprocessors requires that the application be parallelized. A common software technique to parallelize loops is pipeline parallelism in which the programmer/compiler splits each loop iteration into stages and each stage runs on a certain number of cores. It is important to choose the number of cores for each stage carefully because the core-to-stage allocation determines performance and power consumption. Finding the best core-to-stage allocation for an application is challenging because the number of possible allocations is large, and the best allocation depends on the input set and machine configuration.
M. Aater Suleman, Moinuddin K. Qureshi, Khubaib, Yale N. Patt
PACT1
2010 Data marshaling for multi-core architectures
abstract
Previous research has shown that Staged Execution (SE), i.e., dividing a program into segments and executing each segment at the core that has the data and/or functionality to best run that segment, can improve performance and save power. However, SE's benefit is limited because most segments access inter-segment data, i.e., data generated by the previous segment. When consecutive segments run on different cores, accesses to inter-segment data incur cache misses, thereby reducing performance. This paper proposes Data Marshaling (DM), a new technique to eliminate cache misses to inter-segment data. DM uses profiling to identify instructions that generate inter-segment data, and adds only 96 bytes/core of storage overhead. We show that DM significantly improves the performance of two promising Staged Execution models, Accelerated Critical Sections and producer-consumer pipeline parallelism, on both homogeneous and heterogeneous multi-core systems. In both models, DM can achieve almost all of the potential of ideally eliminating cache misses to inter-segment data. DM's performance benefit increases with the number of cores.
M. Aater Suleman, Onur Mutlu, José A. Joao, Khubaib, Yale N. Patt
ISCA1
2009 Accelerating critical section execution with asymmetric multi-core architectures
abstract
To improve the performance of a single application on Chip Multiprocessors (CMPs), the application must be split into threads which execute concurrently on multiple cores. In multi-threaded applications, critical sections are used to ensure that only one thread accesses shared data at any given time. Critical sections can serialize the execution of threads, which significantly reduces performance and scalability.
M. Aater Suleman, Onur Mutlu, Moinuddin K. Qureshi, Yale N. Patt
ASPLOS1
2008 Feedback-driven threading: power-efficient and high-performance execution of multi-threaded workloads on CMPs
abstract
Extracting high-performance from the emerging Chip Multiprocessors (CMPs) requires that the application be divided into multiple threads. Each thread executes on a separate core thereby increasing concurrency and improving performance. As the number of cores on a CMP continues to increase, the performance of some multi-threaded applications will benefit from the increased number of threads, whereas, the performance of other multi-threaded applications will become limited by data-synchronization and off-chip bandwidth. For applications that get limited by data-synchronization, increasing the number of threads significantly degrades performance and increases on-chip power. Similarly, for applications that get limited by off-chip bandwidth, increasing the number of threads increases on-chip power without providing any performance improvement. Furthermore, whether an application gets limited by data-synchronization, or bandwidth, or neither depends not only on the application but also on the input set and the machine configuration. Therefore, controlling the number of threads based on the run-time behavior of the application can significantly improve performance and reduce power.
M. Aater Suleman, Moinuddin K. Qureshi, Yale N. Patt
ASPLOS1
2007 Line Distillation: Increasing Cache Capacity by Filtering Unused Words in Cache Lines
abstract
Caches are organized at a line-size granularity to exploit spatial locality. However, when spatial locality is low, many words in the cache line are not used. Unused words occupy cache space but do not contribute to cache hits. Filtering these words can allow the cache to store more cache lines. We show that unused words in a cache line are unlikely to be accessed in the less recent part of the LRU stack. We propose line distillation (LDIS), a technique that retains only the used words and evicts the unused words in a cache line. We also propose distill cache, a cache organization to utilize the capacity created by LDIS. Our experiments with 16 memory-intensive benchmarks show that LDIS reduces the average misses for a 1MB 8-way L2 cache by 30% and improves the average IPC by 12%
Moinuddin K. Qureshi, M. Aater Suleman, Yale N. Patt
HPCA2
2006 2D-Profiling: Detecting Input-Dependent Branches with a Single Input Data Set
abstract
Static compilers use profiling to predict run-time program behavior. Generally, this requires multiple input sets to capture wide variations in run-time behavior. This is expensive in terms of resources and compilation time. We introduce a new mechanism, 2D-profiling, which profiles with only one input set and predicts whether the result of the profile would change significantly across multiple input sets. We use 2D-profiling to predict whether a branch's prediction accuracy varies across input sets. The key insight is that if the prediction accuracy of an individual branch varies significantly over a profiling run with one input set, then it is more likely that the prediction accuracy of that branch varies across input sets. We evaluate 2D-profiling with the SPEC CPU 2000 integer benchmarks and show that it can identify input-dependent branches accurately.
Hyesoon Kim, M. Aater Suleman, Onur Mutlu, Yale N. Patt
CGO2