EDBT 2026 Demo / reviewers in the wild / expert
Jesse Fang
dblp:77/129
· DBLP profile ↗
13ranked-venue papers
3as first author
0since 2021 · last 2009
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 9 · 2 first-authorSystems, architecture and hardware · 8 · 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
4 papers |
Processor architecture and microarchitecture · 39% Parallel and multicore computing · 30% GPUs and heterogeneous computing · 15% | |
| Software engineering, system software, and programming languages
3 papers |
Runtime systems and virtual machines · 73% Compilers and program optimization · 27% |
Topics — the 18 heaviest of 19, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
GPUs and heterogeneous computing
heterogeneous programming models |
0.1 | 1 | 2009 | Programming model for a heterogeneous x86 platform · PLDI 2009 |
Parallel and multicore computing
parallel programming models |
0.1 | 1 | 2009 | Programming model for a heterogeneous x86 platform · PLDI 2009 |
Runtime systems and virtual machines
language runtime |
0.1 | 1 | 2007 | Enabling scalability and performance in a large scale CMP environment · EuroSys 2007 |
Processor architecture and microarchitecture
chip multiprocessor |
0.1 | 1 | 2007 | Enabling scalability and performance in a large scale CMP environment · EuroSys 2007 |
Parallel and multicore computing
parallel programming runtimes |
0.1 | 1 | 2007 | Enabling scalability and performance in a large scale CMP environment · EuroSys 2007 |
Memory systems
cache |
0.0 | 1 | 2002 | Compiler managed micro-cache bypassing for high performance EPIC processors · MICRO 2002 |
Memory systems › cache management › cache insertion policy
cache bypassing |
0.0 | 1 | 2002 | Compiler managed micro-cache bypassing for high performance EPIC processors · MICRO 2002 |
Processor architecture and microarchitecture › front-end
micro-op cache |
0.0 | 1 | 2002 | Compiler managed micro-cache bypassing for high performance EPIC processors · MICRO 2002 |
Hardware accelerators and domain-specific architectures
computation reuse |
0.0 | 1 | 2001 | Better exploration of region-level value locality with integrated computation reuse and value prediction · ISCA 2001 |
Processor architecture and microarchitecture › multithreading
speculative multithreading |
0.0 | 1 | 2001 | Better exploration of region-level value locality with integrated computation reuse and value prediction · ISCA 2001 |
Processor architecture and microarchitecture
value prediction |
0.0 | 1 | 2001 | Better exploration of region-level value locality with integrated computation reuse and value prediction · ISCA 2001 |
Processor architecture and microarchitecture › multiprocessor architecture
heterogeneous-ISA |
0.0 | 1 | 2009 | Programming model for a heterogeneous x86 platform · PLDI 2009 |
Processor architecture and microarchitecture
instruction set architecture |
0.0 | 1 | 2009 | Programming model for a heterogeneous x86 platform · PLDI 2009 |
Parallel and multicore computing
memory model |
0.0 | 1 | 2009 | Programming model for a heterogeneous x86 platform · PLDI 2009 |
Runtime systems and virtual machines › virtual machine implementation
java virtual machine |
0.0 | 1 | 1998 | The New Crop of Java Virtual Machines (Panel) · OOPSLA 1998 |
Processor architecture and microarchitecture › instruction set architecture
EPIC architecture |
0.0 | 1 | 2002 | Compiler managed micro-cache bypassing for high performance EPIC processors · MICRO 2002 |
Processor architecture and microarchitecture
data dependence |
0.0 | 1 | 2001 | Better exploration of region-level value locality with integrated computation reuse and value prediction · ISCA 2001 |
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.0 | 1 | 1998 | The New Crop of Java Virtual Machines (Panel) · OOPSLA 1998 |
Methods — techniques the papers use, named apart from their topics
experimental evaluation · 0.1simulator-based evaluation · 0.1static analysis · 0.1profiling · 0.1speculative multithreading · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2009 | Dynamic parallelization of single-threaded binary programs using speculative slicingabstractThe performance of single-threaded programs and legacy binary code is of critical importance in many everyday applications. However, neither can hardware multi-core processors directly speed up single-threaded programs, nor can software automatic parallelizing compilers effectively parallelize legacy binary code and irregular applications. In this paper, we propose a framework and a set of algorithms to dynamically parallelize single-threaded binary programs. Our parallelization is based on program slicing and explores both instruction-level parallelism (ILP) and thread-level parallelism (TLP). To significantly reduce the critical path of the parallel slices, our slicing algorithms exploit speculation to cut rare dependences, and use well-designed program transformations to expose parallelism. Furthermore, because we transparently parallelize binary code at runtime, we perform slicing only on program hot regions. Our experiments demonstrate that the proposed speculative slicing approach extracts more parallelism than any known slicing based parallelization schemes. For the SPEC2000 benchmarks, we can achieve 3x parallelism with infinite number of threads, and 1.8x parallelism with 4 threads. Cheng Wang 0013, Youfeng Wu, Edson Borin, Shiliang Hu, Wei Liu 0014, Dave Sager, Tin-Fook Ngai, Jesse Fang |
ICS | 8 |
| 2009 | Programming model for a heterogeneous x86 platformabstractThe client computing platform is moving towards a heterogeneous architecture consisting of a combination of cores focused on scalar performance, and a set of throughput-oriented cores. The throughput oriented cores (e.g. a GPU) may be connected over both coherent and non-coherent interconnects, and have different ISAs. This paper describes a programming model for such heterogeneous platforms. We discuss the language constructs, runtime implementation, and the memory model for such a programming environment. We implemented this programming environment in a x86 heterogeneous platform simulator. We ported a number of workloads to our programming environment, and present the performance of our programming environment on these workloads. Bratin Saha, Xiaocheng Zhou, Shoumeng Yan, Mohan Rajagopalan, Jesse Fang, Peinan Zhang, Ronny Ronen, Avi Mendelson |
PLDI | 7 |
| 2007 | Parallel Programming Environment: A Key to Translating Tera-Scale Platforms into a Big SuccessabstractSummary form only given. Moore's Law will continue to increase the number of transistors on die for a couple of decades, as silicon technology moves from 65nm today to 45nm, 32 nm and 22nm in the future. Since the power and thermal constraints increase with frequency, multi-core or many-core will be the way of the future microprocessor. In the near future, HW platforms will have many-cores (>16 cores) on die to achieve >1 TIPs computation power, which will communicate each other through an on-die interconnect fabric with >1 TB/s on-die bandwidth and <30 cycles latency. Off-die D-cache will employ 3D stacked memory technology to tremendously increase off-die cache/memory bandwidth and reduce the latency. Fast copper flex cables will link CPU-DRAM on socket and the optical silicon photonics will provide up to 1 Tb/s I/O bandwidth between boxes. The HW system with TIPs of compute power operating in Tera-bytes of data make this a "Tera-scale" platform. What are the SW implications with the HW changes from uniprocessor to Tera-scale platform with many-cores as "the way of the future?" It will be great challenge for programming environments to help programmers to develop concurrent code for most client software. A good concurrent programming environment should extend the existing programming languages that typical programmers are familiar with, and bring benefits for concurrent programming. There are lots of research topics. Examples of these topics include flexible parallel programming models based on needs from applications, better synchronization mechanisms like Transactional Memory to replace simple "Thread + Lock" structure, nested data parallel language primitives with new protocols, fine-grained synchronization mechanisms with HW support, maybe fine-grained message passing, advanced compiler optimizations for the threaded code, and SW tools in the concurrent programming environment. A more interesting problem is how to use such a many-core system to improve single-threaded performance Jesse Fang |
CGO | 1 |
| 2007 | Enabling scalability and performance in a large scale CMP environmentabstractHardware trends suggest that large-scale CMP architectures, with tens to hundreds of processing cores on a single piece of silicon, are iminent within the next decade. While existing CMP machines have traditionally been handled in the same way as SMPs, this magnitude of parallelism introduces several fundamental challenges at the architectural level and this, in turn, translates to novel challenges in the design of the software stack for these platforms. This paper presents the "Many Core Run Time" (McRT), a software prototype of an integrated language runtime that was designed to explore configurations of the software stack for enabling performance and scalability on large scale CMP platforms. This paper presents the architecture of McRT and discusses our experiences with the system, including experimental evaluation that lead to several interesting, non-intuitive findings, providing key insights about the structure of the system stack at this scale. A key contribution of this paper is to demonstrate how McRT enables near linear improvements in performance and scalability for desktop workloads such as the popular XviD encoder and a set of RMS (recognition, mining, and synthesis) applications. Another key contribution of this work is its use of McRT to explore non-traditional system configurations such as a light-weight executive in which McRT runs on "bare metal" and replaces the traditional OS. Such configurations are becoming an increasingly attractive alternative to leverage heterogeneous computing uints as seen in today's CPU-GPU configurations. Bratin Saha, Ali-Reza Adl-Tabatabai, Anwar M. Ghuloum, Mohan Rajagopalan, Richard L. Hudson, Leaf Petersen, Vijay Menon 0002, Brian R. Murphy, Tatiana Shpeisman, Eric Sprangle, Anwar Rohillah, Doug Carmean, Jesse Fang |
EuroSys | 13 |
| 2004 | Improving 64-Bit Java IPF Performance by Compressing Heap Referencesabstract64-bit processor architectures like the Intel/spl reg/ Itanium/spl reg/ processor family are designed for large applications that need large memory addresses. When running applications that fit within a 32-bit address space, 64-bit CPUs are at a disadvantage compared to 32-bit CPUs because of the larger memory footprints for their data. This results in worse cache and TLB utilization, and consequently lower performance because of increased miss ratios. This paper considers software techniques for virtual machines that allow 32-bit pointers to be used on 64-bit CPUs for managed runtime applications that do not need the full 64-bit address space. We describe our pointer compression techniques and discuss our experience implementing these for Java applications. In addition, we give performance results with our techniques for both the SPEC JVM98 and SPEC JBB2000 benchmarks. We demonstrate a 12% performance improvement on SPEC JBB2000 and a reduction in the number of garbage collections required for a given heap size. Ali-Reza Adl-Tabatabai, Jay Bharadwaj, Michal Cierniak, Marsha Eng, Jesse Fang, Brian T. Lewis, Brian R. Murphy, James M. Stichnoth |
CGO | 5 |
| 2004 | The Accuracy of Initial Prediction in Two-Phase Dynamic Binary TranslatorsabstractDynamic binary translators use a two-phase approach to identify and optimize frequently executed code dynamically. In the first step (profiling phase), blocks of code are interpreted or quickly translated to collect execution frequency information for the blocks. In the second phase (optimization phase), frequently executed blocks are grouped into regions and advanced optimizations are applied on them. This approach implicitly assumes that the initial profile of each block is representative of the block throughout its lifetime. We investigate the ability of the initial profile to predict the average program behavior. We compare the predicted behavior of varying lengths of the initial execution with the average program behavior for the whole program execution, and use the prediction from the training input as the reference. Our result indicates that, for the SPEC2000 benchmarks, even very short initial profiles have comparable prediction accuracy to the traditional profile-guided optimizations using the training input, although the initial profile is inadequate for predicting loop trip count information for some integer programs and several benchmarks can benefit from phase-awareness during dynamic binary translation. Youfeng Wu, Maurício Breternitz, Justin Quek, Orna Etzion, Jesse Fang |
CGO | 5 |
| 2003 | Performance potentials of compiler-directed data speculationabstractCompiler-directed data speculation has been implemented on Itanium systems to allow for a compiler to move a load across a store even when the two operations are potentially aliased This not only breaks data dependency to reduce critical path length, but also allows a load to be scheduled far apart from its uses to hide cache miss latencies. However, the effectiveness of data speculation is affected by the sophistication of alias analysis technique as well as the aggressiveness of the instruction scheduler. In general, the more sophisticated is the alias analysis technique, the less performance gain is from data speculation, and the more aggressive is the instruction scheduler, the more opportunity is for data speculation. In this paper we evaluate in various scenarios the performance potentials of data speculation for SPEC2000C benchmarks. For each scenario, we determine the performance contributions of data speculation due to both critical path reduction and cache miss latency reduction. We also show interesting statistics about the effects of scheduling constraints, the percentage of critical dependencies, the impacts of cache miss latencies, and the distances between the load locations before and after data speculation. Youfeng Wu, Li-Ling Chen, Roy Dz-Ching Ju, Jesse Fang |
ISPASS | 4 |
| 2002 | Value-Profile Guided Stride Prefetching for Irregular Code
Youfeng Wu, Mauricio J. Serrano, Rakesh Krishnaiyer, Wei Li 0015, Jesse Fang |
CC | 5 |
| 2002 | Compiler managed micro-cache bypassing for high performance EPIC processorsabstractAdvanced microprocessors have been increasing clock rates, well beyond the Gigahertz boundary. For such high performance microprocessors, a small and fast data micro-cache (ucache) is important to overall performance, and proper management of it via load bypassing has a significant performance impact. In this paper, we propose and evaluate a hardware-software collaborative technique to manage ucache bypassing for EPIC processors. The hardware supports the ucache bypassing with a fag in the load instruction format, and the compiler employs static analysis and profiling to identify loads that should bypass the ucache. The collaborative method achieves a significant improvement in performance for the SpecInt2000 benchmarks. On average, about 40%, 30%, 24%, and 22% of load references are identified to bypass 256 B, 1 K, 4 K, and 8 K sized ucaches, respectively. This reduces the ucache miss rates by 39%, 32%, 28%, and 26%. The number of pipeline stalls from loads to their uses is reduced by 13%, 9%, 6%, and 5%. Meanwhile, the L1 and L2 cache misses remain largely unchanged. For the 256 B ucache, bypassing improves overall performance on average by 5%. Youfeng Wu, Ryan N. Rakvic, Li-Ling Chen, Chyi-Chang Miao, George Chrysos, Jesse Fang |
MICRO | 6 |
| 2001 | Better exploration of region-level value locality with integrated computation reuse and value predictionabstractComputation-reuse and value-prediction are two recent techniques for improving microprocessor performance by exploiting value localities. They both aim at breaking the data dependence limit in traditional processors. In this paper, we propose a speculative multithreading scheme in which the same hardware can be efficiently used for both computation reuse and value prediction. For the SpecInt95 benchmarks, our experiment shows that the integrated approach significantly out-performs either computation reuse or value prediction alone. For example, the integrated approach improves over computation reuse from a speedup of 1.25 to 1.40, and improves over value prediction from 1.28 to 1.40. In particular, the integrated approach out-performs a computation reuse configuration that has twice as much reuse buffer entries (from a speedup 1.33 to 1.40). Furthermore, unlike the computation reuse approach, the performance of the integrated approach does not rely on value profile during region formation and thus our approach is more suitable for production systems. Youfeng Wu, Dong-yuan Chen, Jesse Fang |
ISCA | 3 |
| 1998 | The New Crop of Java Virtual Machines (Panel)
Lars Bak, John Duimovich, Jesse Fang, Scott Meyer, David M. Ungar |
OOPSLA | 3 |
| 1994 | Are We Providing the Right Education for Computer Science/Engineering Students?
Jesse Fang, Yarsun Hsu, Shing-Tsaan Huang, Jie-Yong Juang, W. H. Tsai, Horst F. Wedde |
ICPADS | 1 |
| 1989 | Processor scheduling in parallel program executionabstractThe different processor scheduling approaches in parallel program execution are introduced and compared. On the basis of simulation results, it is concluded that the best choice of a runtime model for parallel programming depends on the nature of the application programs and the hardware architecture.> Jesse Fang |
COMPSAC | 1 |