Umfangreiche Berechnungen in IML schneller machen - Optionen SYMSIZE, WORKSIZE - Kommando FREE

Hallo an alle,

ich habe eine Simulation in IML geschrieben, die je nach Simulationsumfang recht lange dauert. Ich möchte nun gerne die Berechnungszeit verkürzen, indem ich die Kapazitäten so effizient wie möglich zur Verfügung stellen möchte.
Nach IML-Durchläufen erscheinen bei mir im Logfile Meldungen wie "500000 workspace compresses". Ich vermute mal, ich könnte Rechenzeit einsparen, wenn diese "workspace compresses", was immer das auch genau sein mag, möglichst vermieden werden. Ich habe den Hinweis gefunden, dass man bei extrem rechenintensiven IML-Aufrufen die Optionen SYMSIZE = und WORKSIZE = benutzen kann.

Infos habe ich gefunden auf folgenden Seiten:
Letzte Seite: http://support.sas.com/publishing/pubcat/chaps/59044.pdf#5
IML-Handbuch: http://v8doc.sas.com/sashtml/iml/chap16/sect1.htm

Leider steht nirgends ein konkretes Beispiel, wie ich diese Optionen denn nun benutze. folgende Kombinationen habe ich mal ausprobiert:
symsize=5000 worksize=5000
symsize=5000 worksize=500000
symsize=5000 worksize=50000000
Das hat nichts gebracht. Ich habe keine Ahnung, in welcher Größenordnung ich die Optionen wählen soll, welche kleiner, welche größer... Ich habe mit "show space" folgende Information über mein System erhalten:

Memory Usage (in bytes):
Symbol Space Size 262128 Available 261056
Extent 1 Size 262128 Available 262104
Number of compresses = 0

Ich würde jetzt raten, dass meine Standardeinstellungen von SYMSIZE und WORKSIZE 262128 sind?
Welche SYMSIZE-WORKSIZE-Kombinationen sind denn sinnvoll bzw. führen nicht zu Problemen? Hat irgend jemand Erfahrungen mit diesen Optionen?

Ein weiterer Tip im IML-Handbuch war:
"Free matrices as they are no longer needed using the FREE command. "
Ich habe in IML mehrere Module definiert. Ich dachte immer, wenn ein Modul von IML aufgerufen wird, dann werden beim Beenden des Moduls alle im Modul definierten Variablen gelöscht. Genauso beim Verlassen von Schleifen. Sollte ich vor dem FINISH alle nicht mehr benutzten Variablen nochmal extra "free-en"? Weiß jemand, wie ich den FREE-Befehl sinnvoll verwenden könnte?

Vielen Dank für jeden Hinweis oder Tip, viele Grüße,

Tobias

SAS-Doku bzw. SAS Technical Support

Hallo Tobias,
ich kenne IML überhaupt nicht, aber die SAS-Doku bzw. den SAS Technical Support ...
Dort habe ich nach sysmsize iml gesucht
Treffer 1:
Further Notes: Memory and Workspace

Treffer 2:
Introduction to SAS/IML Software: PROC IML Statement

Ich denke, das könnte einige Fragen beantworten.

Gruß
Hans Kneilmann, Schäfer Shop GmbH (SSI)

Vielen Dank für die

Vielen Dank für die Antwort.
Ihre angegebenen Links sind die Version 9-Updates der Seiten, die ich zitiert hatte. Leider sind die SAS-Dokus dazu nicht ausführlicher geworden. Ich werde wohl mit dem üblichen Try-and-Error mal ein paar symsize-worksize-Kombinationen ausprobieren und schauen, wie die Resultate sind.
Gruß,

Tobias Hentschel

Edit: Versuch, Link einzufügen gelöscht.