Attention : Ce code nécessite des droits administrateur.
Le programme commence par configurer des options globales pour la gestion des sessions RSUBMIT, permettant l'authentification automatique (`autosignon=yes`), l'exécution simultanée des tâches distantes (`noconnectwait`) et la déconnexion automatique après chaque tâche (`noconnectpersist`). Une `libname` appelée `workdir` est définie pour pointer vers le répertoire de travail de la session principale, facilitant le partage des données. Deux blocs RSUBMIT sont ensuite exécutés : l'un sur `worker1` pour analyser `sashelp.class`, l'autre sur `worker2` pour analyser `sashelp.heart`. Les résultats de `PROC MEANS` sont sauvegardés dans des jeux de données (`means_class` et `means_heart`) dans la bibliothèque `workdir`. La commande `waitfor _ALL_` assure que toutes les tâches distantes sont complétées avant que la session principale n'affiche les résultats à l'aide de `PROC PRINT`.
Analyse des données
Type : SASHELP
Les jeux de données d'entrée (`sashelp.class` et `sashelp.heart`) proviennent de la bibliothèque SASHELP, une bibliothèque standard fournie avec SAS, ne nécessitant pas de données externes spécifiques ou de création interne.
1 Bloc de code
OPTIONS
Explication : Ce bloc configure les options globales pour les sessions RSUBMIT. `autosignon=yes` permet une connexion automatique. `noconnectwait` assure l'exécution parallèle des sessions distantes. `noconnectpersist` déconnecte la session distante après son achèvement. `sascmd='!sascmd'` spécifie d'utiliser la même commande SAS pour démarrer les sessions distantes.
Explication : Ce bloc définit une bibliothèque SAS nommée `workdir` qui pointe vers le répertoire de travail temporaire de la session principale. Cela permet aux sessions RSUBMIT distantes d'accéder et de sauvegarder des données directement dans cette zone de travail, facilitant l'échange de résultats.
Copié !
libname workdir "%sysfunc(getoption(work))";
1
LIBNAME workdir "%sysfunc(getoption(work))";
3 Bloc de code
PROC MEANS
Explication : Ce bloc exécute `PROC MEANS` sur le jeu de données `sashelp.class` sur une session SAS distante ('worker1'). L'option `inheritlib=(workdir)` rend la bibliothèque `workdir` accessible à la session distante. Les résultats agrégés sont sauvegardés dans un nouveau jeu de données `workdir.means_class` sans être affichés directement (`noprint`).
Explication : Similaire au bloc précédent, ce bloc exécute `PROC MEANS` sur le jeu de données `sashelp.heart` sur une autre session SAS distante ('worker2'). Les résultats sont sauvegardés dans `workdir.means_heart`.
Explication : Cette instruction attend la fin de toutes les sessions RSUBMIT précédemment soumises avant de permettre à l'exécution du programme principal de continuer. Ceci est crucial pour s'assurer que les résultats des tâches distantes sont disponibles avant d'être traités.
Copié !
waitfor _ALL_;
1
waitfor _ALL_;
6 Bloc de code
PROC PRINT
Explication : Ce bloc affiche le contenu du jeu de données `means_class`, qui contient les résultats de `PROC MEANS` calculés sur `sashelp.class` par la session distante 'worker1'.
Copié !
title 'Output from worker1';
proc print data=means_class;
run;
1
title 'Output from worker1';
2
PROC PRINT
3
DATA=means_class;
4
RUN;
5
7 Bloc de code
PROC PRINT
Explication : Ce bloc affiche le contenu du jeu de données `means_heart`, qui contient les résultats de `PROC MEANS` calculés sur `sashelp.heart` par la session distante 'worker2'.
Copié !
title 'Output from worker2';
proc print data=means_heart;
run;
1
title 'Output from worker2';
2
PROC PRINT
3
DATA=means_heart;
4
RUN;
5
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Name: rsubmit_example.sas, Purpose: Gives an example of running PROC MEANS in parallel on two different datasets using RSUBMIT., Author: Stu Sztukowski, Parameters: N/A, Dependencies/Assumptions: SAS/STAT is licensed, SAS/CONNECT is licensed
« L'exécution parallèle avec RSUBMIT est l'une des techniques les plus efficaces pour réduire le temps de traitement des analyses massives. En distribuant les procédures PROC MEANS sur plusieurs sessions esclaves (worker1, worker2), vous exploitez pleinement les capacités multi-cœurs de votre infrastructure. Ce script illustre une architecture "Maître-Esclave" où la session principale orchestre la charge de travail sans être bloquée par l'exécution de chaque tâche. »
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.