Software Optimizes Multi-Core Platforms

Perseus is a suite of tools that allows existing x86-based software (in binary form) to be optimized for commodity multi-core platforms. Optimizations are made with respect to both performance (e.g., by avoiding undesirable cache effects) and power consumption (e.g., by modulating frequency and voltage of cores according to necessary workloads). The Perseus solution works by using dynamic binary instrumentation to both insert probes and modify deployed code, and by using genetic-algorithm-based searches to determine optimal deployments within the potential design space.

To efficiently and effectively optimize legacy applications for deployment to a multi-core platform, the software provides the following four key capabilities: 1) Automatically identify "nominal" execution behavior of legacy applications that can be used as a benchmark for acceptable performance; 2) Auto mat i - c ally identify behavior of legacy applications with respect to memory access and potential for performance degradation arising from false-sharing phenomenon; 3) Automatically derive an optimal design that defines the configuration of the platform cores and mapping of threads over time (with respect to frequency/ voltage modulation and availability); and 4) Realize the implementation of derived designs without modification of source code.

Perseus operates within the context of Linux-based systems running on Intel Xeon-based multi-core processors. The key Perseus subsystems are: 1) Behavioral analysis – Temporal Execution Graph, 2) Behavioral analysis – Temporal Memory Access Map, 3) Design Optimization Engine, 4) Deployment Engine, and 5) Run-Time Engine. Each subsystem is implemented as a separate Linux tool. In addition to the core solution, a number of test applications and auxiliary tools that support experimentation (e.g., standalone data visualization tools) were developed.

This work was done by Daniel G. Waddington of Lockheed Martin Corp. for the Air Force Research Laboratory.

AFRL-0110



This Brief includes a Technical Support Package (TSP).
Document cover
Software Optimizes Multi-Core Platforms

(reference AFRL-0110) is currently available for download from the TSP library.

Don't have an account?



Magazine cover
Defense Tech Briefs Magazine

This article first appeared in the February, 2009 issue of Defense Tech Briefs Magazine (Vol. 3 No. 1).

Read more articles from this issue here.

Read more articles from the archives here.


Overview

The document titled "Optimal Configuration and Deployment of Software on Multi-Core Processing Architectures" is a final technical report published by Lockheed Martin Corporation in July 2008. It addresses the challenges faced by military embedded systems in providing sufficient processing capacity within limited power and space constraints. The report highlights the increasing demands of next-generation war-fighting applications on computational throughput, particularly in the context of the Lockheed Martin Joint Strike Fighter (JSF) Vehicle Management Computer (VMC) application.

To tackle these challenges, the report introduces Perseus, a suite of tools designed to optimize existing x86-based software for commodity multi-core platforms. The Perseus solution employs dynamic binary instrumentation to modify deployed code and insert probes, while utilizing genetic-algorithm-based searches to identify optimal configurations for performance and power consumption. This approach aims to enhance both computational efficiency and energy management by adjusting core frequency and voltage according to workload requirements.

The report summarizes the success of various technology elements within the project, indicating that most expectations were met, except for the extraction of temporal memory maps from probed binaries, which faced scalability issues. An alternative data collection approach was proposed to address this limitation.

The document is structured into several sections, including an executive summary, background information on multi-core processing, problem definitions, solution overviews, detailed system designs, experimental results, and conclusions. It emphasizes the importance of maximizing performance while minimizing power consumption in multi-core contexts, discussing specific techniques such as cache management and behavioral analysis.

Experimental results are presented, showcasing the effectiveness of the tools developed under the Perseus program. The report concludes with insights into the potential for future applications of the technology and the importance of continued research in optimizing software for multi-core architectures.

Overall, this report serves as a comprehensive resource for understanding the advancements in software optimization for multi-core processing systems, particularly in military applications, and highlights the ongoing need for innovative solutions to meet the evolving demands of modern computing environments.