On the topic of whether SAS 9 code will need to be changed to run on Viya, BASUG is hosting a free webinar that will address this on April 19. You can register at www.basug.org/events. It's from the SAS Ask The Expert series, so if you want to watch a recorded version it's probably available there (along with other SAS 9/ Viya recordings). https://www.sas.com/en_us/learn/ask-the-expert-webinars.html. We're excited that Stacey will be presenting it for BASUG live, and will have time for live Q&A.
As a programmer, one interesting piece is if your DATA step runs on Viya on CAS, it will run multi-threaded. This has interesting implications for things like the RETAIN statement, LAG, and (I think) the END= option on a SET statement. RETAIN will retain values, within the batch of records read by each thread.
I think familiar code like:
data want;
set have end=eof;
if eof;
run;
would result in multiple records being output, because each thread would end eof=1 for the last record read by that thread. (I haven't tested this, I don't have CAS. I could be wrong).
There is good documentation on DATA step processing in CAS:
https://documentation.sas.com/doc/en/pgmsascdc/v_037/casdspgm/p0ujjmynr82tfsn1pyp475bhvaib.htm#n1ais...
After so many years of the DATA step having a single PDV and iterating through a dataset, I think it will be critical for SAS 9 programmers to understand the implications of the change to a multiple-threaded DATA step. I haven't played in CAS much, but my current working model is that each thread gets its own PDV.
There are ways in Viya to specify that a DATA step run on a SAS 9 compute server, or run on CAS single-threaded.
The Boston Area SAS Users Group is hosting
free webinars!
Next up:
Troy Martin Hughes presents Calling Open-Source Python Functions within SAS PROC FCMP: A Google Maps API Geocoding Adventure on Wednesday April 23.
Register now at
https://www.basug.org/events.