The PLASMA project lays the ground work for a new generation of dense linear algebra libraries that achieve the fastest possible time to an accurate solution on multicore systems by efficiently using all the processors that such systems make available. To work within this design space and leverage the power of million way parallelism, PLASMA researchers are combining new, highly parallelizable algorithms, a programming and execution model that can exploit massive task parallelism, and a flexible memory management facility that helps optimize data locality across a range of different computing platforms. PLASMA's design space is also conditioned by the fact that, in order to support the broadest possible range of computational science problems, the PLASMA library framework must be able to scale both up and down, running at all levels of the platform development chain.
The PLASMA project focuses on the following two objectives: - Explore new, highly parallelizable algorithms: PLASMA researchers have shown that a wide range of algorithms (e.g. Cholesky, LU and QR factorizations) can be expressed as algorithms by tiles, greatly improving parallel performance of these operations on multicore processors. They are currently extending this concept to a broad range of linear algebra algorithms. - Develop an algorithm description abstraction for expressing parallelism: Building on the well established concepts from dataflow architectures, PLASMA researchers are developing high-level abstractions for algorithm description that make task dependencies explicit and therefore facilitate scheduling on multicore systems. Since all the information about parallelism in the algorithm is contained in its dependency graph, which is a Direct Acyclic Graph (DAG), the PLASMA approach replaces a programming language algorithm definition with a graph-based algorithm definition.