EDBT 2026 Demo / reviewers in the wild / expert
Utpal Banerjee
dblp:78/4723
· DBLP profile ↗
17ranked-venue papers
6as first author
0since 2021 · last 2011
0000-0001-6247-0284ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 15 · 4 first-authorSoftware engineering, systems software and programming languages · 2 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 1 · 1 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
9 papers |
Parallel and multicore computing · 79% Performance modeling and evaluation · 11% Processor architecture and microarchitecture · 6% | |
| Software engineering, system software, and programming languages
4 papers |
Compilers and program optimization · 100% |
Topics — the 28 heaviest of 29, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Parallel and multicore computing › task partitioning
iteration space partitioning |
0.1 | 2 | 2008 | Cache-aware iteration space partitioning · PPoPP 2008 A novel approach for partitioning iteration spaces with variable densities · PPoPP 2005 |
Compilers and program optimization › instruction scheduling
instruction-level parallelism |
0.1 | 1 | 2011 | Mathematical foundation of trace scheduling · ACM Trans. Program. Lang. Syst. 2011 |
Compilers and program optimization
instruction scheduling |
0.1 | 1 | 2011 | Mathematical foundation of trace scheduling · ACM Trans. Program. Lang. Syst. 2011 |
Compilers and program optimization › instruction scheduling
trace scheduling |
0.1 | 1 | 2011 | Mathematical foundation of trace scheduling · ACM Trans. Program. Lang. Syst. 2011 |
Parallel and multicore computing › parallel scheduling
parallel loop scheduling |
0.1 | 1 | 2008 | Cache-aware iteration space partitioning · PPoPP 2008 |
Parallel and multicore computing
speculative parallelization |
0.1 | 1 | 2007 | Tight analysis of the performance potential of thread speculation using spec CPU 2006 · PPoPP 2007 |
Parallel and multicore computing › speculative parallelization
thread-level speculation |
0.1 | 1 | 2007 | Tight analysis of the performance potential of thread speculation using spec CPU 2006 · PPoPP 2007 |
Parallel and multicore computing
load balancing |
0.1 | 1 | 2005 | A novel approach for partitioning iteration spaces with variable densities · PPoPP 2005 |
Parallel and multicore computing › loop transformation › loop parallelization
loop partitioning |
0.1 | 1 | 2005 | A novel approach for partitioning iteration spaces with variable densities · PPoPP 2005 |
Compilers and program optimization
loop transformation |
0.0 | 3 | 2005 | A novel approach for partitioning iteration spaces with variable densities · PPoPP 2005 Automatic program parallelization · Proc. IEEE 1993 Time and Parallel Processor Bounds for Fortran-Like Loops · IEEE Trans. Computers 1979 |
Memory systems
cache |
0.0 | 1 | 2008 | Cache-aware iteration space partitioning · PPoPP 2008 |
Performance modeling and evaluation
cache performance modeling |
0.0 | 1 | 2008 | Cache-aware iteration space partitioning · PPoPP 2008 |
Performance modeling and evaluation › benchmarking
benchmark evaluation |
0.0 | 1 | 2007 | Tight analysis of the performance potential of thread speculation using spec CPU 2006 · PPoPP 2007 |
Performance modeling and evaluation
workload characterization |
0.0 | 1 | 2007 | Tight analysis of the performance potential of thread speculation using spec CPU 2006 · PPoPP 2007 |
Compilers and program optimization › parallelization
automatic parallelization |
0.0 | 1 | 1993 | Automatic program parallelization · Proc. IEEE 1993 |
Compilers and program optimization
dependence analysis |
0.0 | 1 | 1993 | Automatic program parallelization · Proc. IEEE 1993 |
Compilers and program optimization
parallelizing compiler |
0.0 | 1 | 1993 | Automatic program parallelization · Proc. IEEE 1993 |
Compilers and program optimization
program transformation |
0.0 | 1 | 1993 | Automatic program parallelization · Proc. IEEE 1993 |
Parallel and multicore computing › parallelization strategies › loop parallelism
parallel loop execution |
0.0 | 3 | 1984 | Fast Execution of Loops with IF Statements · IEEE Trans. Computers 1984 Fast Execution of Loops With IF Statements · ISCA 1984 Time and Parallel Processor Bounds for Fortran-Like Loops · IEEE Trans. Computers 1979 |
Parallel and multicore computing › loop transformation › loop parallelization
DOACROSS loops |
0.0 | 1 | 1987 | Processor Allocation for Horizontal and Vertical Parallelism and Related Speedup Bounds · IEEE Trans. Computers 1987 |
Parallel and multicore computing
processor allocation |
0.0 | 1 | 1987 | Processor Allocation for Horizontal and Vertical Parallelism and Related Speedup Bounds · IEEE Trans. Computers 1987 |
Parallel and multicore computing › parallel computation models
speedup bounds |
0.0 | 1 | 1987 | Processor Allocation for Horizontal and Vertical Parallelism and Related Speedup Bounds · IEEE Trans. Computers 1987 |
Parallel and multicore computing › task scheduling
task graph scheduling |
0.0 | 1 | 1987 | Processor Allocation for Horizontal and Vertical Parallelism and Related Speedup Bounds · IEEE Trans. Computers 1987 |
Parallel and multicore computing › parallel programming models
automatic parallelization |
0.0 | 1 | 1993 | Automatic program parallelization · Proc. IEEE 1993 |
Parallel and multicore computing
parallel programming models |
0.0 | 1 | 1993 | Automatic program parallelization · Proc. IEEE 1993 |
Parallel and multicore computing › parallelizing compiler
dependence analysis |
0.0 | 1 | 1979 | Time and Parallel Processor Bounds for Fortran-Like Loops · IEEE Trans. Computers 1979 |
High-performance computing
supercomputing |
0.0 | 1 | 1984 | Fast Execution of Loops With IF Statements · ISCA 1984 |
Processor architecture and microarchitecture
vector processing |
0.0 | 1 | 1984 | Fast Execution of Loops with IF Statements · IEEE Trans. Computers 1984 |
Methods — techniques the papers use, named apart from their topics
compensation code insertion · 0.2unimodular loop transformation · 0.1geometric partitioning · 0.1profile-guided compilation · 0.1compiler optimization · 0.1speedup analysis · 0.1misspeculation modeling · 0.1experimental survey · 0.0dependence analysis · 0.0code transformation · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2011 | Mathematical foundation of trace schedulingabstractSince its introduction by Joseph A. Fisher in 1979, trace scheduling has influenced much of the work on compile-time ILP (Instruction Level Parallelism) transformations. Initially developed for use in microcode compaction, it quickly became the main technique for machine-level compile-time parallelism exploitation. Although it has been used since the 1980s in many state-of-the-art compilers (e.g., Intel, Fujitsu, HP), a rigorous theory of trace scheduling is still lacking in the existing literature. This is reflected in the ad hoc way compensation code is inserted after a trace compaction, in the total absence of any attempts to measure the size of that compensation code, and so on. The aim of this article is to create a mathematical theory of the foundation of trace scheduling. We give a clear algorithm showing how to insert compensation code after a trace is replaced with its schedule, and then prove that the resulting program is indeed equivalent to the original program. We derive an upper bound on the size of that compensation code, and show that this bound can be actually attained. We also give a very simple proof that the trace scheduling algorithm always terminates. Utpal Banerjee |
ACM Trans. Program. Lang. Syst. | 1 |
| 2009 | Efficient Scheduling of Nested Parallel Loops on Multi-Core SystemsabstractParallel loops, such as a parallel DO loop, in Fortran, account for large percentage of the total execution time. Given this, we focus on the problem of how to efficiently schedule nested perfect/non-perfect parallel loops on the emerging multi-core systems. In this regard, one of the key aspects is how to determine the profitability of parallel execution and how to efficiently capture the cache behavior as the cache subsystem is often the main performance bottleneck in multi-core systems. In this paper, we present a novel profile-guided compiler technique for cache-aware scheduling of iteration spaces of such loops. Specifically, we propose a technique for iteration space scheduling which captures the effect of variation in the number of cache misses across the iteration space. Subsequently, we propose a general approach to capture the variation of both the number of cache misses and computation across the iteration space. We demonstrate the efficacy of our approach on a dedicated 4-way Intel®Xeon®based multiprocessor using several kernels from the industry-standard benchmarks. Arun Kejariwal, Alexandru Nicolau, Alexander V. Veidenbaum, Utpal Banerjee, Constantine D. Polychronopoulos |
ICPP | 4 |
| 2009 | Cache-aware partitioning of multi-dimensional iteration spacesabstractThe need for high performance per watt has led to development of multi-core systems such as the Intel Core 2 Duo processor and the Intel quad-core Kentsfield processor. Maximal exploitation of the hardware parallelism supported by such systems necessitates the development of concurrent software. This, in part, entails automatic parallelization of programs and efficient mapping of the parallelized program onto the different cores. The latter affects the load balance between the different cores which in turn has a direct impact on performance. In light of the fact that, parallel loops, such as a parallel DO loop in Fortran, account for a large percentage of the total execution time, we focus on the problem of how to efficiently partition the iteration space of (possibly) nested perfect/non-perfect parallel loops. In this regard, one of the key aspects is how to efficiently capture the cache behavior as the cache subsystem is often the main performance bottleneck in multi-core systems. In this paper, we present a novel profile-guided compiler technique for cache-aware scheduling of iteration spaces of such loops. Specifically, we propose a technique for iteration space scheduling which captures the effect of variation in the number of cache misses across the iteration space. Subsequently, we propose a general approach to capture the variation of both the number of cache misses and computation across the iteration space. We demonstrate the efficacy of our approach on a dedicated 4-way Intel® Xeon® based multiprocessor using several kernels from the industry-standard SPEC CPU2000 and CPU2006 benchmarks achieving speedups upto 62.5%. Arun Kejariwal, Alexandru Nicolau, Utpal Banerjee, Alexander V. Veidenbaum, Constantine D. Polychronopoulos |
SYSTOR | 3 |
| 2008 | Cache-aware iteration space partitioningabstractThe need for high performance per watt has led to the development of multi-core systems such as the Intel Core 2 Duo processor and the Intel quad-core Kentsfield processor. Maximal exploitation of the hardware parallelism supported by such systems necessitates the development of concurrent software. This, in part, entails program parallelization and efficient mapping of the parallelized program onto the different cores. The latter affects the load balance between the different cores which in turn has a direct impact on performance. In light of the fact that parallel loops, such as a parallel DO loop in Fortran, account for a large percentage of the total execution time, we focus on the problem of how to efficiently partition the iteration space of (possibly) nested perfect/non-perfect parallel loops. In this regard, one of the key aspects is how to efficiently capture the cache behavior as the cache subsystem is often the main performance bottleneck in multi-core systems. In this paper, we present a novel profile-guided compiler technique for cache-aware partitioning of iteration spaces of parallel loops. We present a case study using a kernel from the industry-standard SPEC CPU benchmark suite. Arun Kejariwal, Alexandru Nicolau, Utpal Banerjee, Alexander V. Veidenbaum, Constantine D. Polychronopoulos |
PPoPP | 3 |
| 2007 | Tight analysis of the performance potential of thread speculation using spec CPU 2006abstractMulti-cores such as the Intel®1 Core™2 Duo processor, facilitate efficient thread-level parallel execution of ordinary programs, wherein the different threads-of-execution are mapped onto different physical processors. In this context, several techniques have been proposed for auto-parallelization of programs. Recently, thread-level speculation (TLS) has been proposed as a means to parallelize difficult-to-analyze serial codes. In general, more than one technique can be employed for parallelizing a given program. The overlapping nature of the applicability of the various techniques makes it hard to assess the intrinsic performance potential of each. In this paper, we present a tight analysis of the (unique) performance potential of both: (a) TLS in general and (b) specific types of thread-level speculation, viz., control speculation, data dependence speculation and data value speculation, for the SPEC2 CPU2006 benchmark suite in light of the various limiting factors such as the threading overhead and misspeculation penalty. To the best of our knowledge, this is the first evaluation of TLS based on SPEC CPU2006 and accounts for the aforementioned real-life con-straints. Our analysis shows that, at the innermost loop level, the upper bound on the speedup uniquely achievable via TLS with the state-of-the-art thread implementations for both SPEC CINT2006 and CFP2006 is of the order of 1%. Arun Kejariwal, Xinmin Tian, Milind Girkar, Wei Li 0015, Sergey Kozhukhov, Utpal Banerjee, Alexandru Nicolau, Alexander V. Veidenbaum, Constantine D. Polychronopoulos |
PPoPP | 6 |
| 2006 | Lightweight lock-free synchronization methods for multithreadingabstractEmergence of chip multiprocessors has created a need for exploitation of beyond DOALL-type thread-level parallelism (TLP). This calls for development of efficient thread synchronization techniques to exploit TLP in general parallel programs with dependences. For this, several thread synchronization techniques have been proposed in the past. However, these limit the exploitation of fine-grain TLP due to large run-time overhead. Furthermore, the existing approaches can potentially result in (i) deadlocks between the different threads and (ii) non-deterministic run-time execution behavior as these techniques are oblivious of the underlying memory model. In this paper, we propose lightweight lock-free thread synchronization methods to exploit TLP in general parallel programs with dependences. Each synchronization method intrinsically guarantees the following in a multithreaded program: (a) sequential consistency, (b) atomicity of writes to the shared synchronization construct and (c) absence of deadlocks. This reduces the programming effort considerably, thereby easing the development of software for multithreaded systems. For each method we formally prove that there cannot occur a deadlock between the different threads. This obviates the cumbersome and time-consuming process of detecting and eliminating deadlocks from the programmer. Experiments show that our synchronization methods incur a minimal overhead of 7.16% on an average. Further, we achieve performance speedups upto 3.39x on kernels extracted from the industry standard SPEC OMPM 2001 benchmarks, on a dedicated Intel® Xeon® 2.78 GHz 4-way multiprocessor. Arun Kejariwal, Hideki Saito 0001, Xinmin Tian, Milind Girkar, Wei Li 0015, Utpal Banerjee, Alexandru Nicolau, Constantine D. Polychronopoulos |
ICS | 6 |
| 2006 | On the performance potential of different types of speculative thread-level parallelism: The DL version of this paper includes corrections that were not made available in the printed proceedingsabstractRecent research in thread-level speculation (TLS) has proposed several mechanisms for optimistic execution of difficult-to-analyze serial codes in parallel. Though it has been shown that TLS helps to achieve higher levels of parallelism, evaluation of the unique performance potential of TLS, i.e., performance gain that be achieved only through speculation, has not received much attention. In this paper, we evaluate this aspect, by separating the speedup achievable via true TLP (thread-level parallelism) and TLS, for the SPEC CPU2000 benchmark. Further, we dissect the performance potential of each type of speculation --- control speculation, data dependence speculation and data value speculation. To the best of our knowledge, this is the first dissection study of its kind. Assuming an oracle TLS mechanism --- which corresponds to perfect speculation and zero threading overhead --- whereby the execution time of a candidate program region (for speculative execution) can be reduced to zero, our study shows that, at the loop-level, the upper bound on the arithmetic mean and geometric mean speedup achievable via TLS across SPEC CPU2000 is 39.16% (standard deviation = 31.23) and 18.18% respectively. Arun Kejariwal, Xinmin Tian, Wei Li 0015, Milind Girkar, Sergey Kozhukhov, Hideki Saito 0001, Utpal Banerjee, Alexandru Nicolau, Alexander V. Veidenbaum, Constantine D. Polychronopoulos |
ICS | 7 |
| 2006 | A general approach for partitioning N-dimensional parallel nested loops with conditionalsabstractParallel loops account for the greatest amount of parallelism in scientific and numerical codes. For example, most of the DO loops in SPEC CFP2000 and SPEC OMPM2001 are of DOALL type and account for a large percentage of the total execution time. One of the ways to exploit parallelism is to partition the iteration space of a DOALL loop amongst different processors in a parallel processor system. Naturally, a good partitioning is of key importance to achieve high performance and for efficient use of multiprocessor systems. Although a significant amount of work has been done in partitioning and scheduling of loops with both rectangular and non-rectangular iteration spaces, the problem of partitioning loops with conditionals has not been addressed so far to the best of our knowledge. In this paper, we present a mathematical model for partitioning parallel nested loops, both perfect and non-perfect, with conditionals, where the expressions in a conditional are affine functions of the outer loop indices. We present a loop transformation based on elimination of redundant constraints bounding the iteration space of a nested loop. The transformation plays a critical role during the (static) partitioning process as it helps to capture the "exact" lower and upper bounds (can be either a constant or symbolic) of the loop indices. We generate a canonical form of the loop nest using the transformation and employ the geometric approach we proposed earlier (in [1, 2]) for partitioning the iteration space along an axis corresponding to the outermost loop. For cases in which such a transformation does not exist, we propose a general approach for loop canonicalization. We present several examples from the literature and numerical packages to illustrate the effectiveness of our approach. Arun Kejariwal, Alexandru Nicolau, Hideki Saito 0001, Xinmin Tian, Milind Girkar, Utpal Banerjee, Constantine D. Polychronopoulos |
SPAA | 6 |
| 2005 | A novel approach for partitioning iteration spaces with variable densitiesabstractEfficient partitioning of parallel loops plays a critical role in high performance and efficient use of multiprocessor systems. Although a significant amount of work has been done in partitioning and scheduling of loops with rectangular iteration spaces, the problem of partitioning non-rectangular iteration spaces --- e.g., triangular, trapezoidal iteration spaces --- with variable densities has not been addressed so far to the best of our knowledge. In this paper, we present a mathematical model for partitioning N-dimensional non-rectangular iteration spaces with variable densities. We present a unimodular loop transformation and a geometric approach for partitioning an iteration space along an axis corresponding to the outermost loop across a given number of processors to achieve near-optimal performance, i.e., to achieve near-optimal load balance across different processors. We present a case study to illustrate the effectiveness of our approach. Arun Kejariwal, Alexandru Nicolau, Utpal Banerjee, Constantine D. Polychronopoulos |
PPoPP | 3 |
| 1995 | Profile-Guided Multi-Heuristic Branch Prediction
Pohua P. Chang, Utpal Banerjee |
ICPP (1) | 2 |
| 1993 | Automatic program parallelizationabstractAn overview of automatic program parallelization techniques is presented. It covers dependence analysis techniques, followed by a discussion of program transformations, including straight-line code parallelization, do-loop transformations, and parallelization of recursive routines. Several experimental studies on the effectiveness of parallelizing compilers are surveyed.> Utpal Banerjee, Rudolf Eigenmann, Alexandru Nicolau, David A. Padua |
Proc. IEEE | 1 |
| 1988 | An introduction to a formal theory of dependence analysis
Utpal Banerjee |
J. Supercomput. | 1 |
| 1987 | Processor Allocation for Horizontal and Vertical Parallelism and Related Speedup BoundsabstractThe main aim of the paper is to study allocation of processors to, parallel programs executing on a multiprocessor system, and the resulting speedups. First, we consider a parallel program as a sequence of steps where each step consists of a set of parallel operations. General bounds on the speedup on a p- processor system are derived based on this model. Measurements of code parallelism for the, LINPACK numerical package are presented to support the belief that typical numerical programs contain much potential parallelism that can be discovered by a good restructuring compiler. Next, a parallel program is represented as a task graph whose nodes are do across loops (i.e., loops whose iterations can be partially, overlapped). It is shown how processors can be allocated to exploit horizontal and vertical parallelism in such graphs. Two processor allocation heuristic algorithms (WP and PA) are presented. PA is the heart of the WP and is used to obtain efficient processor allocations for a set of independent parallel tasks. WP allocates processors to general task graphs. Finally, a general formula for the speedup of a DO across loop is given that is more accurate than the known formula. Constantine D. Polychronopoulos, Utpal Banerjee |
IEEE Trans. Computers | 2 |
| 1986 | Speedup Bounds and Processor Allocation for Parallel Programs on Multiprocessors
Constantine D. Polychronopoulos, Utpal Banerjee |
ICPP | 2 |
| 1984 | Fast Execution of Loops With IF StatementsabstractIn this paper we show how to execute in parallel loops containing IF statements. We give an architectural model of parallel computation and describe the design of a hardware Boolean Recurrence Solver. Our method of handling such loops is then compared with those used by some of the existing supercomputers. Utpal Banerjee, Daniel Gajski |
ISCA | 1 |
| 1984 | Fast Execution of Loops with IF StatementsabstractA parallel method of execution for a certain class of loops containing IF statements is described. We replace a given loop by an equivalent set of five loops, four of which are vectorizable; the fifth loop is executed in hardware as a Boolean recurrence. The proposed architecture handles all loops that produce recurrences with order ≤m, a hardware parameter. Utpal Banerjee, Daniel Gajski |
IEEE Trans. Computers | 1 |
| 1979 | Time and Parallel Processor Bounds for Fortran-Like LoopsabstractThe main goal of this paper is to show that a large number of processors can be used effectively to speed up simple Fortran-like loops consisting of assignment statements. A practical method is given by which one can check whether or not a statement is dependent upon another. The dependence structure of the whole loop may be of different types. For each type, a set of time and processor upper bounds is given. We also show how a loop can sometimes be transformed to change its dependence structure. Finally, we give a result on the possible splitting up of a given recurrence system into a number of smaller subsystems. These results can be used to modify and sometimes improve the bounds for the loops as demanded by special circumstances. Utpal Banerjee, Shyh-Ching Chen, David J. Kuck, Ross A. Towle |
IEEE Trans. Computers | 1 |