The Combinatorial BLAS Release Notes
describes the new features and changes in each release of the Combinatorial
BLAS. The numbering is of the form Z.Y.X.
X denotes bug
fixes and/or minor updates for existing functionality.
Y denotes new
Z denotes an
overall paradigm shift in terms of abstractions.
Fully parallel matrix market format
Complete multithreading support,
including SpGEMM (previously it was solely SpMV),
enabled by -DTHREADED during compilation
Experimental 3D SpGEMM (the ability to
switch processor grids from 2D to 3D will have to wait for version 1.6)
Cite  if you use this implementation
cd 3DSpGEMM/, make test_mpipspgemm,
and call the executable with correct parameters
Maximal and Maximum cardinality
matching algorithms on bipartite graphs
Cite  for maximal cardinality and
 for maximum cardinality matching
make bpmm, and call the executable with correct
creation from simple C++ function objects (simplifies semiring descriptions and
FullyDistSpVec::Invert() to map from/to (integer) values to/from indices
Many more helper functions
Experimental CSC support for low
Lots of bug fixes
- Direction optimizing breadth-first
search is available
- Several performance enhancements
- MPI C++ bindings are removed since
they are no longer supported by the MPI-3 standard. All MPI calls are
- On-the-fly filtering support
illustrated through examples.
- Frequently asked questions (FAQ)
- Maximal Independent Set (MIS)
application implemented in the language of linear algebra.
CombBLAS 1.2.1 (April
- Sparse matrix assignment is
improved to cover cases where the additive inverses are not available.
- Prune with row/column vector
indices are supported.
- New test/timing scripts for galerkin restriction.
CombBLAS 1.2 (March
- It is made possible to create
matrices with globally 64-bit, locally 32-bit indices.
- This is very handy because the
index range for submatrices are typically addressible with 32-bit indices but the global semantics
require 64-bit computation.
- Example: SpParMat <int64_t, float, SpDCCols<int32_t,float>
- Some primitives (Sparse SpMV, EWiseMult, Apply, Set)
are hybrid multithreaded (using OpenMP) within a
socket. To enable, follow
- A new binary format is introduced
that enables parallel I/O.
- Filtering (in the context of
semantic graphs) is supported in Sparse SpMV and
SpGEMM by checking against the semiring additive identity (SAID) that is
returned by the scalar semiring multiply if the edge is filtered.
CombBLAS 1.1.1 (August
- Bug fixes for the Graph500 sample
script and some sample input files.
CombBLAS 1.1 (May
- Fully distributed vectors are
supported for better load balance; diagonally distributed vectors are
- Scalable Sparse SpMV (that enables breadth-first search) is exposed.
- Many new functions such as Matlab equivalent Sparse()-like constructor and Find()
- An exact splitter is used
recursively until the range is covered by at most 512 core,
before PSort is called. This is because PSort needed local memory that was quadratic in the
number of processors.
- Sparse matrix to dense vector
reduction along rows is made memory efficient for large number of cores.
CombBLAS 1.0 (May
- Initial release of the
Go back to the the
Combinatorial BLAS home page.