ARSC T3E Users' Newsletter 185, Dec. 22, 1999

Y2K Roll-Over: ARSC Downtime

To help achieve a smooth Y2K transition, ARSC will shut down all user systems, including yukon, prior to midnight UTC on Dec 31, 1999, and come up again gradually in the morning on Jan 1, 2000, AST.

See "news downtime" and "news y2krollover" on yukon for details.

A T3E Debugging Story

Actually, this is the outline of the story... for brevity.
  1. A fortran program, while being parallelized, started crashing: "floating point exception."
  2. The user added write statements so each PE would create its own formatted file for debugging output.
  3. The program still crashed and the debugging files were filled with binary gibberish.
  4. The user added a CLOSE prior to the crash. The new debug files were readable.

    LESSON: I/O buffers are vulnerable.

  5. Next, he removed the CLOSE, and added a FLUSH after each WRITE. This fixed the problems with the debug files, and let him look at debugging info right up to the crash.

    LESSON: When in doubt, flush...

  6. The debugging output pointed to a write outside array bounds. The users invoked automatic array bounds checking by recompiled with the f90 flag, "-Rb".
  7. Bug found.

    LESSON: Compilers are debugging tools, too.

Some related articles: Do you have a debugging story? Send it in!

Suggested Reading: High Performance Parallel Processing

Update: End-of-year, 1999. (Suggestions welcome at all times.)

MPI information sources.

MPI: The Complete Reference. Snir, Otto, Huss-Lederman, Walker and Dongarra. MIT Press. ISBN 0 262 69184 1

(*)MPI: The Complete Reference, volume 2. Gropp et al. MIT Press. ISBN 0262571234

Using MPI. Gropp, Lusk, Skjellum. MIT Press. ISBN 0 262 57104 8

Parallel Programming Skills/Examples.

Practical Parallel Programming. Gregory V. Wilson. MIT Press. ISBN 0 262 23186 7

Designing and Building Parallel Programs. Ian Foster. Addison Wesley. ISBN 0 201 57594 9

Parallel Computing Works! Roy D. Williams, Paul C. Messina (Editor), Geoffrey Fox (Editor), Mark Fox Morgan Kaufmann Publishers; ISBN: 1558602534


Fortran90/95 Explained. Metcalf and Reid. Oxford Science Publications. ISBN 0 19 851888 9

Fortran 90 Programming. Ellis, Philips, Lahey. Adison-Wesley. ISBN 0-201-54446-6

Programmers Guide to Fortran90. Brainerd, Goldberg, Adams. Unicomp. ISBN 0-07-000248-7


The High Performance Handbook. Koelbel, Loveman, Schreiber, Steele, Zosel. ISBN 0-262-11185-3/0-262-61094-9


Parallel Programming using C++. G.V.Wilson and P Lu. MIT Press. ISBN 0 262 73118 5


Scientific Visualisation, Overviews, Methodologies and Techniques, Nielson, Hagen and Muller. ISBN 0-8186-7777-5, IEEE order number BP07777.


Numerical Recipes in Fortran 77 and Fortran 90 : The Art of Scientific and Parallel Computing. William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery Cambridge Univ Pr (Pap Txt); ISBN: 0521574404 ;

Numerical Recipes Example Book (Fortran) William T. Vetterling, Saul A. Teukolsky, William H. Press Cambridge Univ Pr (Pap Txt); ISBN: 0521437210

Numerical Recipes in C : The Art of Scientific Computing William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery Cambridge Univ Pr (Short); ISBN: 0521431085

Numerical Recipes Example Book (C) William T. Vetterling, Saul A. Teukolsky, William H. Press Cambridge Univ Pr (Pap Txt); ISBN: 0521437202

Numerical Recipes in Fortran 90: The Art of Parallel Scientific Computing, Volume 2 of Fortran Numerical Recipes - Press, Teukolsky, Vetterling and Flannery, Cambridge U. Press, ISBN 0-521-57439-0, 1996.

See also:

for web versions of the Numerical Recipes series of books for browsing.


High Performance Cluster Computing: Architecture and Systems, High Performance Cluster Computing: Programming and Applications, (R. Buyya editor)...Prentice Hall PTR, Upper Saddle River, 1998.

In Search of Clusters 2nd Edition. Gregory.F.Pfister. Prentice Hall PTR, Upper Saddle River, 1998, ISBN 0-13-899709-8.

How to Build a Beowulf. Sterling, Salmon, Becker and Savarrese. The MIT Press, 1999, ISBN 0-262-69218-X.

Parallel Programming Techniques and Applications Using Networked Workstations and Parallel Computers. Wilkinson and Allen. Prentice Hall, Upper Saddle River, 1999, ISBN 0-13-671710-1.

Programming Skills.

Debugging and Performance Tuning for Parallel Computing Systems, Simmons et al.

Foundations of Parallel Programming, A Machine-independent Approach, Lewis.

Background information/Fun Reading.

Hal's Legacy: 2001's Computer as a Dream and a Reality. ISBN 0 262 19378 7

High Performance Compilers for Parallel Computing. Michael Wolfe, Addison-Wesley. ISBN 0-8053-2730-4

Supermen. C.J Murray. Wiley. ISBN 0 471 04885 2

The Victorian Internet : The Remarkable Story of the Telegraph and the Nineteenth Century's On-Line Pioneers. Tom Standage, Berkley Pub Group; ISBN: 0425171698.

The Java Array Package

[ Article provided by Henry A. Gabb, Director of Scientific Computing, ERDC DSRC ]

Java is designed to be portable and general but is limited when it comes to scientific computing. Multidimensional arrays and complex variables - something that Fortran programmers take for granted - are not directly supported in Java. There is also the issue of poor performance. However, Java has some advantages: portability, exception handling, object orientation, and a large standard class library that includes threads. Java also has many proponents who believe that Java will become the language of choice for scientific computing (e.g., the Java Grande Forum

To provide direct support for multidimensional arrays, an array package was proposed by the Java Grande Forum. An implementation of the Java Array Package was presented at SC99 by Jose E. Moreira of the IBM T.J. Watson Research Center (Moriera J.E., Midkiff S.P., Gupta M., and Lawrence R., "High Performance Computing with the Array Package for Java: A Case Study using Data Mining"). This package not only defines true multidimensional arrays (as opposed to arrays of arrays) but also enables Java programmers to use Fortran-like array notation. Proper exception handling is also available when array operations are attempted on nonconforming arrays. In addition to the new array features, a BLAS class is included in the package. A particularly nice feature of the Java Array Package is its use of the Java threads to express parallelism in the array and BLAS classes. So, portable SMP parallelism is provided but it is transparent to the programmer.

A data-mining case study was used to demonstrate the efficiency of the Java Array Package. (Please see the original paper for details regarding the data mining application.) The application was coded in plain Java (i.e., using only Java array primitives), Java plus the array package, and Fortran. The sequential performance of the plain Java code was approximately 20% of the Fortran code. The code using the Java Array Package achieved 91% of the sequential performance of the Fortran code - a considerable improvement. The multithreaded BLAS routines in the Java Array Package achieved a 2.7-fold speedup on a 4-CPU SMP. A 3.1-fold speedup was possible if the application was explicitly threaded. However, this required modifications to the original serial code.

The Java Array Package is written entirely in Java so it is portable to any platform with a Java Virtual Machine. The package and technical reports can be downloaded from

Quick-Tip Q & A

A: {{ Holiday fun... Share a tip on ANY SUBJECT!  Your favorite.  Anything! 

#  Thanks to 10 respondants for tips, both serious and light-hearted.
#  Happy Holidays to all!

Photo tip:

  To take photos outside in the Alaska Interior cold, use an older
  mechanical camera.  The newer PHD (Push Here Dummy) cameras, that
  rely on electronics and motors, don't function well in the cold and
  batteries produce less power.  And use a tripod so your shivering
  doesn't blur the image ;-)

 - Calling bets is generally a losing proposition. If you don't like
   your hand enough to bet or raise, you should probably fold.
 - No matter how many draws, the best hand going in is usually the best
   hand coming out.
 - You must bet occasional weak hands to get action on your good hands.
 - The best bluff is when you play blind; you can't be read because you
   don't know either.
 - Ask your opponent if unsure about his hand. It's easier to suppress
   facial expressions than nuances of voice.

Camping food
--carry no water in your food and allow 2#/person/day.

Use denture cleaner to get 
coffee stains
 out of a thermos.

Getting candle wax out of table cloths:

  First peel or crack off all the wax you can, then stretch the table
  cloth over a colander and fasten with big rubber band, with the
  offending waxed spot in the middle of the stretched part. Boil water
  and pour it through the cloth, melting away the wax until it's all
  gone. Tip courtesy of Martha Stewart magazine.

Great punch recipe:

  1 bottle champagne + 1-2 cups cranberry juice cocktail + 1-2
  tablespoons Grand Marnier, Cointreau, Triple Sec or other
  orange-flavored liqueur. Makes about one champagne glass each for 6
  people.  Looks and tastes great, wonderful way to make inexpensive
  champagne more special for a party.  (This recipe from Alaska
  Cooperative Extension Master Gardner December 1999 Newsletter)


 - Keep and consult a good dictionary at your usual reading place. When
   no dictionary is at hand, write words down for later reference.
 - Make sure your dictionary provides etymologies; the origin of a word
   helps to fix it in your mind and provides important spelling clues.

fly fishing
, use barbless hooks.  The joy of releasing a fish,
with less damage to its mouth, makes a good day on the river even
better.  The diamond file on a leatherman tool will remove or lessen
the barb of larger hooks or, if you tie your own flies, you can start
with barbless hooks.

 isn't all what it's cracked up to be.

driving through the Serengetti
, take plenty of water, a couple
extra tires, and a heavy dose of resourcefulness.  Should you have a
breakdown, it could be a while before anyone finds you.  Kind of like
breaking down in an Alaskan winter except that it's hot and there are

If you need a 
hip replacement
, get it done. This problem won't go away.

When your dog eats 
 in the summer, feed her peanut butter.

To scoop 
dog poop in winter
, wait until it freezes; it's much easier to
pick up once you kick it loose from the ground.

Hints about Christmas travel
 - Go early.
 - Smile and be polite to everybody.
 - Drink plenty of water on the long flights.
 - Be prepared for the worst and it never happens.
 - Travel light, ask yourself do you really need to take it.
 - Take a favourite snack/book and don't eat/read until you're over half 
   way there (or really stuck). When really, really stuck swap eat and
   read actions on above items.
 - Travel with a friend, or visit a friend you've not seen for years en
 - Help someone when they really need it.

Q: I've installed the "dracula" software in my account, and it came
   with "man" pages:

     $ ls -1 ~/pkg/dracula
     $ ls -1 ~/pkg/dracula/man

   Using the "-M" option, "man" can access these pages. E.g., for help
   on the dracula "count" command, 

     $ man -M ~/pkg/dracula/man count
       [ ... works ... ]

   Alternatively, using the MANPATH environment variable, I can get
   "man" to find them automatically.  However, "man" is then unable to
   find the system man pages.  E.g.,

     $ export MANPATH=~/pkg/dracula/man
     $ man count
       [ ... works ... ]
     $ man f90
     No manual entry found for f90.

   It's a pain in the neck!  I want "man" to find the system pages AND
   the dracula pages:  automatically.  What should I do?

[ Answers, questions, and tips graciously accepted. ]

Current Editors:
Ed Kornkven ARSC HPC Specialist ph: 907-450-8669
Kate Hedstrom ARSC Oceanographic Specialist ph: 907-450-8678
Arctic Region Supercomputing Center
University of Alaska Fairbanks
PO Box 756020
Fairbanks AK 99775-6020
E-mail Subscriptions: Archives:
    Back issues of the ASCII e-mail edition of the ARSC T3D/T3E/HPC Users' Newsletter are available by request. Please contact the editors.
Back to Top