I tried to implement this algo using the 'dgetrf', 'dgessm', 'dtstrf' and 'dssssm'implemented in the 'core_blas' section of the plasma library, however after many tries,I obtained incorrect results. I suspect i'm passing wrong arguments since some argumentsare not detailed in the documentation or perhaps wrong matrix storage format (BDL).

Calling these functions whith these paramemters gives wrong results (different from lapack 'dgetrf' results), i triedto change them but in a 'blind' way since i didn't figure out what's some parameters are for.

What's the correct arguments for my situation ? at least for this simple example ?is there a step before which i should backup a tile then restore it ?Finally and simply, what's wrong in this implementation ?

It's all correct.Make sure that your matrix is really laid out in tiles.If you're not sure that you did it right, there is a set of PLASMA function to do the conversion back and forth.Now, here is the catch.PLASMA tile LU does not perform the same factorization as LAPACK LU.The L and U factors are different, and so is the pivot vector.So, comparing the factorization against the LAPACK factorization is not the right correctness test.Try solving a linear system instead, and look if you are getting the same solution vector or small enough residual.Just as a side note, PLASMA also has a fully LAPACK-compliant LU factorization.This is actually what you will get if you call PLASMA_dgetrf.Hope it helps.Jakub

2) 'double * work' is used in 'core_dtstrf()'. in the documentation, it's defined as in/out but without any description. What should we put/get in 'work' array, what's its dimensions and what is it used for ?

It's like that, because the tile LU produces auxiliary data in the course the factorization.This is what is stored in the workspace and this is why there is L1 and L2.This data has to be passed from the factorization routine to the solve routine.You don't have to put anything in the workspace, just provide the space.PLASMA provides routines for workspace allocation.Look at: /examples/example_dgesv.c /examples/example_dgetrs.cJakub