Programming language support for multi-core architectures introduces a fundamentally new mechanism for modularitya kernel. Though it can be used as a means to separate concerns, a kernel is given a clean slate of memory at execution time. As a consequence, application developers attempting to leverage libraries of kernels often incur substantial unanticipated performance penalties. Currently, the only recourse is to compromise modularity for the sake of optimizing data flow on an application-specific basis.KFusion is our prototype tool for optimizing libraries of kernels according to application-specific needs. Our goal is to shield application developers from loop fusion and deforestation in compositions of low level kernels that share data. Libraries, augmented by domain experts with annotations to ensure correct compositions of kernels, provide application developers with the opportunity to supply hints according to customized data flow needs-keeping modularity intact. In the worst case, an inaccurate hint incurs no penalty. Case studies of applications using general-purpose libraries for linear algebra, image manipulation and physics engines show that KFusion can substantially improve performance associated memory bandwidth bottlenecks.
Tools for high-level languages often assist developers in successfully comprehending complex systems without worrying about low-level details. However, new architectures and paradigms now pose new challenges in program comprehension that often require high-level reasoning about low-level issuessometimes even at the level of processor instructions. This is particularly true for the new generation of developers learning to harness the power of SIMD operations, multi-core, multiprocessor systems. Though industrial-strength tools for malware analysts are available, these typically come at considerable cost and require extensive expertise.Our proposed solution is to extend high-level comprehension tools, commonly available in IDEs, to low-level representations. This paper presents the design and prototype implementation of an Integrated Comprehension Environment (ICE), which provides an Eclipse-based tool suite extended to analyse code in intermediate and assembly languages. Preliminary evaluation based on visualisations for wayfinding, call graphs, sequence diagrams and control flow show, (1) correspondence to requirements for comprehension tools in this domain, (2) flexibility in the spectrum of data sources it can accept, and (3) scalability with respect to the explosion of instructions in the code base, while still providing a means to build new visualisations for analysis. I. INTRODUCTIONWith the growing number of new computing paradigms, new processor features, and the now ubiquitous nature of computing, developers not only need to be able to reason about the details of how their code is represented in high-level languages, but also how it will interact with the hardware when it runs. The problem is that it can be hard to recognise the implications of the final translation from the original source code to an executable binary. Additionally, comprehension tools have typically focused on the question of how high-level concerns are represented, leaving only specialised tools for malware analysis and reverse engineering to focus on its final, low-level state.A previous study designed to elicit requirements from groups of developers and analysts that work with assembly code on a regular basis revealed many common challenges in this domain [1]. As a proof-of-concept, this work focuses on the following subset of challenges identified by the security analysts in that study: 1) Multiple Executables: Their disassembler tool cannot disassemble more than one executable file at a time (e.g. DLL libraries) and link between them. 2) Map of Analysis: It is easy to get lost when going deeper into the code-hard to track where the exploration started and how a deeper point was arrived at.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2025 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.