Call-chain Software Instruction Prefetching in J2EE Server Applications

Priya Nagpurkar, Harold Cain, Mauricio Serrano, Jong-Deok Choi, and Chandra Krintz

The International Conference on Parallel Architectures and Compilation Techniques, (PACT) September, 2007, Brasov, Romania



We present a detailed characterization of instruction cache performance for IBM's J2EE-enabled web server, WebSphere Application Server (WAS). When running two J2EE benchmarks on WebSphere, we find that instruction cache misses cause a 12% performance penalty on current-generation Power5-based multiprocessor systems. To mitigate this performance loss, we describe a new call-chain based algorithm for inserting software prefetch instructions, and evaluate its potential for improved instruction cache performance. The performance of this algorithm depends on the selection of several independent parameters which control the distance and number of prefetches inserted for a particular method. Through characterization of the WebSphere applications, we select these parameters, and ultimately find that our call-chain based insertion algorithm achieves significant reduction in instruction cache miss rate for Java methods.