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.
This Brief includes a Technical Support Package (TSP).
Software Optimizes Multi-Core Platforms
(reference AFRL-0110) is currently available for download from the TSP library.
Don't have an account? Sign up here.