
PLASMA Installer and Source Code Download
For most users, download the installer package. The manual download of PLASMA source is not needed using the installer. In the event the installer does not fit your needs, a makefile is provided in the PLASMA source.

PLASMA source code version 2.5.2

20130916

Source code for PLASMA libraries.
We strongly recommend to use the plasma installer, which will automatically download this package and install all other dependencies if required.
This package contains the following updates:
 Add m and n options to timing routines to define matrix size without using ranges
 Fix a minor bug that appears when combining mutithreaded tasks with threadmasks in Quark. Previously, the thread mask was not respected when the tasks of the multithreaded task were being assigned to threads.
 Fix illegal division by 0 that occured when matrix size was smaller than the tile size during inplace layout translation. See http://icl.cs.utk.edu/plasma/forum/viewtopic.php?f=2&t=1684&p=2374#p2374
 Fix the QUARK_REGION bug that was limiting performance of QR/LQ factorization in the last release.
 Fix illegal division by 0 when first numa node detected by HwLoc is empty. Thanks to Jim for those two bug reports, see http://icl.cs.utk.edu/plasma/forum/viewtopic.php?f=2&t=1680.
 Fix integer size that was creating overflow in tile pointers computation. Thanks to SGI for the bug report.
For further details, view ReleaseNotes.


PLASMA source code version 2.5.1

20130705

Source code for PLASMA libraries.
We recommend using the installer, which will automatically download the sources and also install all other required software packages.
This package contains the following updates:

Add LU factorization with tournament pivoting. Each tournament is based on the classical partial pivoting algorithm. PLASMA_[sdcz]getrf_tntpiv[_Tile[_Async]]. The size of each subdomain involved in the tournament can be set through the call to "PLASMA_Set( PLASMA_TNTPIVOTING_SIZE, nt );". The default is 4. See LAWN 226.

Add LU factorization with no pivoting: PLASMA_[sdcz]getrf_nopiv[_Tile[_Async]]. WARNING: your matrix has to be diagonal dominant to use it or the result might be wrong.

Add QR with rank revealing routine: PLASMA_[sdcz]geqp3[_Tile[_Async]].

Fix many comments in the Doxygen documentation

Complete documentation on DAG and execution traces generation

Add the dense hermetian eigenvalue problem routines: Note that these routines requires mulithreaded BLAS. For that, the user is required to tell PLASMA that he is using multithreaded BLAS library and so specify which library is being used by adding DPLASMA_WITH_XXX to the compilation flags. Current supported library are DPLASMA_WITH_MKL or DPLASMA_WITH_ACML but it is easy to add morelibrary, please contact PLASMA team if you require addtional libraries to be supported.

PLASMA_[sdch]_hetrd: compute the tridiagonal reduction of a dense hermetian matrix using the 2stage algorithm A = QTQ^H. It also has the feature to generates the complex matrix Q with orthonormal columns used to reduce the matrix A to tridiagonal. This function is similar to the ZHETRD routine combined with the ZUNGQR routine (when Q is generated) of LAPACK.

PLASMA_[sdch]_heev: computes all eigenvalues and, optionally, eigenvectors of a complex Hermitian matrix A. This function is similar to the ZHEEV routine of LAPACK.

PLASMA_[sdch]_heevd: computes all eigenvalues and, optionally, eigenvectors of a complex Hermitian matrix A. If eigenvectors are desired, it uses a divide and conquer algorithm. This function is similar to the ZHEEVD routine of LAPACK.

PLASMA_[sdch]_heevr: computes selected eigenvalues and, optionally, eigenvectors of a complex Hermitian matrix A. Eigenvalues and eigenvectors can be selected by specifying either a range of values or a range of indices for the desired eigenvalues. Whenever possible, ZHEEVR calls ZSTEMR to compute eigenspectrum using Relatively Robust Representations (MRRR). This function is similar to the ZHEEVR routine of LAPACK.

PLASMA_[sdch]_hegv: computes all the eigenvalues, and optionally, the eigenvectors of a complex generalized Hermitiandefinite eigenproblem, of the form: A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A and B are assumed to be Hermitian and B is also positive definite. This function uses the QR algorithm, and is similar to the ZHEGV routine of LAPACK.

PLASMA_[sdch]_hegvd: computes all the eigenvalues, and optionally, the eigenvectors the eigenvectors of a complex generalized Hermitiandefinite eigenproblem, of the form: A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A and B are assumed to be Hermitian and B is also positive definite. If eigenvectors are desired, it uses a divide and conquer algorithm, and is similar to the ZHEGVD routine of LAPACK.

Add the singular value decomposition (SVD) routines: Note that these routines requires mulithreaded BLAS. For that, the user is required to tell PLASMA that he is using multithreaded BLAS library and so specify which library is being used by adding DPLASMA_WITH_XXX to the compilation flags. Current supported library are DPLASMA_WITH_MKL or DPLASMA_WITH_ACML but it is easy to add morelibrary, please contact PLASMA team if you require addtional libraries to be supported.
 PLASMA_[sdch]_gebrd: compute the bidiagonal reduction of a dense general matrix using the 2stage algorithm A = QBP^H. It also has the feature to generates the complex matrix Q and P^H with orthonormal columns used to reduce the matrix A to bidiagonal. This function is similar to the ZGEBRD routine combined with the ZUNGBR routine (when Q is generated) of LAPACK.
 PLASMA_[sdch]_gesvd: computes the singular value decomposition (SVD) of a complex matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * conjugatetranspose(V). This routine use the implicit zeroshift QR algorithm and is similar to the ZGESVD routine of LAPACK.
 PLASMA_[sdch]_gesdd: computes the singular value decomposition (SVD) of a complex matrix A, optionally computing the left and/or right singular vectors. The SVD is written A = U * SIGMA * conjugatetranspose(V). This routine use the divide and conquer algorithm and is similar to the ZGESDD routine of LAPACK.Introduce condition estimators for General and Positive Definite cases (xGECON, xPOCON)
For further details, view ReleaseNotes.


PLASMA Installer version 2.5.1

20130705

Python script that downloads and builds the PLASMA libraries. Separate download of PLASMA source is not required. View README.


PLASMA source code version 2.5.0 beta 1

20130422

Source code for PLASMA libraries.
We recommend using the installer, which will automatically download the sources and also install all other required software packages.
This package contains the following updates:

Introduce condition estimators for General and Positive Definite cases (xGECON, xPOCON)

Fix recurring with lapack release number in plasmainstaller

Fix outoforder computation in QR/LQ factorization that were causing numerical issues with dynamic scheduling

Fix many comments in the Doxygen documentation

Correct some performance issues with inplace layout translation
This release is actually a beta as condion estimators are not fully tested, and because rankrevealing QR functions will be added to the final release.
For further details, view ReleaseNotes.


PLASMA Installer version 2.5.0

20121114

Python script that downloads and builds the PLASMA libraries. Separate download of PLASMA source is not required. View README.


License
Copyright © 2015 The University of Tennessee. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
· Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
· Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer listed in this license in the documentation and/or other materials provided with the distribution.
· Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. in no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.
