Ich habe bereits mehrfach gelesen, dass Excel 2007 zwar Multithreading unterstützt, dies jedoch nichts bringt, wenn ein Excel VBA Code ausgeführt wird, da dieser nur sequentiell abgearbeitet werden kann.
Ich möchte in Excel Monte-Carlo-Simulationen durchführen, bei denen die einzelnen Durchläufe voneinander völlig unabhängig sind.
Meine Idee ist folgende:
Es werden vier Excel-Anwendungen (Anwendungen, nicht Dateien! Oder in VBA-Sprache: Dim XYZ As New Excel.Application) parallel gestartet, wobei jede Anwendung 25% aller Durchläufe mittels eigenem VBA-Code abarbeitet und die Ergebnisse in einer separaten Datei abspeichert (es laufen also vier Excel-Anwendungen bzw. vier VBA-Codes gleichzeitig und unabhängig voneinander). Zum Schluss werden die in den vier Dateien abgespeicherten Daten zusammengeführt.
Meine Fragen dazu:
Können vier Excel-Applikationen gleichzeitig eigenen VBA-Code ausführen? Würde sich mit einem Vierkernprozessor die Gesamtrechenzeit durch die vorgeschlagene Architektur (annähernd) um den Faktor 4 verbessern? Falls nein, warum nicht? Oder was spricht ansonsten gegen die Umsetzung meiner Idee? Hat das schonmal jemand ausprobiert und Erfahrungen damit?
Bin noch nicht in Besitz eines Mehrkernprozessors aber überlege mir momentan die Anschaffung.
Besten Dank!
Alex |