LENGTH: 1/2 day
DESCRIPTION: High-level languages and packages allow us to ignore many specific details of the platform. But there are many low-level details that should be kept in mind, or at least thought of occasionally. Specific details concerning current CPU and cluster hardware will be discussed, as well as how they interact with compilers and libraries. For instance, what sorts of primitive operations can be expected to execute efficiently? What tools exist to measure performance in fundamental units, such as actual FLOPS, cache hit/miss rates, etc.
PREREQUISITES: Familiar with high level programming languages such as C/C++ or Fortran.
LAB: In class exercises.