Creating a safe parallel processing environment in SAS

I have a macro whose function is to invoke additional SAS sessions for parallel processing on our SAS server. Actually starting an extra session is just a signon statement, but quite a bit of extra code is needed to replicate our default configuration, hence the need for a macro. The server is shared by about 300 users, of whom typically no more than 10% are online at any one time.

At the moment this macro is only used in DEV, and there are no hard and fast rules restricting its use. People have used it sensibly so far, but before it can be promoted to PRD, I need to find ways to make it safer, to prevent users from accidentally destabilising the server with it. I already have some ideas for doing this, but I’d like to see if anyone can suggest any more ideas. Here’s what I’ve got so far:

  1. Run all parallel-processing sessions at the lowest possible CPU
  2. Allow each normal session to invoke a maximum of 5
    concurrent parallel-processing sessions.
  3. Allow each user to invoke a
    maximum of 10 concurrent parallel-processing sessions across all
    normal sessions.
  4. Prevent parallel-processing sessions from invoking
    further parallel-processing sessions.
  5. Run a job at
    regular intervals to suspend / kill parallel-processing sessions
    whenever the server load gets too high (or when certain important
    jobs need to run) and restore them when the server is quiet again.
  6. Disallow custom session invocation options for parallel-processing sessions.

Source: unix

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.