BLACS
From HP-SEE Wiki
Contents |
Information
- Web site: http://www.netlib.org/blacs/
- Described version: 1.1
- Licensing: Free (not explicitly defined)
- User documentation: http://www.netlib.org/blacs/lawn94.ps
- Download: http://www.netlib.org/blacs/archives/
- Source code: PVM, MPI + patch
Authors/Maintainers
- The General in this project is Jack Dongarra; the man in the trenches is R. Clint Whaley. Questions about the BLACS should be mailed to scalapack@cs.utk.edu or on the ScaLAPACK User Forum
Summary
The BLACS (Basic Linear Algebra Communication Subprograms) is a package that attempts to provide the same ease of use and portability for distributed memory linear algebra communication that the BLAS provide for linear algebra computation. The concept of concentrating the most used computation into a kernel of highly optimized routines, such as the BLAS, has proven itself in work on LAPACK. LAPACK (Linear Algebra PACKage) provides linear algebra routines for sequential and shared memory machines. There are various packages designed to provide a message passing interface that remains unchanged across multiple platforms, including PICL, PVM and more recently, MPI. These packages are general libraries, however, and thus their interfaces are not as easily usable for linear algebra applications as we would like. The goals of the BLACS project include:
- Ease of programming. Wherever possible, the BLACS will simplify message passing in order to reduce programming errors.
- Ease of use. The interface to the BLACS will be at such a level as to be easily usable by linear algebra programmers.
- Portability. The BLACS must supply an interface which can be supported across a Wide range of parallel computers, including parallel machines built from heterogeneous processors.
This user's guide is supplemented by the BLACS web page. The URL is http://www.netlib.org/blacs/Blacs.html. This on-line document gives detailed examples, as well as providing reference, downloading options, installation instructions, and troubleshooting. If problems still remain after reading this guide and consulting the mosaic page, questions should be mailed to blacs@cs.utk.edu. With distributed memory machines, the basic unit of execution is referred as a process. A process is a thread of execution which minimally includes a stack, registers, and memory. Multiple processes may share a processor. The term processor refers to the actual hardware. In the BLACS, each process is treated as if it were a processor: the process must exist for the lifetime of the BLACS run, and its execution should only affect other processes' execution through the use of message passing calls. The BLACS source code was contributed by many before FOSS licenses were established; there are both free and commercial versions/implementations available.
Features
- Array-based communication
- Process Grid and scoped operations
- ID-less communication
- Blocking levels
Architectural/Functional Overview
- high level design info, how it works, performance - may be a link, or several links
Usage Overview
- Quick Reference Guide to the C and Fortran 77 interface for the BLACS.
Dependacies
- C or Fortran 77
- MPI or PVM
HP-SEE Applications
- HMLQCD (Hadron Masses from Lattice QCD)
Resource Centers
- University of Tirana, Albania
Resource Centers
- BG, BG
- HPCG, BG
- NIIFI SC, HU
- PARADOX, RS
Usage by other projects and communities
- If any