| 1 | edhill | 1.1 |  | 
| 2 |  |  | # $Header: /u/gcmpack/MITgcm/pkg/ex3/README.txt,v 1.1 2005/10/14 05:49:42 edhill Exp $ | 
| 3 |  |  | # $Name:  $ | 
| 4 |  |  |  | 
| 5 |  |  | ======= | 
| 6 |  |  | EX3 | 
| 7 |  |  | ======= | 
| 8 |  |  |  | 
| 9 |  |  |  | 
| 10 |  |  | =====  WARNING  ===== | 
| 11 |  |  |  | 
| 12 |  |  | THIS PACKAGE IS *** UNFINISHED *** AND CONTAINS SHARP, JAGGED BITS | 
| 13 |  |  | THAT ARE LIKELY TO LEAVE NASTY CUTS !!! | 
| 14 |  |  |  | 
| 15 |  |  | HANDLE IT AT YOUR OWN RISK ! | 
| 16 |  |  |  | 
| 17 |  |  | =====  WARNING  ===== | 
| 18 |  |  |  | 
| 19 |  |  |  | 
| 20 |  |  | This is the "ex3" package which stands for "EXchange v3" and it has | 
| 21 |  |  | been designed to do everything that exch2 does with the following | 
| 22 |  |  | advantages: | 
| 23 |  |  |  | 
| 24 |  |  | 0) EX3 works on more general topologies -- not just cubes! | 
| 25 |  |  |  | 
| 26 |  |  | 1) A simplified topology "encoding" is used that expresses how the | 
| 27 |  |  | tiles are connected to each other only in terms of cell indicies. | 
| 28 |  |  | It allows for all of the topologies within exch2 plus it has the | 
| 29 |  |  | following advantages: | 
| 30 |  |  |  | 
| 31 |  |  | a) Only the cell indicies need to be input by a user -- all the | 
| 32 |  |  | "offsets" needed for exchanging quantities at cell corners, | 
| 33 |  |  | cell faces, etc. are calculated by the exchange routines | 
| 34 |  |  | themselves based upon the simpler cell indicies. | 
| 35 |  |  |  | 
| 36 |  |  | b) Any number [n=0,1,2,3,4,...] of tiles may be adjacent at | 
| 37 |  |  | corner points with sufficient information supplied for the | 
| 38 |  |  | vorticity path integrals, | 
| 39 |  |  |  | 
| 40 |  |  | c) The array-to-buffer and buffer-to-array copying have been | 
| 41 |  |  | almost completely separated from the logic and data structures | 
| 42 |  |  | which determine where the data sources/sinks are located. | 
| 43 |  |  | This should allow the "encoding" to change without altering | 
| 44 |  |  | the copying routines. | 
| 45 |  |  |  | 
| 46 |  |  | d) Tiles with "internal" or "overlapping" connections are now | 
| 47 |  |  | easily represented. | 
| 48 |  |  |  | 
| 49 |  |  | 2) A more efficient exchange algorithm: | 
| 50 |  |  |  | 
| 51 |  |  | a) For vector quantities and scalars defined at vorticity points, | 
| 52 |  |  | a simple "N+1" exchange is first performed to fill the values | 
| 53 |  |  | at the sNx+1 and sNy+1 points.  A second pass then fills all | 
| 54 |  |  | the remaining points within the exchange regions.  This | 
| 55 |  |  | correctly populates the values around the corners for any | 
| 56 |  |  | number of tiles meeting at a corner point.  This is also in | 
| 57 |  |  | contrast to the three-pass algorithm required by exch2. | 
| 58 |  |  |  | 
| 59 |  |  | b) Vectors are packed into a single buffer, reducing the number | 
| 60 |  |  | of MPI messages. | 
| 61 |  |  |  | 
| 62 |  |  |  | 
| 63 |  |  | The main disadvantage of the ex3 package is the removal of support for | 
| 64 |  |  | MDSIO "global" files.  With the arrival of non-cube topologies, the | 
| 65 |  |  | cube-oriented MDSIO global file option is not practical since it is | 
| 66 |  |  | (1) not a dense encoding of the data and (2) will require a re-working | 
| 67 |  |  | of the existing MDSIO code. | 
| 68 |  |  |  |