BeBOP SMC
Convert from any graph formatto BeBOP SMC Convert from BeBOP SMCto any other format
BeBOP SMC (the BeBOP Sparse Matrix Converter) is a C library and command-line utility for translating sparse matrices between file formats and between in-memory storage representations. It was written by Mark Hoemmen and released by the Berkeley Benchmarking and OPtimization (BeBOP) group at UC Berkeley, a research group led by James Demmel and Katherine Yelick that focuses on automatic performance tuning of numerical kernels. The project is distributed under a BSD license; its last public release dates to December 2009. It is a sibling of the group's better-known OSKI (Optimized Sparse Kernel Interface) tuning library, which BeBOP SMC's own documentation recommends for any performance-critical sparse computation.
On the file side, the converter reads and writes three interchange formats: Harwell-Boeing, Matrix Market coordinate (Matrix Market), and a Matlab ASCII form loadable via Matlab's spconvert() routine. Internally it models a matrix through a generic sparsematrixt wrapper and can convert among coordinate (COO), compressed sparse row (CSR), compressed sparse column (CSC), and jagged-diagonal (JAD) representations. The typical pipeline loads a file into unordered coordinate storage, then sorts and packs it only when converting to an ordered layout such as CSR. Programmatic access is through headers like sparsematrix.h and sparsematrixops.h for format-agnostic work, plus per-format headers (csrmatrix.h, cscmatrix.h) and direct routines such as csrto_csc(). A small set of unoptimized sparse BLAS operations is provided in CSR only.
In the graph-data landscape, BeBOP SMC sits at the boundary where a graph is treated as its adjacency or incidence matrix: any tool that exports a network as Matrix Market or Harwell-Boeing can round-trip it through this converter to reach the storage layout a solver expects. That overlaps conceptually with matrix-oriented graph libraries and with Rutherford-Boeing and Harwell-Boeing consumers; general graph-analysis toolkits such as igraph and graph-tool read Matrix Market directly and cover far broader functionality.
Its honest strengths are a clean, thread-safe C API, portability across Unix-like systems and Windows/Cygwin, and a clear separation between file and internal formats. Its limitations are equally plain: the maintainers describe the Harwell-Boeing parser as "fragile," the bundled arithmetic as basic and unoptimized, Pthreads support as experimental, and the Matlab ASCII format as unable to record matrix dimensions. Downloading historically required emailing the author and assembling three separate packages (BeBOP Make, the BeBOP Utility Library, and the converter itself). It remains a narrowly scoped, largely unmaintained utility best suited to one-off sparse-matrix format conversion rather than as an active dependency.
Graph Formats(Input & Output)
Frequently Asked Questions
What graph file formats does BeBOP SMC support?
See the list on this page — it shows every format BeBOP SMC can read, write and display.
How do I import a graph into BeBOP SMC?
Convert your file to a format BeBOP SMC can read, then open it in BeBOP SMC. Use GraphInOut to get a BeBOP SMC-compatible file in seconds.
How do I convert a file so BeBOP SMC can open it?
Use the convert links above — upload or paste your graph, pick a format BeBOP SMC accepts and download the result, right in your browser.