Machine Virtuelle IDL

Publié le Publié dans Outils d'analyse et de visualisation

La Machine Virtuelle IDL (IDL VM™) est un moteur d’exécution IDL gratuit . Il fournitune méthode simple pour distribuer ou exécuter du code compilé IDL sans coût delicences ou de droits.

Les développeurs d’applications logicielles utilisent IDL de par le mondeet dans de nombreuses disciplines, pour créer et distribuer dessolutions dynamiques en terme d’analyse et visualisation de données. Entant que développeur – ou simple utilisateur d’applications IDL – vousavez besoin d’un moyen robuste et sans coût pour distribuer vos applets ou applications complètes en IDL, à des collègues ou des clients.

 La Machine Virtuelle IDL est incluse dans l’installation standard d’IDL, ou peut être téléchargée à partir du site web ITT. IDL Virtual Machine™ est disponible pour toutes les plateformes IDL supportées, incluant les systèmes d’exploitation Windows, Linux, Mac OS X et Unix. Du fait de la portabilité du code IDL, les utilisateurs peuvent écrire leurs applications et interfaces et les distribuer sur de nombreux environnements.

Limitations des applications lancées sous la Machine Virtuelle IDL :

La Machine Virtuelle IDL permet de lancer des applications compilées sous forme de fichiers .sav, sans nécessiter de license IDL. Néanmoins, quelques restrictions existent :

  • La Machine Virtuelle affiche une fenêtre d’attente au démarrage,
  • Les fichiers .sav doivent être créés en utilisant IDL version 6.0 ou supérieure
  • La Machine Virtuelle ne permet pas d’accéder à la ligne de commande IDL (pour débogger un programme par exemple)
  • L’utilisation de la fonction IDL EXECUTE est désactivée. (Dans la plupart des cas, les appels à cette fonction peuvent être remplacés par des appels aux routines CALL_FUNCTION ou CALL_PROCEDURE.)
  • Les applications IDL qui utilisent des contrôle ActiveX ne fonctionneront pas sous la Machine Virtuelle IDL.
  • La Machine Virtuelle doit être installée depuis un programme d’installation fournit par RSI. Il est interdit de modifier la distribution de la Machine Virtuelle IDL.

 

Construire et exécuter une Application avec la Machine Virtuelle IDL

Un programme compilé sous IDL 6.0 ou supérieur qui n’utilise pas la fonction EXECUTE peut être sauvegardé en tant que fichier .sav, qui pourra être exécuté par la Machine Virtuelle IDL.

Pour créer un fichier .sav à partir d’un programme IDL .pro, il suffit de suivre les étapes suivantes :

  • Considérons par exemple le programme IDL ExempleProgVM.pro suivant :
data=FINDGEN(100)
i=0
WINDOW
PLOT, data
READ, i, PROMPT= »Entre un nombre :  »
result=ExFct(data,i)
PRINT,result END

 

faisant appel à la fonction  ExFct contenue dans le fichier ExempleFonction.pro :

FUNCTION ExFct, tabin, irang

return, tabin(0:irang)

END

 

En ligne de commande IDL, le programme s’exécute grâce aux commandes suivantes :

$ idl
IDL> .compile ExempleFonction.pro
% Compiled module: EXFCT.
IDL> .r ExempleProgVM.pro
% Compiled module: $MAIN$.
IDL> exit

 

  • Pour être compatible avec la VM IDL, le programme doit être une procédure (du nom de l’exécutable appelé par la VM ou « main« ). Il faut donc modifier le programme comme suit :
PRO ExempleProgVM
data=FINDGEN(100)
i=0
WINDOW
PLOT, data
READ, i, PROMPT= »Entre un nombre : « 
result=ExFct(data,i)
PRINT,result
END

 

  •   La création du fichier .sav, ou compilation du programme IDL, se fait grâce aux commandes suivantes :
$ idl
IDL> .compile ExempleFonction.pro
% Compiled module: EXFCT.
IDL> .compile ExempleProgVM.pro
% Compiled module: EXEMPLEPROGVM.
IDL> Resolve_All
% Compiled module: RESOLVE_ALL.
% Compiled module: PATH_SEP.
% Compiled module: UNIQ.
IDL> Save, /Routines, Filename=’ExempleProgVM.sav’
IDL> exit

 

  •   L’application peut maintenant être exécutée avec la VM IDL :
$ idl -vm=ExempleProgVM.sav

 

  • Pour lancer une application IDL sur le cluster, il est nécessaire d’ouvrir une session interactive :
$ qsub -IVX

qsub: waiting for job 30030.cluster to start
qsub: job 30030.cluster ready

[Noeud1]$ idl -vm=ExempleProgVM.sav