Supercomputing Networking Research Education Ohio Supercomputer Center Site Map Staff Directory Support
Welder image

bcMPI

Description

bcMPI is a software package that implements MPI extensions for MATLAB and GNU Octave. It consists of a core library (libbcmpi) that interfaces to the MPI library, a toolbox for MATLAB (mexmpi), and a toolbox for Octave (octmpi).

bcMPI implements a subset of the MPI API. The MATLAB language bindings are simpler than the standard bindings for C or Fortran: data types are detected at run time, received data is returned by value, and data communication functions accept variable number of parameters. Where possible, compatibility with MatlabMPI has been maintained.

A variety of configurations are supplied for many machines at OSC. Each can compile and install a complete working environment with Open Source interpreter, MPI, the bcMPI toolbox, and some example programs.

bcMPI was developed by the Blue Collar Computing software team as part of the ParaM project.

Goals

There are already many Parallel MATLAB projects. bcMPI was designed to be:

  • Extensible - core library makes it easy to add additional MPI functions and interpreter data types
  • Portable - no dependencies on any machine, operating system, or specific MPI library implementations
  • Scalable - use efficient algorithms; take advantage of native MPI library and communications hardware

Requirements

The build and install scripts are expected to be portable to any UNIX-like platform (Windows support is planned for a later release). Primary testing is done on Linux AMD64, the developers have also had success with NetBSD, OS-X and Linux IA32.

The current implementation does not support heterogeneous environments - all nodes must use the same data representation and be running the same interpreter (MATLAB or Octave).

The following packages must be installed before starting to build bcMPI:

  • GNU make
  • GNU compilers (gcc and g++) (other compilers may work but are unsupported)
  • Python (version 2.2 or better)
  • MATLAB (if not using Octave)

All other packages can be compiled and installed to your home directory by the bcMPI build scripts. Preinstalled packages (eg, /usr/local) can sometimes be used, but is not supported due to potential for library search path conflicts.

GNU Octave has many optional packages that can improve the performance of certain applications. See the download page for the current list of optional packages that bcMPI can build for Octave.

News

  • 2006-07-05 Mailing lists created: bcmpi-announce, -users, -devel@osc.edu.
  • 2006-07-10 Nightly build scripts committed to subversion.
  • 2006-07-14 pMatlab support added to paramake3.
  • 2006-08-07
    • License is finalized.
    • New URL: http://www.bluecollarcomputing.org/
    • First public release: bcmpi-1.0-beta-20060807
  • 2006-08-11
    • ParaMake learns to fetch external source distribution files
    • Download and Install web pages revised
    • Second beta release: bcmpi-1.0-beta-20060811
  • 2006-08-15 Official web pages moved to subversion
  • 2007-03-27
    • New release: bcmpi-1.1-20070327
    • Many packages updated to more recent versions.
    • Supports communicator funtionality.
    • Batch script generator tool for PBS and LSF.
    • Work around for Type-ahead buffer overflow warnings.
    • Conifg files for itanium (experimental builds, not officially supported)
  • 2007-05-16
    • Release: bcmpi-1.1
    • Enhanced version of batch script generator tool
    • Tutorial web page for OSC users
    • Config files for bale cluster (experimental builds, not officially supported)
    Next: Features