NERSC logo National Energy Research Scientific Computing Center
  A DOE Office of Science User Facility
  at Lawrence Berkeley National Laboratory
 

Running on Bassi

Communication protocols

Most parallel jobs that run on Bassi do so through an explicit message passing interfaces. The choice of API and protocols must be specified at run time, by setting environment variables for interactive jobs and through a network LoadLeveler keyword for batch jobs (see below and elsewhere on these pages.)

Message Passing APIs

There are two explicit message passing interfaces, or APIs, available. Calls to these libraries are made in source code and a run-time library containing these functions is loaded when the job executes.

MPI

Most codes use MPI, the popular Message Passing Interface. The default programming and interactive run-time environment is configured to support MPI. See the IBM Documentation for details of the IBM implementation of MPI.

Most MPI batch job scripts need to include this line:

#@network.MPI = sn_all,not_shared,us
LAPI

The low-level IBM LAPI interface is also available. See the IBM Documentation for details.

Most LAPI batch job scripts need to include this line:

#@network.LAPI = sn_all,not_shared,us

Interactive jobs that use LAPI must set an environment variable thusly:

bassi% export MP_MSG_API=LAPI   (sh-like shells)
bassi% setenv MP_MSG_API LAPI   (csh-like shells)

Communications Protocols

There are two separate implementations of the communications library that actually ships data packets across the network:

Internet Protocol (IP)

This implementation uses the standard IP protocol that commonly links computers over ethernet networks. IP offers less performance that User Space (see below), but some specialized application may require IP.

Batch job scripts that require IP need to include one of these lines:

#@network.MPI = sn_all,not_shared,ip
#@network.LAPI = sn_all,not_shared,ip

Interactive jobs that use IP must set an environment variable thusly:

bassi% export MP_EUILIB=ip (sh-like shells)
bassi% setenv MP_EUILIB ip (csh-like shells)
User Space (US) Communication Subsystem

This communication subsystem is designed to take advantage of Bassi's high performance switch (HPS).

You will use the "US" protocol in almost all cases. The library is dynamically linked to your code at runtime. You do not have to modify your source code, but you must specify a protocol when you run your program.

For MPI batch jobs using US, the follow line must appear in the batch script:

#@network.MPI = sn_all,not_shared,us

LBNL Home
Page last modified: Thu, 17 Jan 2008 23:44:45 GMT
Page URL: http://www.nersc.gov/nusers/systems/bassi/running_jobs/protocols.php
Web contact: webmaster@nersc.gov
Computing questions: consult@nersc.gov

Privacy and Security Notice
DOE Office of Science