Los Alamos National LaboratoryProgramming Models Team
Extreme-scale computing specializing in novel computing techniques applied to the hardware-software boundary

Byfl: Compiler-based Application Analysis

Program analysis tool based on software performance counters.

Byfl flowchart that includes nine steps.

The name "Byfl" comes from "bytes/flops." The very first version of the code counted only bytes and floating-point operations (flops).

The trend in high-performance computing is to include computational accelerators such as GPUs or Xeon Phis in each node of a large-scale system.

Qualitatively, such accelerators tend to favor codes that perform large numbers of floating-point and integer operations per branch, that exhibit high degrees of memory locality, and that are highly data-parallel. The question we address in this work is how to quantify those characteristics.

To that end, we developed an application-characterization tool called Byfl that provides a set of ³software performance counters². These are analogous to the hardware performance counters provided by most modern processors but are implemented through code instrumentationthe equivalent of adding flops = flops + 1 after every floating-point operation but are in fact implemented by modifying the compiler's internal representation of the code.