ARSC HPC Users' Newsletter 388, June 13, 2008

ARSC Summer Tours, Wednesdays at 1pm

ARSC summer tours started last week, and continue through August. Reservations are not required, but the tour size is limited.

ARSC Summer Tours, 2008:     June 4-August 27: Wednesdays, 1 PM     Location: ARSC Discovery Lab (375 Rasmuson)"

For more information: tours_arsc@arsc.edu or (907) 450-8600.

Practical Communication Within a Widely Dispersed Community

[ By: Kate Hedstrom ]

Once upon a time, the ROMS (Regional Ocean Modeling System) community had a modest little ocean model and we felt very modern in having a mailing list and an ftp site for it. Things have changed! The mailing list is now only used for important rare announcements about the annual meetings. Instead, we have:

Web site

This kind of goes without saying these days. It can have whatever you need, but it is for the maintainers to communicate with the users, not vice versa.

It's great for keeping a record of the prior meetings, including all the talks. A few special talks were even recorded and can be viewed as movies online. It also provides a central location for hooking up to the other collaborative tools we use.

Forums

These are phpbb forums for the users of the model. This is a vast improvement over a mailing list since it is:

  • permanent
  • searchable
  • separated into various categories (sections, threads, etc.)
  • anyone can answer questions - and see which questions have been answered

Currently the forum is primarily used by beginners to ask questions and others to answer them. It could potentially be used for more, but people have to get over the fear of using a new medium. The younger new users seem to be more willing to post, especially when they are having trouble.

Subversion

There has already been an article on svn in the HPC Newsletter, see > issue 369 .

Trac

This is an open source system for tracking bug reports ( http://trac.edgewall.org/ ). Anyone can enter bug reports or even feature requests. The person maintaining the model svn trunk refers to the trac numbers on each check in.

Wiki

Unlike a forum, a wiki is for static information for the good of all. It can be edited by anyone with the permission to do so, allowing many to contribute. Someone found a version of the wiki software that allows equations to be entered using TeX code. Now the main problem is that scientists have no time to document what they've done to the code.

Editing for the wiki is kind of touchy though. I think in the future I'll edit in a more user-friendly environment and just cut and paste into the wiki. Also annoying is that the wiki, the forum, and html all have differing markup languages for things such as bold text.

Blog

We have a developers' blog for telling interesting stories about the ocean model development process. It's low volume...

--

For other ideas on collaboration, see Jessica Cherry's article, "Using Google Tools for Research Project Management," in > issue 362

NetCDF 4.0 Released

We just received this from the NetCDF team:


> We are pleased to announce the release of versions 4.0 and 3.6.3 of
> the NetCDF C/Fortran/C++ libraries and associated utilities.
> 
> The netcdf-4.0 release offers an expanded data model and the ability
> to use HDF5 as a storage layer for netCDF files, while remaining fully
> backward compatible with previous versions of netCDF. For more
> information see the 4.0 release notes
> (
http://www.unidata.ucar.edu/software/netcdf/release-notes-4.0.html
).
> 
> Users who are not interested in the enhanced data model at this time
> should get the netcdf-3.6.3 release, which does not read or write the
> new netCDF-4/HDF5 format. For more information see the 3.6.3 release
> notes
> (
http://www.unidata.ucar.edu/software/netcdf/release-notes-3.6.3.html
).
> 
> NOTE: NetCDF-4.0 is a drop in replacement, with complete backward
> compatibility; it requires zlib-1.2.3 (or better) and HDF5-1.8.1 to
> take advantage of new netCDF-4 features.
> 
> The new releases, as well as their documentation, are available from
> the netCDF home page:
> 
http://www.unidata.ucar.edu/software/netcdf/

SSE Optimization, Compiler Feedback

[ By Don Bahls ]

The AMD Opteron processor supports SSE/SSE2 and SSE3 assembly instructions (SSE indicates "Streaming SIMD Extensions"). Like the instruction set from vector machines, SSE instructions can be either scalar or vector. The vector versions of SSE floating point instructions can operate on either 2- 64 bit values (i.e. REAL*8) or 4- 32 bit values (i.e. REAL*4). There is definitely a performance benefit to using the vector instructions rather than the scalar counterparts.

Both the PGI and PathScale compilers available on midnight have an option which will report when the compiler vectorizes a loop (or doesn't).

For the Portland Group compilers, use the "-Minfo=loop" flag:

E.g.:


mg56 % pgf90 -fast -Minfo=loop gflop.f -o gflop
cache_test:
    23, Interchange produces reordered loop nest: 24, 23
        Unrolled inner loop 8 times
    33, Interchange produces reordered loop nest: 34, 33
        Generated an alternate loop for the inner loop
        Generated vector sse code for inner loop
        Generated 1 prefetch instructions for this loop
        Generated vector sse code for inner loop
        Generated 1 prefetch instructions for this loop
   244, Generated vector sse code for inner loop
        Generated 1 prefetch instructions for this loop

For the PathScale compilers, use the "-LNO:simd_verbose=ON" flag:

E.g.


mg56 % pathf90 -O3 gflop.f -LNO:simd_verbose=ON -o gflop
(gflop.f:23) Op "OPC_F4I4CVT" is not vectorizable, Loop was not vectorized.
(gflop.f:33) LOOP WAS VECTORIZED.
(gflop.f:244) LOOP WAS VECTORIZED.
(gflop.f:244) LOOP WAS VECTORIZED.

For this particular code the compilers are in agreement about which loops could be vectorized, however we see that PGI unrolled a loop which the PathScale compiler didn't.

Both compilers are less aggressive about vectorizing code at lower optimization levels. PathScale begins to show vectorization output at -O3, while the PGI compilers show vectorization output when the -fast flag is used or at lower optimization levels when the -Mvect=sse flag is specified.

Quick-Tip Q & A


A:[[ I frequently write scripts to build input files.  The way I
  [[ normally handle this is by using "echo" commands in the script
  [[ to send the input file to stdout and then redirect stdout to the
  [[ filename I would like to use.
  [[
  [[ e.g.
  [[ ./build_input > namelist.input
  [[
  [[ Rather than redirecting stdout, I would like to have the output from
  [[ echo go to a specific file (e.g. namelist.input).  Is there a way to
  [[ redirect stdout for a script within the script itself?  I really hate
  [[ having to redirect each "echo" statement individually.
  [[


#
# Thanks to Ryan Czerwiec for sharing the following solution
#

In sh, near the top of your script, put this line:

exec 1> file

Where "file" is where you want the output sent.  Now anything that
would be written to standard output from the current shell goes to
that file until you change it or exit the shell.  You can get some
unexpected results, but it should be ok for the problem described.
It's not something you'd really want to use from the command line,
but it's fine for scripting if you're doing fairly ordinary stuff.
Csh/tcsh can't do this.

#
# Dale Clark also mentioned the same technique, and notes that it
# also works for ksh.
#





Q: Some Unix commands, like ps and finger, spit out a line of column
  headers followed by a table of information.  Being self-absorbed,
  I often want to grep for myself in these tables, but I need to see
  the column headers too, because they change depending on the command
  options.  Check out the different "ps" column headers!

    mg56:~ % ps -e  
 head -1
      PID TTY          TIME CMD
    mg56:~ % ps -l  
 head -1
    F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY    TIME CMD
    mg56:~ % ps -ef 
 head -1
    UID     PID  PPID  C STIME TTY   TIME CMD
    mg56:~ % ps -elf 
 head -1
    F S UID     PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY    TIME CMD

  Apparently the developers did NOT consider my needs when they wrote
  these tools.  To see the header and information rows, am I really
  stuck doing this?!

    mg56:~ % ps -ef 
 head -1    
    UID        PID  PPID  C STIME TTY          TIME CMD
    mg56:~ % ps -ef 
 grep mortimer
    mortimer    9996  9994  0 10:07 ?        00:00:00 sshd: mortimer [priv]
    mortimer    9998  9997  0 10:07 pts/8    00:00:00 -ksh
    mortimer   18706  9998  0 10:27 pts/8    00:00:00 ps -ef

[[ 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