Future Technologies Group
Berkeley Lab Computing Sciences

Group Members

Current Projects

Past Projects

Related Sites

    

APEX-Map V3.0

In version 3 of APEX-Map, we implemented a more radical extension, which measures the performance influence of the arrangement and balance of functional units themselves. This allows APEX-Map to measure the computational performance of systems in addition to memory and network performance. The family of inner kernels is based on two new characteristic parameters: C: Computational Intensity and R: Register Pressure in addition to the three parameters used earlier (M: Memory Size, L: Spatial Locality, a: Temporal Locality). Using a code generator we produce different parameterized code segments to generate varying register pressures and computational intensities. In Apex-Map 3.0, we also characterize the loop structure (Nested Loop vs. Fused Loop) and data store effect (Scalar variables vs. Arrays).

Following are important parameters and their allowed values (in CAPITAL LETTERS). Failing to provide correct values may cause unexpected program results.

MODE: the test purpose of the code
--SEQUENTIAL: to test sequential performance
--MULTICORE: to test multicore effect (need MPI for synchronization)
--PARALLEL: to test parallel performance (not implemented)

ACCESS PATTERN: data access pattern
--RANDOM: need to define memory size, temporal locality, spatial locality

MEMORY SIZE: the memory size

SPATIAL LOCALITY: the list of spatial localities
--1 -- MEMORY SIZE: could be defined in flexible manner, such as 1, 2, 4, 8-64 (a list starting from 8, ending at 64 in step *4)

TEMPORAL LOCALITY: the list of temporal locality
--any value between [0,1], such as 0.1, 0.25, 1.0

ALGORITHM: how the loop structure is orchestrated
--NESTED: using nested loop
--FUSED: using one fused loop

INDEX SIZE: the number of indices generated in advance for each test
--any number between 1 -- 1 Million

REGISTER PRESSURE: to test the performance effect of the number of registers
--any positive integer (but it is usually set to a smaller number)

COMPUTATIONAL INTENSITY: to test the performance effect of computational intensity
--any positive integer (but it is usually set to a smaller number)

STORE METHOD: to decide how to store the left size data
--ARRAY
--SCALAR

The following image show the single-processor performance of APEX-Map on a logarithmic scale in MF/s. R stands for register pressure and CI stands for computational intensity. It demonstrates the range of chievable performance values and the influence of these two paramters on a IBM Power platform.