multithreading - Julia and Lapack: pstrf multithreaded but trtrs not -
my program written in julia not yield expected computational performance. program first computes cholesky decomposition of large matrix a using cholfact!
, a = l'l. solves lx = b different b using backslash operator.
this results in straight calls lapack. function cholfact!
implemented pstrf!
, backslash operator uses trtrs!
. these correct lapack functions use. while function pstrf!
executed in parallel, function trtrs!
not. profiler tells me of runtime spent on trtrs!
. lines of code in program are
f = cholfact!(a, :l, pivot = true) # precomputation, executed once
and
x = f[:l]\b[f.piv] # inside loop, b computed x every step
why there difference between 2 lapack functions? how can parallel execution of pstrf!
?
Comments
Post a Comment