- Tiptop: a tool to display hardware performance counters for Linux tasks
Hardware performance monitoring counters have recently received a lot of attention. They have been used by diverse communities to understand and improve the quality of computing systems: for example, architects use them to extract application characteristics and propose new hardware mechanisms; compiler writers study how generated code behaves on particular hardware; software developers identify critical regions of their applications and evaluate design choices to select the best performing implementation. We propose that counters be used by all categories of users, in particular non-experts, and we advocate that a few simple metrics derived from these counters are relevant and useful. For example, a low IPC (number of executed instructions per cycle) indicates that the hardware is not performing at its best; a high cache miss ratio can suggest several causes, such as conflicts between processes in a multicore environment.
- Heptane: static worst-case execution time (WCET) estimation tool
- If-memo: function-level memoization
Memoization is the technique of saving result of executions so that future executions can be omitted when the inputs repeat. We proposed software memoization of pure functions for procedural languages. We rely on the operating system loader, taking advantage of the LD_PRELOAD feature of UNIX systems. Our technique does not require the availability of source code and thus can be applied even to commercial applications as well as applications with legacy codes. As far as users are concerned, enabling memoization is as simple as setting an environment variable.
- Barra: GPU architecture simulator modeling Nvidia CUDA-enabled GPUs
- Parasuite: Parallel benchmarks for multi-core CPUs, clusters and accelerators
- Padrone: Platform for Dynamic Binary Analysis and Optimization
- ATMI: microprocessor temperature model
- STiMuL: steady-state temperature modeling tool for circuits
- ATC: address trace compressor
- TPCalc: throughput calculator
- Havege: unpredictable random number generator
- Salto: retargetable framework for assembly-language transformation
- GCC4CLI: a CLI backend for GCC.