Hprc banner tamu.png

Difference between revisions of "Ada:Computing Environment"

From TAMU HPRC
Jump to: navigation, search
(Modules)
Line 15: Line 15:
 
startup file, '''.bash_profile'''. It is read and executed when you login, and it
 
startup file, '''.bash_profile'''. It is read and executed when you login, and it
 
resides in your home directory. The command,
 
resides in your home directory. The command,
 
+
  [ NetID@ada ~]$ '''env'''
  [ ''NetID''@ada ~]$ '''env'''
 
 
 
  
 
when executed right after login, displays the default environment settings.<br>
 
when executed right after login, displays the default environment settings.<br>
Line 165: Line 163:
  
 
To find out what software packages are available under the Module system on Ada, enter:
 
To find out what software packages are available under the Module system on Ada, enter:
 
+
  [ NetID@ada ~]$ '''module spider ''[packageName]'''''         # List all versions of all packages or just for packageName.
 
 
  [ ''NetID''@ada ~]$ module spider [packageName]          # List all versions of all packages or just for packageName.
 
 
 
 
 
  
 
To set up the shell's enviroment so it can run desired packages, you enter:
 
To set up the shell's enviroment so it can run desired packages, you enter:
 
+
  [ NetID@ada ~]$ '''module load ''packageName1 packageName2 ...'''''
  [ ''NetID''@ada ~]$ module load packageName1 packageName2 ...
 
  
 
Note that the specification of packageName is case sensitive and it must include a specific version. On Ada, there are no packages that are preloaded by default.
 
Note that the specification of packageName is case sensitive and it must include a specific version. On Ada, there are no packages that are preloaded by default.
Line 180: Line 173:
 
To find out what packages/modules you have loaded onto the current shell,
 
To find out what packages/modules you have loaded onto the current shell,
 
enter:
 
enter:
 
+
  [ NetID@ada ~]$ '''module list'''
  [ ''NetID''@ada ~]$ module list
 
 
 
  
 
'''Example'''
 
'''Example'''
 +
[ NetID@ada ~]$ '''module load ''ABAQUS/2017'''''
 +
[ NetID@ada ~]$ '''module list'''
 +
 +
Currently Loaded Modules:
 +
  1) ABAQUS/2017
  
 +
The above output illustrates the fact that a modulefile's complete name includes its version. An installed application can have several versions.<br>
 +
<font color=teal> A specific version should '''always''' be used when loading packages.</font><br>
  
[ ''NetID''@ada ~]$module load ABAQUS/2017
+
Please also note that loading a package is required in order to access the man pages, if available,associated with the package. <br>
[ ''NetID''@ada ~]$ module list
 
 
 
Currently Loaded Modules:
 
  1) ABAQUS/2017
 
 
 
 
 
The above output illustrates the fact that a modulefile's complete name includes its version. An installed application can have several versions. When the
 
version is omitted in the load action, the system selects the latest installed version for the associated package.<br>
 
 
 
Please also note that loading a package is required in order to access the man pages, if available,
 
associated with the package. <br>
 
  
 
To remove/unload packages from a shell's environment, enter:
 
To remove/unload packages from a shell's environment, enter:
 +
[ NetID@ada ~]$ '''module unload ''packageName1 packageName2 ...'''''
  
[ ''NetID''@ada ~]$ module unload packageName1 packageName2 ...
+
To remove ALL loaded modules from the current environment, enter:
 
+
[ NetID@ada ~]$ '''module purge'''
 
 
To remove ALL loaded modules from the current environemnt, enter:
 
[ ''NetID''@ada ~]$ module purge
 
  
 
To search and list what packages/modules are available on Ada, enter any suitable combination of the following:
 
To search and list what packages/modules are available on Ada, enter any suitable combination of the following:
 +
[ NetID@ada ~]$ '''module spider ''[packageName]'''''          # List all versions of all packages or just for packageName.
 +
[ NetID@ada ~]$ '''module spider  ''string'''''                # List all modules that contain the "string".
 +
[ NetID@ada ~]$ '''module spider  ''packageName/version'''''  # List detailed information about that version of packageName
 +
[ NetID@ada ~]$ '''module keyword ''string'''''                # list all modules and whatis that contain string.
  
<pre>
+
For additional help see:
[ NetID@ada ~]$ module spider [packageName]          # List all versions of all packages or just for packageName.
+
  [ NetID@ada ~]$ '''module help'''                         # lists all the subcommands under the module command.
[ NetID@ada ~]$ module spider string                # List all modules that contain the "string".
+
[ NetID@ada ~]$ '''module help ''packageName'''''             # Lists information about packageName
[ NetID@ada ~]$ module spider  packageName/version  # List detailed information about that version of packageName
 
[ NetID@ada ~]$ module keyword string                # list all modules and whatis that contain string.
 
 
 
[ NetID@ada ~]$ module help                          # lists all the subcommands under the module command.
 
[ NetID@ada ~]$ module help packageName              # Lists information about packageName
 
</pre>
 
  
 
'''Examples'''
 
'''Examples'''
 
+
[ NetID@ada ~]$ '''module spider ''ABAQUS'''''
<pre>
+
----------------------------------------------------------------------------------------
[ NetID@ada ~]$ module spider ABAQUS
+
  ABAQUS:
 
+
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
+
    Description:
  ABAQUS:
+
      Finite Element Analysis software for modeling, visualization and best-in-class
----------------------------------------------------------------------------------------
+
      implicit and explicit dynamics FEA. - Homepage:
    Description:
+
      http://www.simulia.com/products/abaqus_fea.html
      Finite Element Analysis software for modeling, visualization and best-in-class
+
      implicit and explicit dynamics FEA. - Homepage:
+
      Versions:
      http://www.simulia.com/products/abaqus_fea.html
+
        ABAQUS/6.12.1-linux-x86_64
 
+
        ABAQUS/6.13.5-linux-x86_64
    Versions:
+
    . . .
        ABAQUS/6.12.1-linux-x86_64
 
        ABAQUS/6.13.5-linux-x86_64   <---- latest is the default
 
  . . .
 
</pre>
 
  
 
To remove (unload) a module and load another, use the swap subcommand:
 
To remove (unload) a module and load another, use the swap subcommand:
 +
[ NetID@ada ~]$ '''module swap ''packageOUT packageIN'''''
  
<pre>
+
The above command is short for:
[ NetID@ada ~]$ module swap packageOUT packageIN
+
[ NetID@ada ~]$ '''module unload ''packageOUT'''''
</pre>
+
[ NetID@ada ~]$ '''module load ''packageIN'''''
 
 
The above command is short for: $ module unload packageOUT; module load packageIN<br>
 
  
 
'''Example'''
 
'''Example'''
 +
[ NetID@ada ~]$ '''module load ''ABAQUS/6.13.5-linux-x86_64'''
 +
[ NetID@ada ~]$ '''module swap ABAQUS/6.13.5-linux-x86_64 ABAQUS/6.12.1-linux-x86_64
 +
[ NetID@ada ~]$ '''module list
  
<pre>
+
Currently Loaded Modules:
[ NetID@ada ~]$ module swap ABAQUS/6.13.5-linux-x86_64 ABAQUS/6.12.1-linux-x86_64
+
  1) ABAQUS/6.12.1-linux-x86_64
[ NetID@ada ~]$ module list
 
 
 
Currently Loaded Modules:
 
  1) ABAQUS/6.12.1-linux-x86_64
 
</pre>
 

Revision as of 11:28, 14 March 2017

COMPUTING ENVIRONMENT

All nodes on Ada operate under the control of the LINUX operating system. The installed version is the CentOS 6 implementation. The global file systems (accessible to all nodes) are organized by IBM's General Parallel File System (GPFS). These are /home and /scratch. Both are hosted on the 4PB (raw) disk space provided by the IBM GSS26 mass storage appliance.

The batch system, although an important part of the computing environment, is covered in a separate section of its own.

The Login Part

The default shell for ada (all nodes) is bash. Its environment is defined in the startup file, .bash_profile. It is read and executed when you login, and it resides in your home directory. The command,

[ NetID@ada ~]$ env

when executed right after login, displays the default environment settings.

Many applications use the TMPDIR environment variable, when set, as the area for storing temporary files. By default TMPDIR is not set, whereupon the application programs will typically use the /tmp area on the local drive, not always a safe option because of its limited capacity. Setting it to a directory in your scratch area is a good solution.


The use of the login nodes is for small-to-medium code development and processing. The most important processing limits here are:

  • CPU time - ONE HOUR per login session.

  • Cores for Concurrent Use - EIGHT CORES per login session, on the same node or (cumulatively) across all login nodes.

The 8 login nodes have a number of diverse features making them suitable platforms for different types of code development, testing and limited computation. Below we display their main hardware features.

Main Features of Login Nodes
Single NVIDIA K20 GPU Dual NVIDIA K20 GPUs Dual Intel Xeon Phi 5110P
HostNames ada1.tamu.edu
ada2.tamu.edu
ada3.tamu.edu
ada4.tamu.edu
ada5.tamu.edu
ada6.tamu.edu
ada7.tamu.edu
ada8.tamu.edu
Processor Type Intel Xeon E5-2670 v2, 10-core, 2.5GHz
Total Nodes 2 3 3
Cores/Node 20
Interconnect FDR-10 Infiniband
Network 1 GigE for external connectivity
Local Disk Space per node: 4 834 giga-byte 10K rpm SAS drives


To insure access to a specific node because, say, it must have a Phi coprocessor you must use its specific hostname (e.g., ada8.tamu.edu).

For large data transfers to/from other hosts you should definitely consider the use of the fast data transfer nodes described in a previous section.

File Space

Immediately upon logging in to Ada, the following message about the status of your disk space use greets you:

Your current disk quotas are:
Disk       Disk Usage      Limit    File Usage      Limit
/home           2.49G        10G           113      10000
/scratch        1.25G         1T            40      50000
/tiered          4.8G        10T            69      50000
Type 'showquota' to view these quotas again. 

The gist of the information is that the file space allocated for your home directory, /home/NetID, is just 10GB, while the allocation for scratch area, /scratch/user/NetID, is 1TB.

Your scratch space is extensible for justifiable needs. It is NOT backed up. The home area, on the other hand, is backed up nightly, but cannot be extended. The following information captures most of the pertinent aspects of file space.

Global file space on Ada, accessible to users on all compute, login, and extra-fast data transfer nodes, is organized by the three (GPFS) file systems showing in the table below. Access to the allocated file space is through the indicated directories that are setup automatically for every user.


File System Directory Environment Variable Storage Hardware File Space Quota File Counts Quota Comments
Home /home/$USER $HOME GSS26 10 GB 10000 Upon login, you will be situated in /home/$USER, where $USER is your Net ID. Use of this area should take into account its small size with fixed (cannot change) space and file count limits.
Scratch /scratch/user/$USER $SCRATCH GSS26 1 TB 50000 This is a high performance storage, intended to temporarily hold rather large files, and only for on-going processing that uses them. It is NOT backed up nor is it intended as long-term storage area. Please delete or move out of these area any files that are not frequently used.
Tiered /tiered/user/$USER $ARCHIVE flash+disks+tapes 10 TB 50000 This is an archival file system intended to hold valuable data files that are not frequently used. Please delete or move elsewhere files that have been inactive for extended periods.

Modules

The Modules system organizes the multitude of packages we have installed on Ada so that they can be easily maintained and used. Some of these have several versions. More specifically, Modules configures appropriately the execution environment of each package (and version).

On Ada most non-OS software is organized by the Modules system. That includes all the compilers and associated libraries. Each package has a corresponding modulefile or simply a module where the appropriate actions are specified (in a prescibed format) in setting up its execution environment.

On Ada, the design and construction of the Modules system is based on the use of the bash shell. A few applications set up their environment with wrapper scripts that do not use the bash shell or insist on doing things outside Modules. Notify the help desk if you cannot locate the module appropriate for an application.

To find out what software packages are available under the Module system on Ada, enter:

[ NetID@ada ~]$ module spider [packageName]          # List all versions of all packages or just for packageName.

To set up the shell's enviroment so it can run desired packages, you enter:

[ NetID@ada ~]$ module load packageName1 packageName2 ...

Note that the specification of packageName is case sensitive and it must include a specific version. On Ada, there are no packages that are preloaded by default.
Always specify a version. Never rely on loading the default version.

To find out what packages/modules you have loaded onto the current shell, enter:

[ NetID@ada ~]$ module list

Example

[ NetID@ada ~]$ module load ABAQUS/2017
[ NetID@ada ~]$ module list

Currently Loaded Modules:
  1) ABAQUS/2017

The above output illustrates the fact that a modulefile's complete name includes its version. An installed application can have several versions.
A specific version should always be used when loading packages.

Please also note that loading a package is required in order to access the man pages, if available,associated with the package.

To remove/unload packages from a shell's environment, enter:

[ NetID@ada ~]$ module unload packageName1 packageName2 ...

To remove ALL loaded modules from the current environment, enter:

[ NetID@ada ~]$ module purge

To search and list what packages/modules are available on Ada, enter any suitable combination of the following:

[ NetID@ada ~]$ module spider [packageName]          # List all versions of all packages or just for packageName.
[ NetID@ada ~]$ module spider  string                # List all modules that contain the "string".
[ NetID@ada ~]$ module spider  packageName/version   # List detailed information about that version of packageName
[ NetID@ada ~]$ module keyword string                # list all modules and whatis that contain string.

For additional help see:

[ NetID@ada ~]$ module help                          # lists all the subcommands under the module command.
[ NetID@ada ~]$ module help packageName              # Lists information about packageName

Examples

[ NetID@ada ~]$ module spider ABAQUS
----------------------------------------------------------------------------------------
  ABAQUS:
----------------------------------------------------------------------------------------
    Description:
      Finite Element Analysis software for modeling, visualization and best-in-class
      implicit and explicit dynamics FEA. - Homepage:
      http://www.simulia.com/products/abaqus_fea.html

     Versions:
        ABAQUS/6.12.1-linux-x86_64
        ABAQUS/6.13.5-linux-x86_64
   . . .

To remove (unload) a module and load another, use the swap subcommand:

[ NetID@ada ~]$ module swap packageOUT packageIN

The above command is short for:

[ NetID@ada ~]$ module unload packageOUT 
[ NetID@ada ~]$ module load packageIN

Example

[ NetID@ada ~]$ module load ABAQUS/6.13.5-linux-x86_64
[ NetID@ada ~]$ module swap ABAQUS/6.13.5-linux-x86_64 ABAQUS/6.12.1-linux-x86_64
[ NetID@ada ~]$ module list
Currently Loaded Modules:
  1) ABAQUS/6.12.1-linux-x86_64