Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Also see our About R and R Studio Server help page.

...

Home directory quotas and snapshots

How much space and I using home directory?

Open a terminal window on one of the compute nodes (e.g. ssh to one of your compute nodes) and enter the command "quota".  Quota is actually an alias pointing to the script /stor/system/opt/quota.sh which will print out information about your home directory storage use.  An example might look somewhat as follows:

...

Staying under your 10 GB quota

Home directories are intended for use to keep small, personal files. To enforce this, there is a 100 GB quota on all user Home directories. The shared Work or Scratch area for your group(s) are available for larger files.

Some file transfer programs (e.g. NCBI's SRA toolkit, Globus, and others) target sub-directories of the user's Home directory by default. Such programs usually also offer command-line or configuration file options to change the default target location. If a different directory cannot be specified, the physical directory can be replaced by a symbolic link to a location in the Scratch or Work area so that transferred files go there instead.

How much space and I using home directory?

Open a terminal window on one of the compute nodes (e.g. ssh to one of your compute nodes) and enter the command "quota".  Quota is actually an alias pointing to the script /stor/system/opt/quota.sh which will print out information about your home directory storage use.  An example might look somewhat as follows:

Code Block
% quota

Quota Report for imauser
Mount Point          Used            Total      Last Checked             
stor/home/imauser    7.5G (7%)       100G       Fri 16 Nov 2018 08:02:02 PM CST

...

If you are over or at your quota, you may find it difficult to delete files.  ZFS is a copy-on-write filesystem, so a file deletion transiently takes slightly more space on disk before a file is actually deleted as it writes the metadata involved with the file deletion before it removes the allocation for the file being deleted. This is how ZFS is able to always be consistent on disk, even in the event of a crash.

However, all is not lost.  You can truncate the file, then delete it.  For example, if you want to delete a file called junk.txt, you would use the following commands:

Code Block
cat /dev/null > junk.txt   # OR: cp /dev/null junk.txt
rm junk.txt

Specific software-related issues

Error running FastQC

Running fastqc on POD compute servers generates the Java exception shown below.

Image Removed

This happens because the version of fastqc installed requires a newer version of Java than the global default Java. One solution is to define a fqc alias as shown below, then call it instead of fastqc.

Code Block
alias fqc="/usr/bin/fastqc -java=/usr/lib/jvm/java-11-openjdk-amd64/bin/java"
fqc my.fastq

Running GUI programs

How do I invoke a GUI program on a POD compute server?

A terminal enabled for X-Windows (X11) is needed in order to invoke Linux GUI (graphical user interface) program and see the GUI on your laptop or desktop running Windows, Mac OS, or even Linux. This link details what X-Windows software is available: https://uisapp2.iu.edu/confluence-prd/pages/viewpage.action?pageId=280461906.

If you invoke ssh explicitly in your terminal, use ssh -Y to connect to the POD compute server (the -Y enables forwarding of the X11 commands to the X-terminal).

How do I use MATLAB on the POD?

MATLAB is installed on all PODs and is available in the /stor/system/opt/MATLAB/R2015b directory.

To use the MATLAB GUI (graphical user interface), you need to login from an X11-enabled terminal. See this link for obtaining and configuring one: https://uisapp2.iu.edu/confluence-prd/pages/viewpage.action?pageId=280461906.

From your X11-enabled terminal, use ssh -Y to connect to the POD compute server (the -Y enables forwarding of the X11 commands to the X-terminal). Once logged in, type matlab. This will (slowly) open a graphical window to run matlab in.

Here's how to create a script in matlab.

  • In the "Command Window" in the middle of the matlab window, type "1+1" and hit return, it should say "2".
  • Click the "New Script" button at the upper left (or the "New" Button, then select "Script" if you don't see "New Script").
    • This will open an editing window for a script. 
  • Type "1+1" in the window, then click "Save" from the upper menu. 
    • Name it anything with a ".m" extension (such as untitled.m, the default). 
  • You can then use then "Open" menu, or the "Current Folder" pain, to open that file in the future.
  • Once open in the Editor, you can use the "Run" command from the Editor menu to run it.
  • Exit matlab (using either the "exit" or "quit" command)

To open matlab without the graphical interface, type the not-so-short or intuitive command: matlab -nodisplay -nosplash. This should give an interactive command prompt. To exit, type quit or exit. Other sometimes-useful options for the non-GUI matlab include -nojvm (might speed things up a bit) and -wait (wait until your jobs finish before exiting).

To run the "script" we created above (called untitled.m in your home directory) and exit, you can do something like:

Code Block
languagebash
matlab -nodisplay -nosplash -r "run('~/untitled.m');quit"

To add some error checking, you can use:

Code Block
languagebash
matlab -nodisplay -nosplash -r "try, run('~/untitled.m'), catch, exit, end, exit"

Another simple example script could be created and executed from the command line as shown below. (It should tell you the answer is "7.3529".)

Code Block
languagebash
echo "5^3/(2^4+1)" > ~/untitled2.m
matlab -nodisplay -nosplash -nojvm -r "run('~/untitled2.m');quit"

General

"Cannot create temp file" error

While all compute servers share the large storage server disk array, each has its own small local disk where the OS is installed. This is also where the default /tmp directory on Linux is located.

Since OS disks are generally 250-500GB, having multiple programs write temporary files to /tmp at the same time can fill up the OS disk and lead to errors (e.g. "Cannot create temp file") and other symptoms, such as inhibiting tab completion of filenames.

The solution is to tell the program to write its temporary files somewhere else, such as a directory in your Scratch area. Most programs have an option for this if you look at their documentation. Note that Home directories should not be used for temporary files, since they have 100GB per-user quotas and can also fill upon disk before a file is actually deleted as it writes the metadata involved with the file deletion before it removes the allocation for the file being deleted. This is how ZFS is able to always be consistent on disk, even in the event of a crash.

However, all is not lost.  You can truncate the file, then delete it.  For example, if you want to delete a file called junk.txt, you would use the following commands:

Code Block
cat /dev/null > junk.txt   # OR: cp /dev/null junk.txt
rm junk.txt

Specific software-related issues

Error running FastQC

Running fastqc on POD compute servers generates the Java exception shown below.

Image Added

This happens because the version of fastqc installed requires a newer version of Java than the global default Java. One solution is to define a fqc alias as shown below, then call it instead of fastqc.

Code Block
alias fqc="/usr/bin/fastqc -java=/usr/lib/jvm/java-11-openjdk-amd64/bin/java"
fqc my.fastq

Running GUI programs

How do I invoke a GUI program on a POD compute server?

A terminal enabled for X-Windows (X11) is needed in order to invoke Linux GUI (graphical user interface) program and see the GUI on your laptop or desktop running Windows, Mac OS, or even Linux. This link details what X-Windows software is available: https://uisapp2.iu.edu/confluence-prd/pages/viewpage.action?pageId=280461906.

If you invoke ssh explicitly in your terminal, use ssh -Y to connect to the POD compute server (the -Y enables forwarding of the X11 commands to the X-terminal).

How do I use MATLAB on the POD?

MATLAB is installed on all PODs and is available in the /stor/system/opt/MATLAB/R2015b directory.

To use the MATLAB GUI (graphical user interface), you need to login from an X11-enabled terminal. See this link for obtaining and configuring one: https://uisapp2.iu.edu/confluence-prd/pages/viewpage.action?pageId=280461906.

From your X11-enabled terminal, use ssh -Y to connect to the POD compute server (the -Y enables forwarding of the X11 commands to the X-terminal). Once logged in, type matlab. This will (slowly) open a graphical window to run matlab in.

Here's how to create a script in matlab.

  • In the "Command Window" in the middle of the matlab window, type "1+1" and hit return, it should say "2".
  • Click the "New Script" button at the upper left (or the "New" Button, then select "Script" if you don't see "New Script").
    • This will open an editing window for a script. 
  • Type "1+1" in the window, then click "Save" from the upper menu. 
    • Name it anything with a ".m" extension (such as untitled.m, the default). 
  • You can then use then "Open" menu, or the "Current Folder" pain, to open that file in the future.
  • Once open in the Editor, you can use the "Run" command from the Editor menu to run it.
  • Exit matlab (using either the "exit" or "quit" command)

To open matlab without the graphical interface, type the not-so-short or intuitive command: matlab -nodisplay -nosplash. This should give an interactive command prompt. To exit, type quit or exit. Other sometimes-useful options for the non-GUI matlab include -nojvm (might speed things up a bit) and -wait (wait until your jobs finish before exiting).

To run the "script" we created above (called untitled.m in your home directory) and exit, you can do something like:

Code Block
languagebash
matlab -nodisplay -nosplash -r "run('~/untitled.m');quit"

To add some error checking, you can use:

Code Block
languagebash
matlab -nodisplay -nosplash -r "try, run('~/untitled.m'), catch, exit, end, exit"

Another simple example script could be created and executed from the command line as shown below. (It should tell you the answer is "7.3529".)

Code Block
languagebash
echo "5^3/(2^4+1)" > ~/untitled2.m
matlab -nodisplay -nosplash -nojvm -r "run('~/untitled2.m');quit"

General

Open files maximum and other limits

The number of open files (and other resource limits) is controlled by the ulimit command. The default can be increased, up to a point, by the user as shown below. Note that any ulimit change only applies to the current login session, although this can be automated by addinig it to your ~/.bashrc or ~/.profile file.

Code Block
languagebash
# View all current limits
ulimit -a

# View current open files limit
ulimit -n

# Increase number of open files from 1024 to 2048 for this login session
ulimit -n 2048

"Cannot create temp file" error

While all compute servers share the large storage server disk array, each has its own small local disk where the OS is installed. This is also where the default /tmp directory on Linux is located.

Since OS disks are generally 250-500GB, having multiple programs write temporary files to /tmp at the same time can fill up the OS disk and lead to errors (e.g. "Cannot create temp file") and other symptoms, such as inhibiting tab completion of filenames.

The solution is to tell the program to write its temporary files somewhere else, such as a directory in your Scratch area. Most programs have an option for this if you look at their documentation. Note that Home directories should not be used for temporary files, since they have 100 GB per-user quotas and can also fill up.

You may also need to Contact Us to delete /tmp directory contents if you are not able to do so yourself (users can delete anything they write to /tmp).

Tab completion not working (or is very slow)

If tab completion is not working, or is very slow, that is often a result of too much data in the system's /tmp directory, which causes the OS disk to run out of storage. See the "Cannot create temp file" error FAQ directly above for more information.

How do I manage being a member of multiple groups on a POD?

...