# HLR¶

HLR is a testbed for various *H*ierarchical *L*ow-*R*ank (HLR) algorithms and
different parallelization frameworks which are difficult to implement in HLIBpro,
e.g., because too big modifications to internal data structures are needed. However, HLR is using
HLIBpro (or HLIBcore) for many internal
functions and data structures and does not compile on its own.

The main focus of HLR is the implementation of new algorithms (and older for reference) for low-rank arithmetic, e.g., algorithms optimized for different block partitions.

Furthermore, these algorithms are usually implemented using various parallelization frameworks to look into usability and performance of these frameworks, e.g., how easy it is to map a particular algorithm to the corresponding functions of the software library and whether this mapping comes with performance benefits or penalties.