System Facts:
|
General User Information
1. Access
2. Your Account
3. Environment
4. Software:
Compilers
Programming Tools
Programming for MPI
Mathematic and Scientific Libraries
5. Running Jobs
Selecting MPI Libraries
Compiling
Running MPI programs
Using the Batch Scheduler (PBS)
Submitting Jobs to PBS
Running Interactive Jobs
6. Storage
AccessThe Black Bear Supercluster is accessed through one machine. This front-end system, named blackbear.ahpcc.unm.edu, is intended for code development and submitting jobs to the Black Bear compute nodes.Logging in:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
Your AccountYou can access Black Bear using your regular AHPCC account. If you don't
have an AHPCC account, you can apply for one via: http://santafe.hpcerc.unm.edu/irs/ |
||||||||||||||||||||||||||||||||||||||||||||||||||||
EnvironmentMany environment variables needed for compilers and libraries are defined in certain config files. Users can run the /nfs/linux/BLACKBEAR/scripts/setup_env.bb script to setup your environment to run on Black Bear.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
Software |
||||||||||||||||||||||||||||||||||||||||||||||||||||
Black Bear has a number of compilers (C, C++, Fortran 77/90, and HPF)
including the GNU, NAGf95 and Portland Group suite. The tables below list
the specific compiler commands and links to documentation when available.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
Running JobsSelecting MPI LibrariesThere are four MPI libraries on the Black Bear Supercluster, two using Myrinet (for PGI and GNU compilers) and two using Ethernet (for PGI and GNU). Select a library by setting the MPIHOME environment variable. Refer to your .cshrc file for examples.Use the "which" command to verify your compile library. For example: % source $HOME/BLACKBEAR/cshrc_bb % which mpicc
% which mpicc
CompilingCompile and link C code with MPI libraries% mpicc -o exec [options] filename(s).c Compile and link C++ code with MPI libraries
Compile and link Fortran77 code with MPI libraries
Compile and link Fortran90 code with MPI libraries
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
Running MPI jobsMPI can only be run on the Black Bear compute nodes through PBS. You can use the "mpirun" script to run an MPI job. The script has the following syntaxmpirun -np n -machinefile $PBS_NODESFILE full_path/executable-np n - Number of nodes to start program on Using the Batch Scheduler (PBS)Black Bear uses the Portable Batch System (PBS) to manage parallel job scheduling. Users can run batch or interactive jobs on the Black Bear Supercluster through PBS. Batch jobs are described in command files which are submitted to PBS for execution.
Please contact help@hpcerc.unm.edu PBS Command FilesThe PBS job command file defines the number of nodes you are requesting and contains the shell commands you wish to be executed. One or two processes per node can be started. Some samples are listed below for a job to run the executable complete_path/test_prog on N nodes(for a user using a (t)csh style shell): For Myrinet jobs (one process per node)The "#PBS -l nodes=N" line defines how many nodes are being requested. The PBS environment variables which are used in the script above are defined below. These variables are set when PBS allocates nodes for a user.#PBS -l nodes=N # source to get environment variables # cshrc_bb - for (t)csh users # bashrc_bb - for (ba)(k)sh users # uncomment the proper line based on your shell source $HOME/BLACKBEAR/cshrc_bb #. $HOME/BLACKBEAR/bashrc_bb gmpiconf $PBS_NODEFILE mpirun -np N -machinefile $PBS_NODEFILE <full path to your executable>For MPI jobs to run using Myrinet, the "gmpiconf" command must be used to create a configuration file ($HOME/.gmpi/conf). To run two processes per node, use the gmpiconf2 command and double the number of processes (-np 2*n) for the mpirun command as shown below: Example script (sample.cmd): 32-node Myrinet using two processes per node: Submiting jobs to PBS qsub [flags] (script_name) Submit a batch job listed in scriptname.pbs fileDisplaying the queue contents and status qstat [flags] i.e., qstat -s (displays status and elapsed time of job)Remove job from queueJob ID Username Queue Jobname SessID NDS TSK Memory Time S Time --------------- -------- -------- ---------- ------ --- --- ------ ----- - ----- 2534.bb nestor12 rr STDIN 23483 16 -- -- 06:00 R 01:04 Job started on Fri Jul 09 at 15:53 2554.bb corona rr STDIN 19704 2 -- -- 06:00 R 00:44 Job started on Fri Jul 09 at 16:14 2557.bb corona rr STDIN 22012 2 -- -- 06:00 R 00:42 Job started on Fri Jul 09 at 16:15 2559.bb nestor12 rr alltoall.p -- 64 -- -- 06:00 Q -- Not Running: Not enough of the right type of nodes are available 2560.bb nestor12 rr alltoall12 -- 64 -- -- 06:00 Q -- Not Running: Not enough of the right type of nodes are available qdel (job_id) where job_id can be obtained from the queue listing using "qstat". Output and Error filesStandard error and output are contained in two files with the names:using the Jobname and Job_ID from your job in the queue.Jobname.eJob_ID Jobname.oJob_ID Running Interactive JobsYou can initiate an interactive session on Black Bear nodes through PBS. This is the only case where a user has direct access to a compute node.Initiate an interactive session using n nodes
Once an interactive session is granted, you are placed in your home directory on one of the nodes you were allocated. Execute the code as described in MPIRUN section. |
||||||||||||||||||||||||||||||||||||||||||||||||||||
StorageApproximately 3 GB of scratch space is available on each Black Bear compute node in /scratch./scratch is for TEMPORARY storage only - All files in /scratch will be deleted when the job has finished |
||||||||||||||||||||||||||||||||||||||||||||||||||||
where job_id can be obtained from the queue listing using "qstat".
using the Jobname and Job_ID from your job in the queue.Jobname.eJob_ID Jobname.oJob_ID
Initiate an interactive session using n nodes
qsub -I -l nodes=n
Once an interactive session is granted, you are placed in your home directory on one of the nodes you were allocated. Execute the code as described in MPIRUN section.