ARSC HPC Users' Newsletter 332, January 13, 2006

All ARSC Users Required to Complete IA Training by 31 Jan 2006

ARSC, along with our sponsoring agency, the High Performance Computing Modernization Program (HPCMP), supports a recent DoD policy that requires that all users of ARSC computer resources complete Information Assurance (IA) Awareness training. Those users who have not completed this training by 31 Jan 2006 will have their user accounts inactivated on 1 Feb 2006 until the training has been completed.

All ARSC users will need to go to: and complete either the DoD IA course or the ARSC IA training by 31 Jan 2006. It should take between 45 minutes and one hour.

Users will receive an additional email, with more details, from ARSC Consulting. Contact with any questions.

ARSC Summer Internship Program

The Undergraduate Research Challenge is an internship program for undergraduate students which allows them to spend the summer studying at the University of Alaska Fairbanks.

Interns will work under the supervision of individual researchers on active projects suited to their interests. Mentors are UAF and/or ARSC faculty and senior staff.

** Application Deadline: March 15, 2006. **

For more information and application materials, go to:

LAPACK and ScaLAPACK on the IBMs

The HPCMP Programming Environment and Training (PET) folks have installed a number of common PET tools on both klondike and iceberg under the directory $PET_HOME. On iceberg, one important package in this suite is the math libraries, LAPACK, ScaLAPACK and the LAPACK Call Conversion Interface.

An installation of LAPACK/ScaLAPACK would be redundant on klondike because Cray implements and optimizes them natively for the X1, and they're included in libsci.

IBM offers high-performance math libraries through ESSL and PESSL, but as described in thousands of previous newsletter articles, while ESSL/PESSL are friendly toward LAPACK/ScaLAPACK, there are differences.

Here's IBM's comment on this situation, from the chapter on "Migrating your programs" in : "Engineering and Scientific Subroutine Library for AIX, Version 4 Release 1 Guide and Reference [SA22-7904-01]",

--- ESSL contains some subroutines that conform to the LAPACK interface. If you are using these subroutines, no coding changes are needed to migrate to ESSL.

Note: You should be aware that there are some ESSL subroutines whose names match those of existing LAPACK subroutines, but whose calling-sequence arguments and functionality are different from those LAPACK subroutines. (See Appendix B, LAPACK, on page 989.)

Additionally, you may be interested in using the Call Conversion Interface (CCI) that is available with LAPACK. The CCI substitutes a call to an ESSL subroutine in place of an LAPACK subroutine whenever an ESSL subroutine provides either functional or near-functional equivalence. Using the CCI allows LAPACK users to obtain the optimized performance of ESSL for an additional subset of LAPACK subroutines. ---

With LAPACK, CCI, and ScaLAPACK installed, it should be easier for some users to port their codes to iceberg. Here are some considerations:

  • LAPACK uses should always prefer ESSL when they have a choice. Link first with "-l essl" to see if it works. ESSL version 4 incorporated 22 additional LAPACK routines, so it's increasingly likely ESSL has what you need. Also, ESSL includes most of the BLAS, which is the workhorse for LAPACK, so even if you use routines from LAPACK rather than ESSL you should achieve good performance.
  • If needed, link with "-l lapack -l essl". "-l lapack" must appear first to give LAPACK CCI a chance to convert your LAPACK calls to ESSL. These four possibilities exist for each subroutines:
    1. Functionality exists in LAPACK only. [ You'll get the LAPACK object. ]
    Functionality exists in both LAPACK and ESSL, and:
    1. Subroutine has same name and argument list [ You'll get the LAPACK object because of link list order . ]
    2. Subroutine has same name but different argument lists [ You'll get the LAPACK object because of link list order. ]
    3. Subroutine has different names [ You'll get the ESSL object courtesy of CCI. ]
  • ScaLAPACK users have an easier time of it, as PESSL is a subset of ScaLAPACK. Thus, you won't experience differences in subroutine names or argument lists and there's no need for a CCI to convert from ScaLAPACK to PESSL. However, you might find your needed ScaLAPACK subroutine doesn't exist in PESSL, in which case you'll have to link with "-l pessl -l scalapack".

X1: Programming Environment Upgrades

During scheduled downtime on Jan 11, 2006, on klondike was upgraded to PE 5.5. Users are encouraged to test their codes under this new environment.

Assuming you're running the default PrgEnv, the following command would switch you to the new environment in the current session:

module switch PrgEnv

Please inform ARSC Consulting ( of the results of your testing!

Symposium on Distributed and Parallel Computing with MATLAB

March 20-22, 2006

The Arctic Region Supercomputing Center will be hosting a symposium on distributed and parallel computing with MATLAB, March 20-22, 2006, on the University of Alaska Fairbanks campus. The featured speaker will be Cleve Moler, original author of MATLAB and chief scientist at The MathWorks. The event will include a public presentation by Moler, hands-on workshops, and a symposium on parallel computation involving MATLAB with invited guests, panelists and presentations.

The Distributed Computing Toolbox for MATLAB has been available from the MathWorks for a little over a year, and is installed on various systems at ARSC. Moler is a member of a team at the MathWorks that is developing additional parallel computing facilities for a future version of MATLAB. These new features will be previewed at this symposium.

Open Positions at ARSC

ARSC is seeking to fill two positions:

  • HPC Specialist (MPP, vector, computational science, etc..)
  • HPC Systems Analyst (systems administration, network security, etc...)

Quick-Tip Q & A

A:[[ Aaarrgghh!  Never mind why, but I stupidly did this:
  [[   chmod -R 777 progs 
  [[ to my "progs" directory, and now everything, the directories, text
  [[ files, image files, object files, etc., are all "executable." (What I
  [[ really wanted was "chmod -R go+rX".) Is there an intelligent way to
  [[ undo this?


  "find" can identify directories. You can also use it to remove the
  execute bit from everything but directories:

    find progs ! -type d -exec chmod ugo-x {} \;

  "file" can detect binary executables.  (You'll never make this mistake
  again, so no sense automating this process, right?)  You can get the
  list of executables with the following "find" command and then chmod
  them in a one-time script or manually:

    find progs -exec file {} \; 
 grep -i executable

  Shell scripts and other executables could be handled similarly using
  information presented by "file" or maybe using file extensions 
  (eg., ".sh").

Q: I tried "nm" on an IBM ".a" file, trying to figure out what routines
   it contains, but it returns nada:  

     $  file liblapack.a
     liblapack.a: archive (big format)
     $  nm liblapack.a

   Is the archive really empty?  What's wrong? 

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