Parallel Colt is a set of multithreaded version of
Colt. It is a collection of
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
libraries for High Performance Scientific and Technical Computing written in
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
. It contains all the original capabilities of Colt and adds several new ones, with a focus on multi-threaded algorithms.
Capabilities
Parallel Colt has all the capabilities of the original Colt library, with the following additions.
[
* Multithreading
* Specialized Matrix data structures
* JPlasma
** Java port of PLASMA (Parallel Linear Algebra for Scalable Multi-core Architectures).
* CSparseJ
** CSparseJ is a Java port of CSparse (a Concise ]Sparse matrix
In numerical analysis and scientific computing, a sparse matrix or sparse array is a matrix in which most of the elements are zero. There is no strict definition regarding the proportion of zero-value elements for a matrix to qualify as sparse ...
package).
* Netlib-java
** Netlib is a collection of mission-critical software components for linear algebra systems (i.e. working with vectors or matrices).
* Solvers and preconditioners
** Mostly adapted from Matrix Toolkit Java
* Nonlinear Optimization
** Java translations of the 1-dimensional minimization routine from the MINPACK MINPACK is a library of Fortran subroutines for the solving of systems of nonlinear equations, or the least-squares minimization of the residual of a set of linear or nonlinear equations.
MINPACK, along with other similar libraries such as LINPA ...
* Matrix reader/writer
* All classes that use floating-point arithmetic
In computing, floating-point arithmetic (FP) is arithmetic on subsets of real numbers formed by a ''significand'' (a Sign (mathematics), signed sequence of a fixed number of digits in some Radix, base) multiplied by an integer power of that ba ...
are implemented in single and double precision.
* Parallel quicksort
Quicksort is an efficient, general-purpose sorting algorithm. Quicksort was developed by British computer scientist Tony Hoare in 1959 and published in 1961. It is still a commonly used algorithm for sorting. Overall, it is slightly faster than ...
algorithm
Usage example
Example of singular value decomposition
In linear algebra, the singular value decomposition (SVD) is a Matrix decomposition, factorization of a real number, real or complex number, complex matrix (mathematics), matrix into a rotation, followed by a rescaling followed by another rota ...
(SVD):
DenseDoubleAlgebra alg = new DenseDoubleAlgebra();
DenseDoubleSingularValueDecomposition s = alg.svd(matA);
DoubleMatrix2D U = s.getU();
DoubleMatrix2D S = s.getS();
DoubleMatrix2D V = s.getV();
Example of matrix multiplication:
DenseDoubleAlgebra alg = new DenseDoubleAlgebra();
DoubleMatrix2D result = alg.mult(matA,matB);
References
{{reflist, refs=
[{{cite web , url=https://sites.google.com/site/piotrwendykier/software/parallelcolt Official site , title=Parallel Colt Project Page , work=Parallel Colt, accessdate=June 15, 2013]
Java (programming language) libraries