SCore
Compiling for SCore
First, load the SCore module in order to access the MPI compilers and other tools:
module add score
You can now compile your parallel application using the relevant compiler wrapper(s); mpicc, mpiCC, mpif77 or mpif90. By default, these MPI compilers will invoke the standard GNU compilers; compiler flags in this mode should therefore be those you would normally use for the GNU Compiler Collection.
For improved performance, the MPI compilers should be directed to use either the PGI compilers, by adding the arguments -compiler pgi, or the Intel compilers, by adding the arguments -compiler intel9. For example, a good starting-point to generate an optimised MPI Fortran 90 program would be:
mpif90 -compiler pgi -fastsse myprogram.f90
To compile an MPI C program, the equivalent command would be:
mpicc -compiler pgi -fastsse myprogram.c
Please note: You must ensure that the MPI compilers have access to the PGI compilers by ensuring that the PGI module is loaded:
module add pgi
Submitting SCore jobs
To submit an SCore job, first ensure that the score module has been added to your environment:
module add score
Next, to launch a parallel SCore job you'll need to use the mpisub command:
mpisub nxm myexecutable
Where n is the number of execution nodes you want the job to run on, m is the number of CPUs on each node to use (this number should normally be four), and myexecutable is the name of the SCore-compiled application you wish to run.
E.g., to run the application myapp on 5 nodes, each using 4 CPUs (ie, a total of 20 CPUs), enter the following:
mpisub 5x4 myapp
mpisub will automatically generate a script and submit it to the queue. The output files will appear in your current working directory.
Please Note: SCore works on a node-booking system; a parallel job cannot share a node with other serial or parallel jobs. So, if you run mpisub with an m value of less than 4, the remaining CPUs on each node will be effectively blocked from use by others. Use m values of less than 4 only when necessary!
Please Note 2: The Inter Process Communication fabric for SCore jobs runs only between nodes on the same physical rack; the job scheduler will choose an appropriate rack for you.
File redirection with SCore jobs
If you need to redirect standard input or output for a job, what may seem to be the obvious approach will not work:
mpisub nxm myprogram < myinput
What this command actually does is to instruct mpisub to take its input from myinput. Instead, you need to protect the file redirection from the shell, so that it is passed as an argument to mpisub to be appended to its call to myprogram:
mpisub nxm myprogram "< myinput"
©Lancaster University Computer User Agreement Privacy Statement
©Lancaster University ISS Governance Computer User Agreement Privacy & Cookies Notice