Difference between revisions of "SAS"
Line 43: | Line 43: | ||
SAS is a mature product with a long history behind it. In a modern high-performance environment it means that additional actions need to be taken to mitigate potential issues stemming from SASs focus on filesystem I/O instead of using memory. | SAS is a mature product with a long history behind it. In a modern high-performance environment it means that additional actions need to be taken to mitigate potential issues stemming from SASs focus on filesystem I/O instead of using memory. | ||
+ | {{Note|'''For users of PHI and FERPA:''' It is particularly important to set your working directory to be in your project's PHI/FERPA configured directory in <code>/blue</code> when working with SAS. Writing files to <code>/home</code> or <code>$TMPDIR</code> could expose restricted data to unauthorized users.|warn}} | ||
===Interactive Use=== | ===Interactive Use=== | ||
See [[GUI_Programs]] to learn how to run the Graphical SAS interface for short debugging sessions. | See [[GUI_Programs]] to learn how to run the Graphical SAS interface for short debugging sessions. | ||
Line 48: | Line 49: | ||
{{#if: {{#var: conf}}|==Configuration== | {{#if: {{#var: conf}}|==Configuration== | ||
See the [[{{PAGENAME}}_Configuration]] page for {{#var: app}} configuration details.|}} | See the [[{{PAGENAME}}_Configuration]] page for {{#var: app}} configuration details.|}} | ||
− | == | + | ==SLURM Script Examples== |
− | <div class="mw-collapsible mw-collapsed" style="width: | + | <div class="mw-collapsible mw-collapsed" style="width:90%; padding: 5px; border: 1px solid gray;"> |
''Expand to view script example.'' | ''Expand to view script example.'' | ||
<div class="mw-collapsible-content" style="padding: 5px;"> | <div class="mw-collapsible-content" style="padding: 5px;"> | ||
Line 58: | Line 59: | ||
#SBATCH --output=sas_%j.out | #SBATCH --output=sas_%j.out | ||
#SBATCH --mail-type=END,FAIL #Only email summary and failure reports | #SBATCH --mail-type=END,FAIL #Only email summary and failure reports | ||
− | #SBATCH --mail-user=your_email_address | + | #SBATCH --mail-user=your_email_address # Where to send mail |
− | #SBATCH --ntasks=1 | + | #SBATCH --ntasks=1 # Run a single task |
− | #SBATCH --mem=1gb | + | #SBATCH --cpus-per-task=1 # Run on a single cpu |
− | #SBATCH --time=01:00:00 | + | # --can change this for more cores |
+ | #SBATCH --mem=1gb # Memory limit | ||
+ | #SBATCH --time=01:00:00 # Run for up to one hour | ||
date;hostname;pwd | date;hostname;pwd | ||
Latest revision as of 13:48, 15 September 2023
Description
SAS is a commercial integrated system for statistical analysis, data mining, and graphics as well as many enterprise oriented additional features. SAS cost and the breadth of SAS features means that both a significant monetary investment and a substantial time investment are required to master it. SAS 9.3 Documentation is vast. For research purposes the SAS 9.3 User's Guide is a thorough reference for the functions and procedures you may need to do the statistical analysis using SAS.
Environment Modules
Run module spider sas
to find out what environment modules are available for this application.
System Variables
- HPC_SAS_DIR - installation directory
Additional Information
Commands
SAS has a number of options:
- -nodms : This stops SAS from using its GUI capability and goes into a text only mode.
- -filelocks fail : This causes SAS to stop and print out an error when multiple sas processes try to use the same file.
- -nonews: Prevents SAS from printing a useless header to the output.
- -memsize xxxxM - specifies the total amount of memory that is available to each SAS session, and places an enforced limit on the amount of virtual memory that SAS can dynamically allocate at any one time.
- -realmemsize xxxxM - sets the recommended upper limit on working memory for procedures that can use both memory and utility disk space, such as PROC SUMMARY and PROC SORT, so that they can avoid virtual memory thrashing.
- -work $TMPDIR - the directory where SAS should store its temporary files. Using $TMPDIR will allow your program to run much faster and prevent any network-related file access issues that SAS is prone to run into.
- -sysin file : Designate a file for SAS to load as its input.
Batch Submission
To do a batch submission of a SAS script use the -sysin command line option and write all of your SAS commands in a file. In this way you can submit jobs to the batch queue system to run your jobs on the cluster.
-work directory
SAS is a mature product with a long history behind it. In a modern high-performance environment it means that additional actions need to be taken to mitigate potential issues stemming from SASs focus on filesystem I/O instead of using memory.
/blue
when working with SAS. Writing files to /home
or $TMPDIR
could expose restricted data to unauthorized users.Interactive Use
See GUI_Programs to learn how to run the Graphical SAS interface for short debugging sessions.
SLURM Script Examples
Expand to view script example.
#!/bin/bash # #SBATCH --name=sas_job #SBATCH --output=sas_%j.out #SBATCH --mail-type=END,FAIL #Only email summary and failure reports #SBATCH --mail-user=your_email_address # Where to send mail #SBATCH --ntasks=1 # Run a single task #SBATCH --cpus-per-task=1 # Run on a single cpu # --can change this for more cores #SBATCH --mem=1gb # Memory limit #SBATCH --time=01:00:00 # Run for up to one hour date;hostname;pwd module load sas sas -memsize 1024M -nodms -nonews -work $TMPDIR -filelocks none -sysin sas.inp