This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
guide:m9000 [2013/07/25 11:15] kevin created |
guide:m9000 [2021/12/09 16:42] (current) |
||
|---|---|---|---|
| Line 2: | Line 2: | ||
| This guide explains how to use the M9000 massive multi-core shared memory super computer. | This guide explains how to use the M9000 massive multi-core shared memory super computer. | ||
| + | |||
| + | =====Hardware===== | ||
| | ^ M9000 | | | ^ M9000 | | ||
| - | ^ CPU | Sparc64 VI | | + | ^ CPU | 64× SPARC64 VII quad-core |
| - | ^ CPU clock | 1.9 GHz | | + | ^ CPU clock | 2.88 GHz | |
| ^ CPU cores | 256 (512 threads available) | | ^ CPU cores | 256 (512 threads available) | | ||
| ^ Memory | 2 048 GB (2 TB)| | ^ Memory | 2 048 GB (2 TB)| | ||
| ^ Peak performance | 2 Tflops | | ^ Peak performance | 2 Tflops | | ||
| - | ^ Linpack | + | ^ Linpack |
| ^ Interconnect | Jupiter | | ^ Interconnect | Jupiter | | ||
| + | ^ O.S. | Solaris 10 | | ||
| ^ Storage | 5.3 TB XFS | | ^ Storage | 5.3 TB XFS | | ||
| - | ^ Incept date | Septemer | + | ^ Incept date | September |
| + | |||
| + | =====Operating System===== | ||
| + | |||
| + | The operating system on the M9000 is Oracle (né Sun) Solaris version 10: | ||
| + | < | ||
| + | m9000:~$ uname -a | ||
| + | SunOS m9000 5.10 Generic_139555-08 sun4u sparc SUNW, | ||
| + | </ | ||
| + | >SunOS is the actual name of the operating system; version 5 was renamed " | ||
| + | |||
| + | =====File Systems===== | ||
| + | |||
| + | ^ Partition ^ File System | ||
| + | | Scratch | XFS | ''/ | ||
| + | | | | ''/ | ||
| + | | Gridware | NFS | ''/ | ||
| + | | Home | NFS | ''/ | ||
| + | | Software | | ''/ | ||
| + | |||
| + | * **WARNING: | ||
| + | |||
| + | The M9000 does not mount the Lustre SCRATCH* file systems. | ||
| + | |||
| + | =====Compilers===== | ||
| + | |||
| + | | Language ^ GCC | ||
| + | ^ C | '' | ||
| + | ^ Fortran | ||
| + | ^ C++ | '' | ||
| + | |||
| + | The recommended system compilers are Sun Studio. | ||
| + | < | ||
| + | m9000:~$ f90 -V | ||
| + | f90: Sun Fortran 95 8.3 SunOS_sparc Patch 127000-07 2008/ | ||
| + | Usage: f90 [ options ] files. | ||
| + | </ | ||
| + | |||
| + | The default system GCC compilers are very old (version 3.4.x) and the newer GCC 4.6.3 is installed in ''/ | ||
| + | |||
| + | <code bash> | ||
| + | export PATH=/ | ||
| + | export LD_LIBRARY_PATH=/ | ||
| + | export MANPATH=/ | ||
| + | </ | ||
| + | |||
| + | And, when building code using make files or '' | ||
| + | |||
| + | ===GCC 4.6.3=== | ||
| + | <code bash> | ||
| + | export CC=gcc | ||
| + | export CXX=g++ | ||
| + | export FC=gfortran | ||
| + | export F77=gfortran | ||
| + | </ | ||
| + | |||
| + | ===Sun Studio=== | ||
| + | <code bash> | ||
| + | export CC=cc | ||
| + | export CXX=CC | ||
| + | export FC=f90 | ||
| + | export F77=f90 | ||
| + | </ | ||
| + | |||
| + | ====OpenMP==== | ||
| + | |||
| + | The above compilers include support for OpenMP. | ||
| + | < | ||
| + | gcc -o mp_hello -fopenmp mp_hello.c | ||
| + | </ | ||
| + | |||
| + | Example code from [[https:// | ||
| + | |||
| + | With the Sun Studio compilers, use the '' | ||
| + | |||
| + | | '' | ||
| + | ^ '' | ||
| + | |||
| + | * **IMPORTANT** Always use validation and verification test benchmarks with your parallel code after compiling with OpenMP enabled and especially if you used any compiler optimisations. | ||
| + | |||
| + | =====Libraries===== | ||
| + | |||
| + | See under ''/ | ||
| + | |||
| + | ====MPI==== | ||
| + | |||
| + | =====Job submission===== | ||
| + | [Courtesy of Sean February] | ||
| + | |||
| + | The queue name for the M9000 machine is spark. Your job script (see example below) must be located somewhere in ''/ | ||
| + | < | ||
| + | yourusername@login02: | ||
| + | </ | ||
| + | |||
| + | Example script: | ||
| + | <code bash> | ||
| + | #!/bin/sh | ||
| + | #PBS -N test | ||
| + | #PBS -q spark | ||
| + | #PBS -l select=1: | ||
| + | #PBS -l place=free | ||
| + | #PBS -l walltime=01: | ||
| + | #PBS -o / | ||
| + | #PBS -e / | ||
| + | cd $PBS_O_WORKDIR | ||
| + | |||
| + | HOME_DIR=/ | ||
| + | LOG_NAME=testjob_log | ||
| + | THIS_JOB=$HOME_DIR$LOG_NAME | ||
| + | |||
| + | echo "My job starts here" > $THIS_JOB | ||
| + | date >> $THIS_JOB | ||
| + | pwd >> $THIS_JOB | ||
| + | echo $PATH >> $THIS_JOB | ||
| + | echo `cat $PBS_NODEFILE` >> $THIS_JOB | ||
| + | |||
| + | date >> $THIS_JOB | ||
| + | echo "My job ends here" >> $THIS_JOB | ||
| + | </ | ||