SGI Altix ICE Frequently Asked Questions
General
- How do I determine how many nodes are currently available on the machine?
- Can I use binary data files that I generated on the SGI Altix as input files to my SGI Altix ICE FORTRAN Program?
Batch Queue
- Where can I learn about PBS?
- Why is there another job running on the same node as my job?
- Can I run jobs that require a graphical interface?
File Management
Compilers
Writing Parallel Code
- Is automatic parallelization supported?
- Is OpenMP supported?
- Can I use OpenMP and automatic parallelization in the same program?
- Is Cluster OpenMP supported?
- Is MPI supported?
- Is MPI/OpenMP mixed mode programs supported?
- Is MPI-2 supported?
General
- How do I determine how many nodes are currently available on the machine?
Run the command icenodes to see what nodes are available.
- Can I use binary data files that I generated on the SGI Altix as input files to my SGI Altix ICE FORTRAN Program?
Yes, as long as you did not specify a byte swap when you generated the data.
Batch Queue
- Where can I learn about PBS?
See PBS
- Why is there another job running on the same node as my job?
Specify the exclusive directive in your PBS script.
- Can I run jobs that require a graphical interface?
Yes, if the binary supports X11 and your workstation has a working X11 server.
When you ssh to polar, you will need to tell the ssh client to enable X11 forwarding. With the command line version, you will need to add "-X".
Once you've logged in, run the following:
module load x11_lustre
If you get an error while loading the module, the problem is most likely the X11 server on your workstation. Ensure that it's running and test it if possible.
Jobs with X11 input/ouput must be interactive. When you submit your job, you must have the following flags: "-V -X -I". Keep in mind that when you submit a job with the -I flag, any job script you specify will not be executed.
When the job executes, you will get a shell on one of the compute nodes. Your display should already be set and any binary you execute that has a graphical display should work properly.
File Management
- What's the best way to manage my files in scratch space?
See the Large File FAQ
Compilers
Writing Parallel Code
- Is automatic parallelization supported?
Yes. You can have the ifort compiler automatically parallelize your program by adding the -parallel switch to your compilations. By also adding the switch -par_report3 you can also get a detailed report of how the compiler parallelized your program.
- Does the system support OpenMP?
Yes. If your program uses OpenMP directives then the switch -openmp must be used on both the compile and link stages of your program build. In addition the environmental variable OMP_NUM_THREADS should be set to the number of threads that you want. Note there are 8 cores/node, so OpenMP jobs can span only 8 cores.
To execute OpenMPI programs use the following format:
omplace -c 0-7 executable
- Can I use OpenMP and automatic parallelization in the same program?
Yes. You can mix both types within the same program. However, if a file contains OpenMP directives and you specify both the -openmp and the -parallel switches, then the compiler will ignore the -parallel switch for that file.
- Is Cluster OpenMP supported?
No.
- Is MPI supported?
Yes. SGI's Message Passing Toolkit includes MPI libraries. Use ifort and icc to compile and link your program and include -lmpi in your list of link libraries. To run your program include the lines:
set MPI_DSM_DISTRIBUTE set MPI_USE_IB set MPI_MEMMAP_OFF mpiexec -n mmm executable
where mmm is the number of MPI processes. The use of -n mmm is optional and if not specifed the number of processors will be determined by the #PBS -l settings.
- Is MPI/OpenMP mixed mode programs supported?
Yes. OpenMP threads will be divided among, at most, 8 cores. Remember to set the environment variable OMP_NUM_THREADS to the number of threads you want.
To execute a hybrid OpenMP/MPI program use the following format:
mpiexec -n number_of_nodes omplace -nt number_of_threads_per_node executable
- Is MPI-2 supported?
Yes, MPT supports the MPI-2 standard.