From peterp@oak.njit.edu Thu Aug 25 15:16:37 2005
Date: Tue, 07 Jun 2005 13:11:15 -0400 (EDT)
From: peter g petropoulos math fac/staff <peterp@oak.njit.edu>
To: faculty@m.njit.edu
Cc: Andrew A Malato <andy.malato@njit.edu>
Subject: hydra info and two run scripts (serial/parallel).


Hello all,

First, if you don't have an account, request one from Michael Siegel.
NOTE: the .cshrc and .login files are bare-bones...you may want to
modify them to suit your needs. Access to the machine is through
ssh ONLY (you may issue "ssh-X myusername@hydra" to log in so that
X11 apps display on your desktop).

Gnu compilers are installed (g77, gcc, g++) as well as other compilers
(see below) and other gnu software. The machine is basically a linux
box if you're only interested in serial runs except you have to use
a queue to run executables.

Second, libraries are found as follows (pretty soon the ACML library from
AMD will also be installed, see this webpage for details of what this is:

http://www.developwithamd.com/apppartnerprog/acml/home/index.cfm?action=home

) :

In /usr/local/lib

  the following netlib libraries (see www.netlib.org for details):

libscipack.a
libslatec.a
libminpack.a
libodepack.a
libfftpack.a
libdfftpack.a

  the ATLAS (blas/partial lapack distribution) library as follows
  (see the LAPACK netlib webpages for docs to ATLAS). NOTE: I'm not
  sure if this library has any MPI capabilities.

libf77blas.a
liblapack.a
libatlas.a
libtstatlas.a
libcblas.a
libptcblas.a

  and the serial/parallel/OMP FFTW v. 2.1.5 and 3 libraries (see fftw.org
  for docs)

In /usr/local/lib64

  the  serial/parallel/OMP 64-bit versions of FFTW v. 2.1.5 and 3
  libraries (see fftw.org for docs)

In /usr/local/vni/CTT6.0 you find the serial/parallel IMSL Library
(instructions, examples, docs, etc.)

NOTE: if you need any other libraries please let _me_ know. Instructions
on how to use these libraries will not be given any time soon (the
assumption is that if you've used math libraries before you still know
how to use them now, hydra is just another unix box).

In /usr/pgi/linux86/5.2 and in /usr/pgi/linux86-64/5.2 you find the
Portland Group 32- and 64-bit (resp.) compiler suite (fortran+cc). Look
into these directories for info, docs, examples, etc. the default
compilers are the 64-bit versions. See

http://www.pgroup.com/support/index.htm

for further info regarding computing with the PG compilers. NOTE:
environment flags are set when you use, e.g., pgf77...you may need
to delve deeper into the documentation to figure out whether you
need to make changes.

There's Matlab, Mathematica, xmgr, xmgrace (executable in
/usr/local/grace/bin), gnuplot, etc...by issuing
"which <my favorite application>" will tell you if your favorite
application is installed. You can also grep for it in the usual
UNIX places (/usr/bin, /usr/X11R6/bin, /usr/local/bin, etc.)

Also, here's something called CHARM and something called NAMD2 (I don't
know what these are).

Finally, scripts are submitted with "qsub <script-name>" and jobs are
deleted with "qdel <job-number>" where <job-number> is that reported in
the automatic e-mail you received from hydra or from what the system
returns after you submit the script. NOTE: the parallel run queues will
be restructured soon but this is of no concern to users. To monitor
jobs and explore further you can use the X11 interface to PBS called
xpbs (just issue xpbs at the command line). There are 20 nodes (40
processors) presently allocated for serial runs and 46 nodes (92
processors) allocated to MPI jobs. Also, it is possible to use Open MP
(threads) within MPI or by itself.

The first script is one for serial jobs (further down is a script for
parallel jobs (codes compiled with MPI):

SERIAL (name it something, e.g., run-serial.pbs):

#!/usr/local/bin/ksh
#########################
# Job name to be reported by qstat
##############################################################################
#PBS -N normalfld
##############################################################################
# Declare Job, non-rerunable
##############################################################################
#PBS -r n
##############################################################################
# Specify name for output file
##############################################################################
#PBS -o normalfld.log
##############################################################################
# Join standard output and error so we only get one logfile
##############################################################################
#PBS -j oe
##############################################################################
# Mail to user onb a=abort, b=begin, e=end
##############################################################################
#PBS -m aeb
##############################################################################
# set the email address where mail notifications will be sent
##############################################################################
#PBS -M peterp@ouzo.njit.edu
##############################################################################
# Number of nodes must be set to 1 for serial jobs and property must =
serial
##############################################################################
#PBS -l nodes=1:serial
##############################################################################
# Select queue - queue name for serial jobs MUST BE set to serial
##############################################################################
#PBS -q serial
##############################################################################
# Switch to the job's working directory
##############################################################################
cd ~/normal
##############################################################################
# A little useful information for the log file...
##############################################################################
echo Directory is `pwd`
echo PBS has allocated the following nodes:
echo `cat $PBS_NBODEFILE`
##############################################################################
# Specify CPU time needed
##############################################################################
##PBS -l cput=300:00:00
##############################################################################
# Put in a timestamp
##############################################################################
echo Starting executation at `date`
##############################################################################
# Run the executable
##############################################################################
echo "This is a serial job"
time ./normalfld
##############################################################################
# Print the date again -- when finished
##############################################################################
echo Finished at `date`
##############################################################################


PARALLEL (name it something, e.g., run-parallel.pbs):


#!/usr/local/bin/ksh
##############################################################################
# Job name to be reported by qstat
##############################################################################
#PBS -N lu.A.8
##############################################################################
# Declare Job, non-rerunable
##############################################################################
#PBS -r n
##############################################################################
# Specify name for output file
##############################################################################
#PBS -o lu.A.8.new.log
##############################################################################
# Join standard output and error so we only get one logfile
##############################################################################
#PBS -j oe
##############################################################################
# Mail to user onb a=abort, b=begin, e=end
##############################################################################
#PBS -m aeb
##############################################################################
# set the email address where mail notifications will be sent
##############################################################################
#PBS -M peterp@ouzo.njit.edu
##############################################################################
# Number of nodes to run on (must specify mpi property)
##############################################################################
# Runs on 8 nodes, using 1 processor per node (append ":ppn=2" for 2
proc/node
#i.e., to use 16 processors change to nodes=8:mpi:ppn=2
##############################################################################
#PBS -l nodes=8:mpi
##############################################################################
# Select queue - queue name for Parallel (MPI) jobs MUST BE set to feeder
##############################################################################
#PBS -q feeder
##############################################################################
# Switch to the job's working directory
##############################################################################
cd ~/Test.d/testm/NPB2.4/NPB2.4-MPI/bin
##############################################################################
# A little useful information that will be in the log file
##############################################################################
echo Master process running on `hostname`
echo Directory is `pwd`
echo PBS has allocated the following nodes:
echo `cat $PBS_NBODEFILE`
#############################################################################
# Define number of processors to send to mpirun for MPICH
##############################################################################
NPROCS=`wc -l < $PBS_NODEFILE`
echo This job has allocated $NPROCS nodes
##############################################################################
# Specify CPU time needed
##############################################################################
#PBS -l cput=0:04:00
##############################################################################
# Put in a timestamp
##############################################################################
echo Starting executation at `date`
##############################################################################
# Run the executable. The example below runs lu.A.8 which resides in the
job's
# working directory (to which you cd'ed above).
##############################################################################
/usr/rels/mpich/bin/mpiexec -verbose ./lu.A.8
##############################################################################
# Print the date again -- when finished
##############################################################################
echo Finished at `date`
##############################################################################



Best regards,
Peter
___________________________________________
Department: Mathematics, NJIT
Office    : Cullimore Hall, Rm. 608
Phone     : (973)596-5626
FAX       : (973)596-6467
E-mail    : peterp@ouzo.njit.edu
URL       : http://web.njit.edu/~peterp/
