Publicado el :

Ejecución paralela de regresiones CAS con SAS/CONNECT

Este código también está disponible en: Deutsch English Français
En espera de validación
Attention : Este código requiere privilegios de administrador.
El script comienza inicializando dos sesiones SAS©/CONNECT ('session1' y 'session2'), configurando cada una para iniciar un proceso SAS© remoto. Para cada sesión, el código envía asincrónicamente (no bloqueante) una serie de operaciones: definición de opciones CAS, conexión a un controlador CAS específico, carga de la tabla 'cars' de la biblioteca SASHELP a una tabla CAS en 'casuser', y ejecución de una acción 'simple.regression' con diferentes parámetros para cada sesión (alpha, order). Los resultados de cada regresión se guardan luego en tablas CAS temporales y se recuperan metadatos específicos a través de la acción 'table.fetch'. Una vez realizadas las submisiones, el script principal espera la finalización de ambas sesiones remotas, recupera sus respectivos registros y resultados, y luego procede a la desconexión y cierre de las sesiones SAS©/CONNECT.
Análisis de datos

Type : SASHELP


Los datos utilizados para las regresiones se basan en la tabla 'cars' de la biblioteca interna SASHELP. Esta tabla se carga en cada sesión remota a una tabla CAS ('casuser.cars') antes de ser utilizada por las acciones CAS de regresión.

1 Bloque de código
SAS/CONNECT
Explicación :
Este bloque establece dos sesiones SAS/CONNECT distintas, 'session1' y 'session2'. Cada 'signon' inicia un proceso SAS remoto, permitiendo la ejecución de código en paralelo o de manera distribuida. La opción 'sascmd' especifica el comando a ejecutar para iniciar el proceso SAS remoto.
¡Copiado!
1signon session1 sascmd="!sascmd -nosyntaxcheck -noterminal";
2signon session2 sascmd="!sascmd -nosyntaxcheck -noterminal";
3 
2 Bloque de código
DATA STEP Data
¡Copiado!
1rsubmit session1 wait=no;
2options casdatalimit=10G;
3options compress=yes;
4 
5cas host="19w47mpp-2.gtp-americas.sashq-d.openstack.sas.com"
6 port=5570
7 sessopts=(TIMEOUT=99,DQLOCALE=ENUSA);
8 
9caslib _all_ assign;
10 
11DATA casuser.cars;
12 SET sashelp.cars;
13RUN;
3 Bloque de código
PROC CAS Data
¡Copiado!
1PROC CAS;
2SESSION casauto;
3SIMPLE.regression RESULT=reg STATUS=rc /
4 alpha=0.05,
5 order=3,
6 target="mpg_highway",
7 inputs={"weight"},
8 TABLE={caslib="casuser", name="cars"};
9RUN;
10 IF (rc.severity == 0) THEN DO;
11 saveresult reg casout="reg1";
12 
13 TABLE.fetch /
14 fetchvars={
15 {name="response", label="Response"},
16 {name="regressor", label="Regressor"},
17 "intercept", "linear", "quadratic",
18 "ymean", "Ystd", "xmean" , "Xstd"},
19 TABLE="reg1",
20 index=false;
21 END;
22RUN;
23QUIT;
24endrsubmit;
4 Bloque de código
DATA STEP Data
¡Copiado!
1rsubmit session2 wait=no;
2options casdatalimit=10G;
3options compress=yes;
4 
5cas host="19w47mpp-2.gtp-americas.sashq-d.openstack.sas.com"
6 port=5570
7 sessopts=(TIMEOUT=99,DQLOCALE=ENUSA);
8 
9caslib _all_ assign;
10 
11DATA casuser.cars;
12 SET sashelp.cars;
13RUN;
5 Bloque de código
PROC CAS Data
¡Copiado!
1PROC CAS;
2SESSION casauto;
3SIMPLE.regression RESULT=reg2 STATUS=rc /
4 alpha=0.15,
5 order=2,
6 target="mpg_highway",
7 inputs={"weight"},
8 TABLE={caslib="casuser", name="cars"};
9RUN;
10 IF (rc.severity == 0) THEN DO;
11 saveresult reg2 casout="reg2";
12 
13 TABLE.fetch /
14 fetchvars={
15 {name="response", label="Response"},
16 {name="regressor", label="Regressor"},
17 "intercept", "linear", "quadratic",
18 "ymean", "Ystd", "xmean" , "Xstd"},
19 TABLE="reg2",
20 index=false;
21 END;
22 
23RUN;
24QUIT;
25 
26endrsubmit;
6 Bloque de código
SAS/CONNECT
¡Copiado!
1waitfor _all_ session1 session2;
2 
3rget session1;
4 
5rget session2;
6 
7signoff session1;
8signoff session2;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
Información de copyright : Copyright © 2021, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0