Difference between revisions of "Applications/SAS"
(→Batch Submission) |
(→Batch Submission) |
||
Line 66: | Line 66: | ||
Line 5 and 6 - these set the output and error files. The log file will contain SAS console output, the error file will contain information that may be useful if things don’t work as expected (at a cluster level)<br /> | Line 5 and 6 - these set the output and error files. The log file will contain SAS console output, the error file will contain information that may be useful if things don’t work as expected (at a cluster level)<br /> | ||
Line 7 - this requests the job runs on one of the compute nodes on the compute queue. <br /> | Line 7 - this requests the job runs on one of the compute nodes on the compute queue. <br /> | ||
− | Line 8 | + | Line 8 - this provides access to the SAS software module<br /> |
− | + | Line 9 - this is the run command. Note that the –memsize size should match that requested in line 8, while –cpucount should match line 4. Change the last .sas filename as appropriate<br /> | |
− | Line | ||
This submission script can be found at /path/to/sample/script | This submission script can be found at /path/to/sample/script |
Revision as of 12:19, 1 February 2017
Contents
Application Details
- Description: SAS (Statistical Analysis System) is a software suite developed by SAS Institute for advanced analytics, business intelligence, data management, and predictive analytics.
- Versions: 9.4
- Module names: SAS/9.4
- License: Departmental research only multi-platform license, restricted to Accounting and Finance department
- Forum support: https://www.hpc.hull.ac.uk/forum/viewforum.php?f=22
- Further information: http://www.sas.com/en_gb/home.html
Usage Examples
Interactive
[username@login01 ~]$ interactive salloc: Granted job allocation 289669 Job ID 289669 connecting to c170, please wait... Last login: Thu Jan 26 12:59:11 2017 from 10.254.5.246 [username@c170 ~]$ module add test-modules SAS/9.4
To use the full SAS GUI, make sure you have your environment setup as detailed in LINK and run sas_en:
[username@c170 ~]$ sas_en
To use the command line interactive line mode and not the GUI, run sas_en –nodms:
[username@c170 ~]$ sas_en –nodms
Some functions invoke a SAS window even in interactive line mode, for full line mode use –noterminal flag, i.e.:
[username@c170 ~]$ sas_en -nodms –noterminal
You can then run your task using a SAS script with the following command:
[username@c170 ~]$ sas_en -noteminal sas_file.sas
Batch Submission
A better approach is to submit tasks to run automatically without any interaction. To do this, you need a job submission script, an example of which is:
#!/bin/bash #SBATCH -J SASjob #SBATCH -N 1 #SBATCH -n 1 #SBATCH -o %N-%j.log #SBATCH -e %N-%j.err #SBATCH -p compute module add test-modules SAS/9.4 sas_en -cpucount 1 -nothreads -noterminal my_sas_script.sas
Details:
Line 1 - just a standard line that needs to be at the top of the file
Line 2 - the -J sets the name of the job, in this case to SASjob. This doesn’t impact on the job and doesn’t have to be unique. It helps distinguish tasks when looking in squeue (LINK)
Line 3 - this requests you are allocated 1 compute node. SAS should only be run on 1 node
Line 4 - this requests one slot on the node. As you have some tasks that make use of functions which I believe may benefit from parallel computation, we may change this (and other settings) at a later date. For now leave as 1
Line 5 and 6 - these set the output and error files. The log file will contain SAS console output, the error file will contain information that may be useful if things don’t work as expected (at a cluster level)
Line 7 - this requests the job runs on one of the compute nodes on the compute queue.
Line 8 - this provides access to the SAS software module
Line 9 - this is the run command. Note that the –memsize size should match that requested in line 8, while –cpucount should match line 4. Change the last .sas filename as appropriate
This submission script can be found at /path/to/sample/script
[username@login01 ~]$ sbatch SAStest.job Submitted batch job 289552
Tuning SAS tasks
Memory
By default the memory allocation for a SAS is 2GB. As long as the appropriate resources are requested in the job submission script (#SBATCH --mem=XXG) this can be increased as required. The value provided with the SBATCH flag should match that provided to SAS via the -memsize option (see submission script below).
cpucount and threads
By default SAS uses 1 CPU core, however certain functions can use additional resources if they are available, which may result in performance improvements. These functions include SORT, SUMMARY, MEANS, REPORT, TABULATE, and SQL. In order to make use of additional CPU cores, you should request the appropriate resource (#SBATCH -n XX) in your job submission script and amend your SAS command with the threads and cpucount flags, see below:
#!/bin/bash #SBATCH -J SASjob #SBATCH -N 1 #SBATCH -n 28 #SBATCH -o %N-%j.log #SBATCH -e %N-%j.err #SBATCH -p compute #SBATCH --mem=40G module add test-modules SAS/9.4 sas_en -memsize 40G -cpucount 28 -threads -noterminal my_sas_script.sas