BLACS

From HP-SEE Wiki

Jump to: navigation, search

Contents

Information

Authors/Maintainers

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

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

Recommendations for Configuration and Usage