Veröffentlicht am :
Leistung CREATION_INTERNE

Demonstration der parallelen Ausführung von SAS/CONNECT

Dieser Code ist auch verfügbar auf: English Español Français
Dieses Programm veranschaulicht die Technik der Parallelverarbeitung, indem es zwei SAS©/CONNECT-Sitzungen (sess1 und sess2) startet. Es verwendet die Option `wait=no` in der Anweisung `rsubmit`, um zwei `DATA _NULL_`-Schritte gleichzeitig auszuführen, die jeweils eine `sleep(10)`-Anweisung enthalten. Das Skript misst die gesamte Ausführungszeit, um zu beweisen, dass die Aufgaben parallel ausgeführt wurden (Gesamtzeit < Summe der individuellen Zeiten). Hinweis: Der Code enthält explizite Referenzen auf die SAS© 9 Grid-Architektur (Metadatenoptionen, `grdsvc_enable`), die für eine native SAS© Viya 4-Umgebung angepasst werden müssten.
Datenanalyse

Type : CREATION_INTERNE


Keine externen Daten gelesen. Verwendung von Systemfunktionen (time, sleep) und Makrovariablen für die Testlogik.

1 Codeblock
OPTIONS / MACRO
Erklärung :
Definition der Metadaten-Serververbindungsoptionen (SAS 9 spezifisch) und Aktivierung des Grid-Dienstes, um parallele Übermittlungen zu ermöglichen.
Kopiert!
1options
2 metaserver='meta.demo.sas.com'
3 metaport=8561
4 metaprotocol='bridge'
5 metauser='sasdemo'
6 metapass='password'
7 metarepository='Foundation'
8 metaconnect='NONE';
9 
10%let rc=%sysfunc(grdsvc_enable(_all_, server=SASApp));
2 Codeblock
SAS/CONNECT
Erklärung :
Erfassung der Startzeit, Initialisierung der ersten Remote-Sitzung (sess1) und asynchrone Übermittlung (wait=no) einer 10-sekündigen Warteaufgabe.
Kopiert!
1%let st_tm=%SYSFUNC(time(),time.);
2SIGNON sess1;
3rsubmit sess1 wait=no;
4 DATA _null_;
5 rc=sleep(10,1);
6 RUN;
7 %put Note: Sess1 waited 10 seconds;
8endrsubmit;
3 Codeblock
SAS/CONNECT
Erklärung :
Initialisierung der zweiten Sitzung (sess2) und asynchrone Übermittlung einer zweiten identischen Warteaufgabe.
Kopiert!
1SIGNON sess2;
2rsubmit sess2 wait=no;
3 DATA _null_;
4 rc=sleep(10,1);
5 RUN;
6 %put Note: Sess2 waited 10 seconds;
7endrsubmit;
4 Codeblock
SAS/CONNECT
Erklärung :
Synchronisationsbefehl, der auf den Abschluss aller übermittelten Aufgaben wartet (waitfor), gefolgt vom Schließen der Sitzungen.
Kopiert!
1waitfor _all_;
2SIGNOFF _all_;
5 Codeblock
DATA STEP
Erklärung :
Erfassung der Endzeit und Data Step zur Berechnung und Anzeige der gesamten verstrichenen Zeit, Validierung des Parallelismus.
Kopiert!
1%let en_tm=%SYSFUNC(time(),time.) ;
2DATA _null_;
3 st_tm="&st_tm"t;
4 en_tm="&en_tm"t;
5 int=intck('seconds',st_tm,en_tm);
6 put "Interval is " int "seconds.";
7RUN;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Author: Greg Wootton Date: 04DEC2018