A multi-threaded LU implementation.
Install and test:
using Pkg
Pkg.add(url="https://github.com/JuliaLinearAlgebra/MultiThreadedLU.jl")
Pkg.test("MultiThreadedLU")
Example:
using MultiThreadedLU, Random, LinearAlgebra
n = 1024
a = rand(n,n);
b = rand(n);
x = hpl_mt(a, b)
norm(a*x-b)
Husbands, Parry, and Katherine Yelick. "Multi-threading and one-sided communication in parallel LU factorization." In Proceedings of the 2007 ACM/IEEE Conference on Supercomputing, pp. 1-10. 2007.
RecursiveFactorization.jl is a better optimized package and much more well tested. This package is mainly a proof of concept for an eventual large-scale distributed implementation.