Supercomputing FAQ
General Questions
UNIX Questions
SSH Questions
Batch Processing Questions
Compiling System Questions
Parallel Processing Questions
Libraries/Software Questions
Performance Analysis Questions
Disk Storage
Other Common Problems
General Questions
Where should
a new OSC user begin?
The first thing you should do as a new OSC user is register your ARMSTRONG account using the login information in your welcome letter. You will use ARMSTRONG to change your HPC password, connect with other OSC users, add new users to your projects, and more. To register with your HPC information, click here.
After registering with ARMSTRONG and changing your password from the default provided, your next step will be configuring your computer to connect to the High Performance Computing (HPC) clusters at the OSC. For more information on connecting, read about the available computing environments and consult our FAQs on SSH.
Once you are able to connect to our HPC systems, you should start familiarizing yourself with the software and services available from the OSC, including:
What is an RU
(or mRU)?
An RU is a resource unit and an mRU
is a milli resource unit (i.e., 1 RU = 1000 mRUs). A resource unit is
an aggregate measure of the use of CPU, memory, and file storage. For
details on charging algorithms, see Charging.
How do I find
out my account balance?
To see usage and balance information
from any system, use the ARMSTRONG portal at https://armstrong.osc.edu/.
 |
accounting is updated once a
day, so the account balance is for the previous day. |
How do I
get/renew an account?
For information concerning accounts
(i.e., how to apply, who can apply, etc.), see Accounts.
How do I
register for a workshop?
Workshop announcements are posted
under Notices. For a complete schedule of of current training offierings, please visit the OSC Extended Training Schedule. To register or for more information, please
email trn-contact@osc.edu.
Where can I
find documentation?
For documentation specific to
software applications, see Software. For
other available documentation, see Manuals.
How do I read mail on OSC's supercomputing systems?
This service is not available at
this time.
How do I
install automatic mail forwarding from OSC's supercomputing systems?
This service is not available at this time. E-mail from OSC's supercomputing systems
is sent to the address we have for you in our database.
Can I
receive a letter of support from OSC when I apply for outside funding?
OSC has a standard letter of support
that you can include (electronically or in hard copy) with a proposal
for outside funding. This letter does not replace the application
process for time on OSC's systems. To receive the letter of support
please send your request to oschelp@osc.edu.
You should provide the following information: name and address of the
person/organization to whom the letter should be addressed; name(s) of
the principal investigator(s) and the institution(s); title of the
proposal; number of years of proposed account; number of RUs
requested per year. Please allow at least two working days to process your request.
When you receive outside funding related to research you conduct on OSC's systems, please log into the ARMSTRONG portal at https://armstrong.osc.edu/ and add that information in the appropriate section. Such information is important to the center and to state officials.
The letter includes the rates
associated for specified system(s). Hardware information about the
systems is available at http://www.osc.edu/supercomputing/hardware.
My
question isn't answered here. Whom can I ask for help?
OSC has a supercomputing support person
available for consultation during regular business hours (9am-5pm
Monday through Friday). More information on the OSC supercomputing help desk can
be found at
http://www.osc.edu/supercomputing/support/.
How do I acknowledge OSC in my publications?
An acknowledgment of support from the Ohio Supercomputer Center should appear in a publication of any material, whether copyrighted or not, based on or developed with OSC-supported computing resources.
"This work was supported in part by an allocation of computing time from the Ohio Supercomputer Center."
UNIX Questions
How do I change my password?
You can use the secure web page at
https://app.osc.edu/private/hpc-account.shtml to change your password. You may also log into the ARMSTRONG portal at https://armstrong.osc.edu/ and change your password in the appropriate section.
How do I change the default shell?
You can use the secure web page at https://app.osc.edu/private/hpc-account.shtml to change your shell. You may also log into the ARMSTRONG portal at https://armstrong.osc.edu/ and change your shell in the appropriate section.
How do I define my terminal type?
Appropriately set the TERM
environment variable. The most common terminal types are xterm
or vt100. The way you set the environment variable
depends on your shell. For example, a POSIX or Korn shell user may
enter export TERM=xterm to set the TERM variable
to xterm.
What does CPU time limit exceeded mean?
If you are running your application
interactively, you need to create a batch request. Your batch request
should include an appropriate estimate for the amount of CPU time that
your application will need. See Batch
Processing for more information.
How do I get more disk space?
Before you request additional space
for your permanent file system ,
consider temporarily using /tmp and/or compressing
files. For special requests, estimate the amount of disk space that you
will need and the duration that you will need it. Send special requests
to oschelp@osc.edu.
SSH Questions
What is SSH?
Secure Shell (SSH) is a program to
log into another computer over a network, to execute commands in a
remote machine, and to move files from one machine to another. It
provides strong authentication and secure communications over insecure
channels. SSH provides secure X connections and secure forwarding of
arbitrary TCP connections.
How can I upload or download files?
Since FTP is no longer supported at
OSC, you must use a utility that uses the SSH protocol. Current options
include Secure CoPy 'scp' and SSH File Transfer Protocol 'sftp'. These
utilities should be provided on most linux/unix platforms, but they can
also be found at the links given in the next section, "Where can I find
SSH clients".
For Windows users, a popular version of scp and SFTP exists called
WinSCP. This open source application can be obtained at no charge from:
http://winscp.sourceforge.net/eng
Where can I find SSH clients?
Windows users should consider using our OSC Starter Kit. This kit requires no configuration and includes shortcuts for initiating SSH connections with the HPC clusters, transferring files to and from the HPC file system, and links to helpful OSC websites. To find our more, click here.
For users interested in setting up their own environments, we recommend the following options:
- Windows
- Secure Shell, by SSH Communications Security. Free for non-commericial users.
- PuTTY by Simon Tatham. Open source.
- Linux and Mac OS X:
- Mac OS X and most Linux distributions come with the OpenSSH suite preinstalled, including the ssh and sftp command-line tools. For more information, open a terminal window and type "
man ssh" or "man sftp".
- Graphical SFTP clients:
How does SSH work?
SSH works by the exchange and
verification of information, using public and private keys, to identify
hosts and users. The ssh-keygen command
creates a directory ~/.ssh and files that
contain your authentication information, The public key is stored in ~/.ssh/identity.pub and the private key is stored
in ~/.ssh/identity. Share only your
public key. Never share your private key. To further protect
your private key you should enter a passphrase to encrypt the key when
it is stored in the file system. This will prevent people from using it
even if they gain access to your files.
One other important file is ~/.ssh/authorized_keys. Append your public
keys to the authorized_keys file and keep the same copy of it on each
system where you will make ssh connections.
How do I run a graphical application in an ssh session?
To do this, you need to be running
an X display server. On most Unix and Linux systems, you will probably
be running this already. If you are using a Mac running OSX, you will
need to install and run either the Apple
X11 server or XDarwin. On
Windows systems, there are numerous choices available, including X-Win32 and Cygwin/X. Most ssh
clients can be configured to automatically set up a remote X display as
part of the login session. This may happen without any action on your
part; if you log into an OSC machine and the command "echo $DISPLAY"
gives you more than a blank line, you need do nothing else. To
configure this automated behavior with OpenSSH on a Unix/Linux/OSX
system, you will need to either login in with the -X option or add the
following to $HOME/.ssh/config on your local machine:
Host * ForwardX11 yes ForwardX11Trusted yes
Note that some visualization
programs, such as AVS/Express, require an X server which supports the
GLX extension for OpenGL compatibility. To check if your X server
supports that extension, run the command "xdpyinfo
| grep GLX" in your login session to an OSC system. You
should get one or more lines of output if your X server supports this
extension.
Batch Processing Questions
What is a batch request?
On all OSC production systems, batch processing is managed by the Portable Batch System (PBS). PBS batch requests (jobs) are shell scripts that contain the same set of commands that you enter interactively.
These requests may also include options for the batch system that provide timing, memory, and processor information. For example
requests, see Batch Processing in the Supercomputing Environments section.
How do I submit, check the status, and/or delete a batch job?
PBS uses qsub to submit, qstat -a to check the status, and qdel to delete a batch request. For more information, see the online man pages.
Why won't my job run?
There are numerous reasons why a job might not run even though there appear to be processors and/or memory available. These include:
- Your account may be at or near the job count or processor count limit for an individual user.
- Your group/project may be at or near the job count or processor count limit for a group.
- The scheduler may be trying to free enough processors to run a large parallel job.
- Your job may need to run longer than the time left until the start of a scheduled downtime.
How can I retrieve files from unexpectedly terminated jobs?
A batch job that terminates before the script is completed can still copy files from $TMPDIR to the user's home directory via the trap command. In the batch script, the trap command needs to precede the command causing the TERMination. It could be placed immediately after the PBS header lines. Here is a generic form:
trap "cd $PBS_O_WORKDIR;mkdir $PBS_JOBID;cp -R $TMPDIR/* $PBS_JOBID" TERM
Compiling System Questions
What languages are available?
Fortran, C, and C++ are available on all OSC systems. The commands used to invoke the compilers and/or loaders vary from system to system. For more information, see "Using the System" under Supercomputing Environments.
When compiling an MPI2 C++ program I get the following
error: /usr/local/mpi/mvapich2-1.2p1-intel/include/mpicxx.h(37):
catastrophic error: #error directive: "SEEK_SET is #defined but must
not be for the C++ binding of MPI"
#error "SEEK_SET is #defined but must not be for the C++ binding of
MPI"
This error is the result of a problem in the C++ binding in
the MPI-2 standard. There is a namespace collision between MPI and
stdio, with SEEK_SET being defined in both. The recommend solution
is to use the compiler flag -DMPICH_IGNORE_CXX_SEEK.
A second option, although not recommended, is to include mpi.h before
stdio.h (works if you don't have nested includes).
Parallel Processing Questions
What is parallel processing?
The simultaneous use of more than one computer (or processor to solve a problem. There are many different kinds of parallel computers. They are distinguished by the kind of interconnection between processors or nodes (groups of processors) and between processors and memory.
What parallel processing environments are available?
On most systems, both shared-memory and distributed-memory parallel programming models can be used. Versions of OpenMP (for multithreading or shared-memory usage) and MPI (for message-passing or distributed-memory usage) are available. See Table 3 for a summary of parallel environments.
What is a core?
A core is a processor. When a single chip contains multiple processors, they are called cores.
What is Amdahl's law?
If F is the fraction of a calculation that is sequential, and (1-F) is the fraction that can be parallelized, then the maximum speedup that can be achieved by using P processors is 1/(F+(1-F)/P). This is the theoretical limit on speedup due to parallelization.
How do you do multi-thread using MVAPICH and OpenMP?
MVAPICH has a thread affinity option, which is supposed to
improved performance for single-threaded MPI processes. It prevents
the use of multiple cores in multithreaded (e.g., OpenMP) processes,
however. For MPI+OpenMP, set the environment variable
MV2_ENABLE_AFFINITY to 0:
bash:
export MV2_ENABLE_AFFINITY=0
csh:
setenv MV2_ENABLE_AFFINITY 0
Libraries/Software Questions
What software applications are available?
See Software section.
How do I get authorized to use a particular software application?
Access Agreement forms are available
on the Web in postscript and text formats. Where appropriate, they may
be found for a given application in the Software
section.
What math routines are available?
See the Software section for information on
third-party math libraries (e.g., ACML, fftw, scalapack, etc).
What scientific visualization software is available?
There are a number of visualization packages available, such as Gnuplot, Jmol, ParaView, and VTK.
The Visualization Toolkit, VTK, is an open source software system for 3D computer graphics, image processing and scientific visualization. A related application is ParaView. Paraview runs on distributed and shared memory parallel as well as single processor systems. Paraview uses VTK for the data
processing and rendering engine. The interface is written with a blend of TCL/TK and C++. Both VTK and Paraview were created by Kitware.
If another software package is needed, we have solutions available to run them remotely. Please contact oschelp@osc.edu for more information.
Also, see our training materials in the Training section.
OSC does not have a particular software package I would like to use. How can I request it?
Please refer to the general information of OSC's technical web pages entitled "Software". Under Forms, you will see the link to "Request for Software Form". Download the form, complete the information, and fax the form to OSC's software manager at 614/292-7168. The Statewide Users Group will consider the request.
What are modules?
Modules[1] are used to manage the environment variable settings associated with software packages in a shell-independent way. They work by setting up a special function or alias in your shell's environment called "module", which is used to evaluate commands and set environment variables in a transparent, reversible way. On OSC's systems, you will by default have modules in your environment for PBS, MPI, compilers, and a few other pieces of software. To see a list of your currently loaded modules, run:
module list
To see all of the modules available, run:
module avail
To add the module for a particular package to your environment, run:
module load package
Conversely, to remove a module from your environment, run:
module unload package
To see what changes a module makes to your environment, run:
module show package
[1] http://www.modules.org/
How do I convert files from an old Gaussian version to another version?
Almost all old Gaussian input files are valid for later versions.
However, the format for checkpoint files has been changed several times.
Using Gaussian09 for example,
the following command sequence performs a checkpoint conversion in place:
% cp -p mycalc.chk mycalc.chk.original
% module load g09
% c8609 mycalc.chk
The Gaussian09 module must be loaded to access the c8609 utility.
The mycalc.chk file will be rewritten in Gaussian09 format. For
reference, see http://www.gaussian.com/g_ur/m_utils.htm. The command c8609*.chk converts only the first file, so you must convert each checkpoint file separately. The conversion utility program name contains the version, so for the Gaussian03 module the program name is c8603.
Performance Analysis Questions
What are MFLOPS/GFLOPS/TFLOPS/PFLOPS?
MegaFLOPS/GigaFLOPS/TeraFLOPS/PetaFLOPS are millions/billions/trillions/quadrillions of FLoating-point (real number) Operations Per Second.
How do I find out about my code's performance?
A number of performance analysis tools (http://www.osc.edu/supercomputing/computing/index.shtml) are available on OSC systems. Some are general to all systems and others are specific to a particular system.
How can I optimize my code?
There are several ways to optimize code. Key areas to consider are CPU optimization, I/O optimization, memory optimization, and parallel optimization. Guidelines ( http://www.osc.edu/supercomputing/computing/opt-strategies.shtml ) are available to assist you.
Disk Storage
How can I determine the total disk space used by my account?
You can determine the total amount of disk space consumed by your
account by using the du command. From your home directory
issue the following command: du -sh .
Every OSC user shares their home file system with many other users. To
see how much disk space remains on your home file system you must first
identify the file system in which your files reside. To do this run
the command ls -l $HOME On the far right you will see
output similar to /home/osu0000 -> /h/osu0000/ This
example indicates that user osu0000 has their home
directory mounted on the /h file system. You can now use
this information to determine how much space remains on your home file
system by using the command df.
How can I find my largest directories?
To reveal the directories in your account that are taking up the
most disk space you can use the du, sort and
tail commands. For example, to display the ten largest
directories change to your home directory and then run the command:
du -k . | sort -n | tail -10
How can I find and delete core files?
Often when an application crashes or quits unexpectedly, an
image of that application's memory footprint at the time of the crash
is written to the file system as a "core file". These core files are
typically quite large and unless needed by the user should be deleted.
To find and delete these files go to your home directory and run the
command:
find . -name core\* -exec rm -f {} \;
How can I use tar and gzip to compress my files?
The commands tar and gzip can be used
together to produce compressed file archives representing entire
directory structures. These allow convenient packaging of entire
directory contents. For example, to package a directory structure
rooted at src/ use tar -czvf src.tar.gz src/
This archive can then be unpackaged using
tar -xzvf src.tar.gz where the resulting directory/file
structure is identical to what it was initially.
Are there other file compression programs?
The programs zip, bzip2 and
compress can also be used to create compressed file
archives. See the man pages on these programs for more details.
Other Common Problems
Why did my program die with a segmentation fault, address error, or signal 11?
This is most commonly caused by trying to access an array beyond its bounds -- for example, trying to access element 15 of an array with only 10 elements. Unallocated arrays and invalid pointers are other causes. You may wish to debug your program using one of the available tools such as TotalView.
I created a batch script in a text editor on a Windows or Mac system, but when I submit it on an OSC system, almost every line in the script gives an error. Why is that?
Windows and Mac have different end-of-line conventions for text files than UNIX and Linux systems do, and most UNIX shells (including the ones interpreting your batch script) don't like seeing the extra character that Windows appends to each line or the alternate character used by Macs. On most
OSC systems, you can use the following commands to convert a text file from Windows or Mac format to UNIX format:
dos2unix myfile.txt
mac2unix myfile.txt
|