My program needs to perform pivoted QR decomposition on tall (e.g. 1e9 by 100) matrices. I run into the bottleneck that the major computational time of my program is spent on doing serial pivoted-QR decomposition, while the node has 20 threads. For some reason I am confined to one node to perform the decomposition, so that distributed strategies such as scalapack will not help. I am wondering if there is any library/package that provides threaded version of pivoted-QR decomposition. Right now my code calls lapack's sgeqp3 subroutine. Thanks!