I've recently learned of BLAS (Basic Linear Algebra Subprograms) and ATLAS (Automatically Tuned Linear Algebra Software). Both software packages focus on linear algebra operations with matricies. For example adding two matricies together (A + B) or multiplying a matrix by a scalar (A*b). However, to my knowledge, BLAS and ATLAS don't offer optimizations in matrix replication or matrix indexing.

For example suppose A and B are matricies containing numbers, and C is a logical matrix (containing binary/logical values of either true or false). When I mention an index operation, it would be something like A(C) = B(C).

When speaking of replicating a matrix, think of MATLAB's "repmat" function. For example A = repmat(A,3,1).

To my knowledge, neither of these operations is offered (optimized) by using BLAS or ATLAS. Does anyone know of an alternative to ATLAS or BLAS, that does offer parallelization of these types of operations (matrix indexing and matrix replication)?

I've tried to search for this very thing online, but haven't been very successful. The biggest problem is that I don't know the best way to describe what I'm looking for with a good search phrase.

If anyone is familiar with these types of packages (ATLAS, BLAS, etc.), and is aware of something that is capable of what I've described, then I'd love to hear about it. I have a computer which has lots of cores, and is therefore capable of running parallelized programs. I don't want to reinvent the wheel by trying to write my own parallel programs if there's already something out there that does this sort of thing.

Thanks for your time, and I look forward to hearing from anyone who has any experience in this area, or who has any suggestions.