Introduction


Background

Many ocean models run today are three-dimensional finite difference models, based on the primitive equations of motion, as described by Bryan (1969). Models of particular importance include the Cox (1984) model, an ocean code optimised for efficient running on vector supercomputers, and more recently, the Modular Ocean Model (MOM), a flexible research tool that uses C-language pre processor directives to allow modularised physical options to be included or excluded as required (Pacanowski et al., 1991; Pacanowski, 1995). Both these codes partition the model domain into slabs (latitudinal cross-sections), performing all calculations pertaining to each slab, before proceeding onto the next. The computation required to complete all of the slabs represents a timestep.

An array processor version of MOM, with a reduced set of options, has been adapted by Webb (1996) and subsequently named MOMA (Modular Ocean Model - Array processor version). Although not a parallel code as such, MOMA is arranged into columns, so that the model arrays can be vectorised in the vertical and decomposed in the horizontal. In contrast to Bryan's rigid-lid approximation, which requires a stream function formulation for the barotropic (depth-averaged) mode, MOMA adopts a free surface formulation (Killworth et al., 1991). This is considered better suited to parallelism, since the finite difference representation only requires nearest neighbour information and does not require line integrals to be calculated around islands. It is also felt that the free surface formulation will allow future assimilation of altimeter data to be implemented more readily.

At the Southampton Oceanography Centre (SOC) the MOMA code has been used as the base model for the UK Ocean Circulation and Climate Advanced Modelling (OCCAM) programme, the aim of which has been to develop a high resolution model of the World Ocean. As the first truly global, eddy-resolving, ocean model, the OCCAM code is parallelised and optimised specifically for the Cray-T3D (Gwilliam, et al., 1995), the UK national MPP supercomputer at Edinburgh University.

As a spin-off from the OCCAM project, a PVM version of the MOMA code was developed at SOC (Webb et al., 1997). At that time, similar work was undertaken at the University of East Anglia (UEA), where techniques for the parallelisation and optimisation of ocean models were investigated (Beare and Stevens, 1997). As a colloborative venture the two approaches have been combined and the MOMA code has been developed into a general purpose, portable, parallel ocean circulation model. It is this code that has become known as The Southampton - East Anglia (SEA) model.


The SEA model

As part of an on-going project the aim of SEA is to provide an ocean general circulation model (OGCM) suitable for running in a wide variety of configurations, on a wide range of computer platforms, both parallel and sequential. The technical intricacies of parallelism are, as much as possible, hidden from the user, thus easing the transition from traditional scalar computers, to clusters of workstations and massively parallel processors (MPPs).

The model equations, on which the basic code is based, are described in the postscript document sea-equations.ps. In addition to the base model described, a number of optional numerical schemes and parameterisations are offered via C-language pre processor directives, such as:

Parallelism is also implemented as a module option, using a regular two-dimensional geometric data decomposition, leading to a single program multiple data (SPMD) model. To ensure data coherency boundary data is shared with adjacent processors via high-level communications routines. These routines facilitate explicit message passing supporting both the Parallel Virtual Machine (PVM) and Message Passing Interface (MPI) environments.

At the compilation stage a configuration utility automatically decomposes any model domain, offering a choice of two load balancing techniques, depending on the number of available processors. In addition to load balancing, the communications can also be optimised in order to increase the parallel efficiency of the model. It is anticipated that a combination of one or more of these optimisations will benefit most parallel computers, but the required combination will ultimately be platform dependent (Beare, 1998).

Portability and efficiency are paramount to the design of SEA, but particular emphasis is also placed on the adaptability and user-friendliness of the code. Maintaining a familiar look-and-feel to the code is a primary concern so that users are able to view, use and modify the code without being overwhelmed by the technical aspects of parallelism. As well as the configuration utility, pre and post processing facilities have been developed to allow model data to be archived in a suitable format for later restart and analysis purposes.