ARSC T3E Users' Newsletter 181, Nov 5, 1999

Special SC99 Issue: Next Week!

Please send us a sentence or paragraph about your Supercomputing '99 (SC99) booth, poster, seminar, etc. We'll compile all responses for the Supercomputing Special Issue scheduled for Thursday, Nov. 11.

Here are past special issues, for reference:

SC '98: /arsc/support/news/t3enews/t3enews155/index.xml

SC '97: /arsc/support/news/t3enews/t3enews130/index.xml

(Also, any Portland restaurant recommendations? Here's a local city-guide/independent weekly to jog your memory: )

VAMPIR Upgraded at ARSC

ARSC has just made the latest versions of VAMPIRtrace (2.0) and VAMPIR (2.5) available, but has not changed the default version. The most notable feature about the new version is that it allows you to investigate data exchanges in SHMEM as well as MPI.

To access the VAMPIR upgrade, refer to the tutorial:

but replace the path to the default version with the path to the new version. To do this:
In "step 1. Generating a trace file -- VAMPIRtrace on the T3E", replace current with VAMPIRtrace-2.0 wherever it appears in a path.
In "step 2. Analyzing a trace file -- VAMPIR on your workstation", replace current with vampir-2.5 wherever it appears in a path.

Tracing and Viewing SHMEM transfers:

On the T3E:

To trace SHMEM transfers, include the MPI INITialisation and FINALIZE calls in your SHMEM program, so tracefiles will be generated. The call to MPI_INIT should be as close to the beginning of the program as possible and the call to MPI_FINALIZE should be the last call the code makes.

On the SGIs:

VAMPIR lets you view SHMEM traces as easily as MPI traces. Just load the .bpv file containing SHMEM traces, and VAMPIR will add the appropriate items to menus and displays.

We will update the tutorial and switch the VAMPIR defaults to the new version at a later date. In the mean time, please report any problems or particularly good examples or improvements to

PE 3.3 Installed on Yukon as

Programming Environment (PE) 3.3 is now installed on yukon for testing. We have not changed the default PE.

To test PE 3.3, use the module command:

YUKON$ module switch PrgEnv
Switching 'PrgEnv' to ''...ok.

YUKON$ module list
Currently Loaded Modulefiles:
      1) modules              6) CC.          11) mpt.
      2) craylibs.     7) CCmathlib.   12) nqe.
      3) craytools.    8) CCtoollib.   13)
      4) cf90.         9) cam.        
      5) scc.         10) cvt.        

PAT in PE 3.2 Reports Incorrect Times

The version of PAT in PE 3.3 (pat fixes a problem which one of our users just found.

In the PE 3.2 version, PAT's computation of elapsed, user, and system time, and other rates based on these times, are incorrect. These problems stemmed from a change in the clock. On yukon, the times are off by a factor of 6, which is the ratio of the 450MHz clock speed to the 75MHz module oscillator.

UPC, Parallel Extension of C

  [ Thanks to Alan Wallcraft for drawing our attention to this. ]
There is now a UPC web site, and they advertise availability of UPC for the T3E.

From the Abstract to the paper, "Introduction to UPC and Language Specification," available from the above site:

UPC is a parallel extension of the C programming language intended for multiprocessors with a common global address space. A descendant of Split-C, UPC has two primary objectives: 1) to provide efficient access to the underlying machine, and 2) to establish a common syntax and semantics for explicitly parallel programming in C. The quest for high performance means in particular that UPC tries to minimize the overhead involved in communication among cooperating threads. When the underlying hardware enables a processor to read and write remote memory without intervention by the remote processor (as in the SGI/Cray T3D and T3E), UPC provides the programmer with a direct and easy mapping from the language to low-level machine instructions. At the same time, UPC's parallel features can be mapped onto existing message-passing software or onto physically shared memory to make its programs portable from one parallel architecture to another. As a consequence, vendors who wish to implement an explicitly parallel C could use the syntax and semantics of UPC as a basis for a standard.

ARSC Fall Training Schedule Changed

Guy and Roger have both rescheduled their classes:

Wednesday, November 17: Data Visualization Possibilities Note: Rescheduled from October 13

Wednesday, December 1: Parallel Computing, Real Applications and Examples Note: Rescheduled from December 8

For details and registration, see:

Happy Guy Fawkes Day, November 5th

Remember, remember the fifth of November.
Gunpowder, Treason and Plot.
I see no reason why Gunpowder Treason Should ever be forgot.

November 5th is Guy Fawkes day in Britain, the British "fireworks" day. It's celebrated with a bonfire and often a burning of an effigy of Guy Fawkes, who was convicted, hanged, drawn and quartered for conspiring to blow up the Houses of Parliament on November 5th, 1605.

For a modern day description see:

And in greater detail: .

In the United States the holiday was celebrated as "Pope's Day" as early as the 17th century at Plymouth. Its celebration in the United States helped organize citizens of the Colonies into the anti-stamp act demonstrations.


Quick-Tip Q & A

A:{{ I want "find" to work on files in the current directory only.
  {{ How can I prevent it from descending recursively into
  {{ subdirectories?

Thanks to Liam Forbes of ARSC for the answer, "-prune".  From "man

   -prune    Always yields true.  Do not examine any directories
             or files in the directory structure below the pattern
             just matched.

Here's a test directory structure:

  chinook$ ls -l *
  -rw-------    1 user     group       2423 Nov  4 15:41 f1.txt
  -rw-------    1 user     group       2423 Nov  4 15:41 f2.txt

  total 5
  -rw-------    1 user     group       2423 Nov  4 15:41 f3.txt

And a "find" command which executes the "file" operation on the 
files selected:

  chinook$ find * \( -type d -prune \) -o \( -exec file {} \; \)
  f1.txt:         ascii text
  f2.txt:         ascii text

Liam's explanation:  

  You can't use "." to indicate the current working directory (CWD) or
  the CWD itself will be pruned and no operations will occur on the
  files therein.  The parentheses (which must be escaped or the shell
  will get them) help group the commands correctly.

Here's a different approach which gives different results.  In this
case, the operation ("file") does act on the subdirectory, although it
doesn't descend into it:

  chinook$ find * -exec file {} \; -prune
  DIR1:           directory
  f1.txt:         ascii text
  f2.txt:         ascii text

Q: Can you write a program (C or Fortran) that prints the path, 
   relative or absolute, to its executable?

   It should work whether you type the path to the executable
   explicitly or if you type its name, and the system must search your
   PATH variable to locate it.  (In other words, argv[0] won't always
   hold the answer.)  Here's a contrived sample session, in which the
   program is called "here_i_am":

     yukon$ pwd
     yukon$ ./here_i_am
     "here_i_am" is in directory: .
     yukon$ cd /
     yukon$ tmp/here_i_am
     "here_i_am" is in directory: tmp
     yukon$ echo $PATH
     yukon$ here_i_am
     "here_i_am" is in directory: /tmp

   Send in your solutions! 

   In honor of SC99, we'll send a small prize to everyone who solves
   this challenge.  Deadline: Monday, Nov 22.

[ 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