ARSC T3E Users' Newsletter 196, May 26, 2000

ARSC: PGHPF 3.0 To Be Made Default

Version 3.0 of the Portland Group's High Performance Fortran will be made the default pghpf compiler on yukon during system downtime on May 31, 2000.

The currently installed version is 2.4, and it will remain available using a "module switch" command.

What Is This Machine! (Consult The Predefined Macros)

In the last Quick-Tip, we suggested that when programmers replace MPI_Bcast calls with SHMEM_BROADCAST , they do so using preprocessor code so that the program will still compile correctly on non-CRAY systems (possessing only the MPI library).

A nifty approach is to use the predefined macro, _CRAYMPP . Check to see if it's defined. If it is, then you can assume SHMEM is present. Here's the basic idea:

  #ifdef _CRAYMPP
     err = SHMEM_BROADCAST (....)
     err = MPI_Bcast (....)

(Compile the C program as usual.)

  #ifdef _CRAYMPP
         CALL SHMEM_BROADCAST (....)
         CALL MPI_Bcast (....)

(You may need to include f90's "-F" option when you compile. "-F" causes f90 to expands all macros, even if they're tucked into bona fide Fortran--as opposed to preprocessor directives. See man f90 for more info.)

In addition to _CRAYMPP , there are a bunch of other predefined macros available to your code. The C macros are documented in:

Cray C/C++ Reference Manual, 004-2179-003

Chapter 6. Predefined Macros

The Fortran macros are listed in:

CF90 Commands and Directives Reference Manual, 004-3901-003

Chapter 5. Source Preprocessing

5.3 Predefined Macros

Both manuals are in Cray's on-line documents, available at:

Many of the predefined macros are familiar, in particular those described in the following section of the C/C++ manual:

  6.1 Macros Required by the C and C++ Standards
    Macro             Description
    __TIME__          Time of translation of the source file.
    __DATE__          Date of translation of the source file.
    __LINE__          Line number of the current line in your
                      source file.
    __FILE__          Name of the source file being compiled.
    __STDC__          Defined as the decimal constant 1 if
                      compilation is in strict conformance mode;
                      defined as the decimal constant 2 if the
                      compilation is in extended mode. This macro
                      is defined for C and C++ compilations.
    __cplusplus       Defined as 1 when compiling C++ code and
                      undefined when compiling C code. The
                      __cplusplus macro is required by the ISO C++
                      draft standard, but not the ISO C standard.
For a quick look at all of the documented macros, I wrote C and Fortran programs which test them and print their values if defined.

C snippet:

    #ifdef __TIME__
    printf ("__TIME__: %s\n", __TIME__);
    printf ("__TIME__\n");

Fortran snippet:

    #ifdef unix
           print*, "unix: ", unix
           print*, "unix"

Here's the output from both programs:

C predefined macros: Output from run on ARSC T3E:

  __TIME__: 11:12:43
  __DATE__: May 25 2000
  __LINE__: 20
  __FILE__: predefmacs.c
  __STDC__: 2
  __unix: 1
  unix: 1
  _UNICOS: 205
  cray: 1
  CRAY: 1
  _CRAY: 1
  _CRAYT3E: 1
  _ADDR64: 1
  _LD64: 1
  _FASTMD: 1
  _CRAYC: 1

Fortran predefined macros: Output from run on ARSC T3E:


   unix:  1
   _UNICOS:  10
   cray:  1
   CRAY:  1
   _CRAY:  1
   _CRAYT3E:  1
   _CRAYMPP:  1
   _CRAYIEEE:  1
   _MEMSIZE:  33554432
   _ADDR64:  1

European SGI/Cray MPP Workshop

[ We received this announcement: ]
The Sixth European SGI/Cray MPP Workshop 7th-8th September 2000 Manchester, UK -- Call for papers deadline extended to 9th June 2000 --

The Sixth European SGI/Cray MPP Workshop will be held in Manchester, UK, on the 7th and 8th of September, 2000. The workshop is organised by the Manchester Research Centre for Computational Science (MRCCS), a focus for high performance computing activities at the University of Manchester, and is generously supported by Silicon Graphics Inc. and Cray Inc.

Please note that there is NO REGISTRATION FEE for this workshop.

This workshop is aimed at computer scientists, computer engineers and end users, working mainly on CRAY T3E and large SGI Origin 2000 systems installed throughout Europe. Of particular interest are the areas of application development and optimisation, software support and production usage, as well as the future of MPP computer systems. There will be keynote presentations from both SGI and Cray Inc.

This event is distinguished from national Cray User Group meetings by a strong emphasis on applications. It is hoped to include talks on MPP topics such as:

  • Programming models and methods,
  • Parallel performance prediction, evaluation and optimisation,
  • Parallel numerical algorithms,
  • Application of 3rd-party parallel solvers, libraries and support tools,
  • Data management and visualisation,
  • MPP production applications (in computational physics, chemistry, engineering, biology, meteo-climatology, earth sciences etc.).

Contributions to the workshop are invited from workers in all fields in which the use of SGI and Cray MPP platforms is an important aspect. Abstracts for papers and posters to be presented at the workshop will be refereed by the Programme Committee; please note that the call for papers closes on Friday, 9th June.

For further information, abstract submission and delegate registration, please see the WWW pages at:

or contact: Dr. Ben Jesson (, Manchester Computing, University of Manchester, Oxford Road, Manchester M13 9PL, UK.

ARSC Summer Tours Begin June 7th

From June 7 - August 30, every Wednesday from 2 - 3pm, ARSC will be giving tours to the public. This will be ARSC's third summer participating in UAF's Activities & Tours Program.

Reservations aren't required. Just show up. Your visiting relatives are welcome!

Tours start in the Butrovich Building on the UAF campus, meet at the interactive kiosk and machine room viewing window, downstairs. For more information, call (907) 450-8600 or send email to


Quick-Tip Q & A

A:{{ My computer center uses Kerberos/SecurID for authentication.
  {{ Sometimes, I need to use my SecurID card to generate two or three
  {{ valid cardcodes, all within a few minutes.
  {{ Do I really have to re-enter my SecurID PIN over and over?  Can't I
  {{ just let the 6-digit code roll over?  (I tried it once, and wound up
  {{ in "next-token" code mode.)

  Look at the top-right corner of the LCD display on your SecurID
  card.  When you enter your PIN, a tiny "1" will appear there.  As
  long as the "1" is present, the displayed code is valid, unless
  you've already used it.  If you have already used it, hit the diamond
  key to get a new valid code.  If, when you hit the diamond key, the
  code doesn't change, then just wait (up to a minute) for the next
  code to appear automatically--it will be valid.

Q: What's a good defense against bears?

[ 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