LAM/MPI logo

3rd Party MPI Packages that Work with LAM:
BLACS

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just 3rd party software
The Basic Linear Algebra Communication Subprograms (BLACS) project is an ongoing investigation whose purpose is to create a linear algebra oriented message passing interface that may be implemented efficiently and uniformly across a large range of distributed memory platforms. It is available from:

http://www.netlib.org/blacs/

IMPORTANT: If you are using the GNU compilers, you MUST read the BLACS errata about the g77 compiler!

Be sure to also check the general errata page on that site for all the latest information, patches, and updates.

At the time of this writing, the version of BLACS available is 1.1, and the patch level is 03.


The blacs_install.ps file (available from that web site) describes how to build BLACS, so we won't repeat much of it here (especially since it might change in future versions). These instructions only pertain to making LAM work correctly with BLACS.

  1. After selecting the appropriate starting Bmake.inc, make the following changes to Sections 1, 2, and 3. The example below is from the Bmake.MPI-SUN4SOL2; your Bmake.inc file may be different.

    # Section 1:
    # The MPIINCdir macro is used to link in mpif.h and
    # must contain the location of LAM's mpif.h.  
    # The MPILIBdir and MPILIB macros are irrelevant 
    # and should be left empty.
    
       MPIdir = /path/to/lam-7.1.4 
       MPILIBdir =
       MPIINCdir = $(MPIDIR)/include
       MPILIB =
    
    # Section 2:
    # If SYSINC has "-I$(MPIINCdir)" in it, remove it.
    # In most cases, SYSINC will then be empty:
    
       SYSINC =
    
    # The TRANSCOMM macro should have the following value:
    
       TRANSCOMM = -DUseMpi2
    
    # Section 3:
    # You may need to specify the full path to
    # mpif77 / mpicc if they aren't already in
    # your path.
     
       F77            = mpif77
       F77LOADFLAGS   = 
    
       CC             = mpicc
       CCLOADFLAGS    = 
    

  2. After making these changes, go to BLACS/INSTALL directory, and "make xintface". The provided Makefile now compiles xintface with the correct settings, and running it will give you the value for INTFACE below.

    # Result of running the xintface program ("-DAdd_" was the output
    # from when LAM/MPI was compiled with the Solaris Forte compilers;
    # your output may be different, depending on the compilers that
    # LAM/MPI was compiled with):
    
       INTFACE = -DAdd_
    

The remainder of the values are fairly obvious and irrelevant to LAM; you can set whatever optimization level you want, etc.

If you follow the rest of the instructions for building, BLACS will build correctly and use LAM as its MPI communication layer.