  We present two new algorithms for Householder QR factorization of Block
Low-Rank (BLR) matrices: one that performs block-column-wise QR, and another
that is based on tiled QR. We show how the block-column-wise algorithm exploits
BLR structure to achieve arithmetic complexity of $\mathcal{O}(mn)$, while the
tiled BLR-QR exhibits $\mathcal{O}(mn^{1.5})$ complexity. However, the tiled
BLR-QR has finer task granularity that allows parallel task-based execution on
shared memory systems. We compare the block-column-wise BLR-QR using fork-join
parallelism with tiled BLR-QR using task-based parallelism. We also compare
these two implementations of Householder BLR-QR with a block-column-wise
Modified Gram-Schmidt (MGS) BLR-QR using fork-join parallelism, and a
state-of-the-art vendor-optimized dense Householder QR in Intel MKL. For a
matrix of size 131k $\times$ 65k, all BLR methods are more than an order of
magnitude faster than the dense QR in MKL. Our methods are also robust to
ill-conditioning and produce better orthogonal factors than the existing
MGS-based method. On a CPU with 64 cores, our parallel tiled Householder and
block-column-wise Householder algorithms show a speedup of 50 and 37 times,
respectively.
