Nikola Grcevski
IBM
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Nikola Grcevski.
symposium on code generation and optimization | 2013
Ian Gartley; Marius Pirvu; Vijay Sundaresan; Nikola Grcevski
Profile directed feedback (PDF) is a well known technique used to drive many compiler optimizations like basic block ordering and guarded devirtualization. These optimizations are particularly crucial in order to achieve good throughput performance in JEE applications that have a large code footprint. To effectively apply optimizations that rely on profiling information, a just-in-time (JIT) compiler must have access to profiling information that is accurate. One common source of profiling information in a Java virtual machine (JVM) is the interpreter. Typically methods are interpreted as a program ramps up, during which profiling information can be collected. However, obtaining useful and accurate information for large enterprise-class applications can be a challenge because of the memory and performance overhead associated with collecting and processing the large volumes of profiling data that is generated. This paper describes the challenges in maintaining the balance between throughput performance and profiling overhead in a production JIT compiler that is used by the IBM JDK. The scope of the performance overhead in terms of throughput, memory footprint and startup speed for large JEE class applications is introduced and various engineering solutions that were tried are detailed and compared in terms of experimental results. We found that the throughput improvement due to interpreter profiling (IP) can be as high as 58%, whereas the overhead measured in terms of application startup time could cost up to 57%. Our solutions to reducing profiling overhead managed to reduce the startup cost to only a few percent while maintaining the full throughput benefit. By discussing these approaches, this paper offers a balanced and practical overview on how to make PDF work well for enterprise-class applications in a production JIT compiler.
compiler construction | 2010
Adam Jocksch; Marcel Mitran; Joran Siu; Nikola Grcevski; José Nelson Amaral
The productivity of a compiler development team depends on its ability not only to the design effective solutions to known code generation problems, but also to uncover potential code improvement opportunities. This paper describes a data mining tool that can be used to identify such opportunities based on a combination of hardware-profiling data and on compiler-generated counters. This data is combined into an Execution Flow Graph (EFG) and then FlowGSP, a new data mining algorithm, finds sequences of attributes associated with subpaths of the EFG. Many examples of important opportunities for code improvement in the IBM® Testarossa compiler are described to illustrate the usefulness of this data mining technique. This mining tool is specially useful for programs whose execution is not dominated by a small set of frequently executed loops. Information about the amount of space and time required to run the mining tool are also provided. In comparison with manual search through the data, the mining tool saved a significant amount of compiler development time and effort.
VM'04 Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium - Volume 3 | 2004
Nikola Grcevski; Allan Kielstra; Kevin A. Stoodley; Mark G. Stoodley; Vijay Sundaresan
Archive | 2007
Mike Stephen Fulton; Nikola Grcevski; Derek B. Inglis
Archive | 2007
Nikola Grcevski; Derek B. Inglis; Marius Pirvu; Mark G. Stoodley
Archive | 2007
Peter Wiebe Burka; Nikola Grcevski; Charles Brian Hall; Zhong L. Wang
Archive | 2005
Nikola Grcevski; Kevin A. Stoodley; Mark G. Stoodley; Vijay Sundaresan
Archive | 2008
Timothy Peter Ellison; Nikola Grcevski; David Kevin Siegwart
Archive | 2005
Nikola Grcevski; Mark G. Stoodley
Archive | 2007
Nikola Grcevski; Peter Wiebe Burka