If you use the PLASMA Async interface to call two routines that are dependent,
than they will be scheduled such that the dependencies are preserved.
Some tasks of routine 2 can start before all the tasks of routine 1 are finished.
E.g., if you are solving a linear system of equations, you can call the factorization,
then the forward substitution, then the backward substitution. Forward / backward
substitution can start before the factorization is finished. The scheduler will preserve
dependencies at the level of individual tasks. You can also simply call PLASMA routine
that solves the system, in which case PLASMA will do just that, i.e., use the async mode
of operation to pipeline the stages. I hope it answers your question, but let me know if you
need more information. Also, it is a nice exercise to trace PLASMA, to see what really happens.