iml

iml

##set_iml

Description

L'action iml.iml est votre passerelle magique pour exécuter du code SAS/IML directement au sein de CAS (Cloud Analytic Services). Parfait pour les manipulations matricielles lourdes et les algorithmes personnalisés distribués. Préparez-vous à faire chauffer les threads, mais gardez les mains sur le volant !

Syntaxe Officielle
proc cas;
iml.iml /
code="string",
display={
caseSensitive=TRUE | FALSE,
exclude=TRUE | FALSE,
excludeAll=TRUE | FALSE,
keyIsPath=TRUE | FALSE,
names={"string-1" <, "string-2", ...>},
pathType="LABEL" | "NAME",
traceNames=TRUE | FALSE
},
echoSource="ALL" | "NONE" | "PROGRAM",
nthreads=integer,
outputTables={
groupByVarsRaw=TRUE | FALSE,
includeAll=TRUE | FALSE,
names={"string-1" <, "string-2", ...>} | {key-1={casouttable-1} <, key-2={casouttable-2}, ...>},
repeated=TRUE | FALSE,
replace=TRUE | FALSE
};
run;
quit;

Paramètres Clés

Nom du paramètre Description
code Chaîne de caractères contenant le programme SAS/IML à exécuter. C'est ici que la magie opère !
display Spécifie la liste des tables de résultats à renvoyer au client pour affichage. Idéal pour ne pas se noyer sous les données.
echoSource Contrôle les informations à répercuter dans le journal (log). Valeurs possibles : 'ALL', 'NONE' ou 'PROGRAM'.
nthreads Nombre de threads à utiliser sur chaque nœud (0-128). Si 0, tous les threads disponibles sont réquisitionnés pour une puissance maximale !
outputTables Liste des noms des tables de résultats à sauvegarder en tant que tables CAS sur le serveur.

Préparation des données

Création d'une table CAS de test pour IML

Création d'une petite table de données dans CAS pour illustrer l'utilisation d'IML avec des données distribuées.

1PROC CASUTIL;
2 load DATA=sashelp.cars casout="cars" outcaslib="casuser" replace;
3RUN;
4QUIT;

Exemples d'utilisation

Exécution d'un programme IML basique

Un petit 'Hello World' matriciel pour vérifier que le moteur IML tourne à plein régime sur CAS.

1PROC CAS;
2 iml.iml / code="x = {1 2, 3 4}; print 'Matrice X:', x;";
3RUN;
4QUIT;
Résultat Attendu :
Le journal affichera la matrice X 2x2 et prouvera que votre code IML s'est exécuté avec succès dans l'environnement CAS.
Analyse IML avancée avec lecture de table CAS et sauvegarde

Ce script IML lit la table CAS 'cars', calcule la matrice de corrélation de certaines variables numériques, et sauvegarde le résultat dans une nouvelle table CAS.

1PROC CAS;
2 imlcode = "
3 call MatrixCreateFromCAS(A, 'casuser', 'cars', {'MSRP', 'Invoice', 'EngineSize', 'Cylinders', 'Horsepower', 'MPG'});
4 corr_matrix = corr(A);
5 varNames = {'MSRP', 'Invoice', 'EngineSize', 'Cylinders', 'Horsepower', 'MPG'};
6 call MatrixWriteToCAS(corr_matrix, 'casuser', 'cars_corr', varNames);
7 ";
8 iml.iml / code=imlcode nthreads=0 echoSource="PROGRAM";
9RUN;
10QUIT;
Résultat Attendu :
Calcule en parallèle la matrice de corrélation sur les variables sélectionnées et génère une table CAS 'cars_corr' contenant le résultat, tout en affichant le programme dans la log grâce à echoSource.