The Basic Linear Algebra Communication Subprograms (BLACS) [] is a library constructed by the ScaLAPACK team. It is intended for use in numerical programming where communication involves two-dimensional portions of arrays.
BLACS is built on top of other communication libraries, and at present versions for PVM, MPI, NX, IBM's SP2-system and the Connection Machine exist. The BLACS was defined to give ScaLAPACK a more flexible design and implementation, since the BLACS hides the actual communication from the ScaLAPACK, something which increases portability for the library and other applications built on BLACS.
The BLACS handles point-to-point communication, broadcasts, synchronization, group maximum, minimum and sum, though all communication is synchronous. The library views the network as a two-dimensional mesh, which may be partitioned arbitrarily into sub-meshes. All communication routines view the data as two-dimensional arrays where the array sent may be a portion of the one it is part of, and the transmitted array may also be a trapezoid portion of the array. The group operations allow several different communication schemes when distributing and collecting data.