ARSC HPC Users' Newsletter 261, January 10, 2003
MPI Programming Class on AGN
All local ARSC users are invited to participate in the following class:
Intermediate MPI Programming February 6, 13, 20, and 27, 2003 (Every Thursday in February) 9am - 12noon, Alaska Time, each day. Butrovich 109, on the UAF campus
The instructors will start with material beyond the basics. This is an chance to expand your MPI skills past send and recv, e.g.:
- Perform *true* parallel I/O with MPI at both the basic and advanced levels.
- Determine which parallel tasks require the use of Intercommunicators vs. Intracommunicators and what is the difference between them?
- How to define your own operators in the generic MPI_Reduce() routine. (A powerful capability)
- Distinguish between Probing and Receiving messages. For example, probing can allow you to dynamically allocate the exact memory needed.
- Create general (i.e., non-Cartesian) virtual topologies. Intermix the C++ and Fortran 90 languages with the MPI Library calls.
For more details, see:
ARSC will participate over the Access Grid, along with thirteen other Universities and computing centers. ARSC users register at:
http://www.arsc.edu/calendar/mpiworkshop.html ( Past Event )
If you're a novice MPI user or just wondering whether (or how) to parallelize your code, you're always invited to contact ARSC consulting ( email@example.com ).
ARSC consultants and specialists are available for quick advice via email or phone as well as one-on-one appointments to discuss your application and help you get off to a good start.
Disk Quotas and Checking them on SP & Regatta
Disk quotas have been implemented on ARSC's two large IBM systems, icehawk and iceflyer. As on other ARSC systems, quotas help prevent overfilling disks and suffering the consequences. This is also a step in preparation for conversion to ARSC's new storage servers.
The "qcheck" script on both icehawk and iceflyer makes it trivial to determine your current quota and usage on all available file systems. Simply type:
icehawk2$ qcheck FILESYSTEM KBused SOFTLIMIT HARDLIMIT GRACE local:$WRKDIR 6004464 10240000 10342400 local:$HOME 90816 1024000 1126400 chilkoot:/viztmp 8364 1843200 2048000 chilkoot:/allsys/$HOME 2542592 9216000 10240000
Here's what the columns are:
- HARDLIMIT: Maximum storage you're permitted. The system will not let you write more than this.
- SOFTLIMIT: If you exceed this amount, you have a limited time to get back under this limit before the system will block future attempts to write.
- GRACE: The time remaining to get usage back under the soft limit.
Quick-Tip Q & A
A:[[ A reader asked this... more of a poll than a quick-tip, but might [[ be interesting: [[ [[ "Do people use .f versus .f90 for free/fixed format? or do they use [[ the -free and -fixed sort of compiler arguments? Is anyone writing [[ free format?" # # Thanks to Tom Logan of ARSC: # Being a C programmer, I would prefer to convert all Fortran code into that language. Failing that, at least one has free format to work with. I use .f90 as much as possible. I find the fixed format rather confining whenever I try to use variables with meaningful names. Often, I convert .f files into .f90 files when I first get them. Conversion for fixed to free format is a simple process - yet it can be time consuming. In my experience, this conversion only requires changing all comment lines to use '!' as the sentinel and changing all continuation lines to use an '&' at the end of the line and nothing at the beginning of the next line. I will often just try to compile the code as .f90 and look for compiler errors. This shows exactly which lines of source code need to be changed. # # Thanks to Jeff McAllister of ARSC: # Free format is great! I've always disliked that time-warp sensation that comes from simulating punched cards with a modern text editor. It just made my brain hurt to think of all that effort counting character positions just to fit some obsolete standard. Reformatting is easy. For shorter programs the compiler will quickly find the multi-line statements that need to be changed. For longer programs there are several conversion utilities (I just wrote my own in a few lines of perl). Once you make the switch you'll never want to go back. Unfortunately, the problem isn't always as simple as format. Attempting conversion is a great way to find places with convoluted, ugly code that a) is really hard to understand and b) probably isn't working the way you think it is. These subroutines can be kept in old fixed-form format while you rewrite them. You'll need to sooner or later anyway. These sections of code are likely to cause problems when compilers get upgraded or you move to a new system. Q: Perl should make this easy... but it's driving me nuts! In this example, I want to use search and replace to eliminate the bold html tags from some lyrics I've been working on, replacing the formerly emboldened text with the same text, prefaced by the word "really". E.g.: The weather is here, I <b>wish</b> you were mine, the sky is <b>so cloudy</b>, I sleep and I pine. Here's my perl script: #!/usr/local/bin/perl -w $all = join '', <>; $all =~ s <b>(.*)</b> really $1 gsi; print "$all"; The script puts the entire file into one string so it can search across line breaks. The modifiers to "s" are: g : match every occurance (not just the first) s : match newline characters with "." i : ignore case Here's the output: The weather is here, I really wish</b> you were mine, the sky is <b>so cloudy, I sleep and I pine. You can see for yourself what happened. Has anyone else ever had this problem? What can I do?
[[ 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.