ARSC HPC Users' Newsletter 388, June 13, 2008
- ARSC Summer Tours, Wednesdays at 1pm
- Practical Communication Within a Widely Dispersed Community
- NetCDF 4.0 Released
- SSE Optimization, Compiler Feedback
- Quick Tip
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: firstname.lastname@example.org 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:
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.
These are phpbb forums for the users of the model. This is a vast improvement over a mailing list since it is:
- 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.
There has already been an article on svn in the HPC Newsletter, see > issue 369 .
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.
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.
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:
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:
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 ]]
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
Subscribe to (or unsubscribe from) the e-mail edition of the
ARSC HPC Users' Newsletter.
Back issues of the ASCII e-mail edition of the ARSC T3D/T3E/HPC Users' Newsletter are available by request. Please contact the editors.