2017-05-16 5 views
1

Auf Matlab, baute ich eine parallele Pool-Konstante aus einer Zelle (Größe ist 55x1), die große Matrix enthält, und es dauerte 5 Minuten. Wenn ich den Code nicht verwende, wird der parallele Pool geschlossen und ich verliere meine parallele Pool-Konstante.parallele Pool-Konstante auf Matlab

Meine Frage ist, wenn es möglich ist, es wie eine Variable zu laden, die gespeichert und dann für eine andere Verwendung importiert wird, so muss ich es nicht jedes Mal erstellen und 5 Minuten warten (Ich versuchte mit Speichern und Laden, aber es scheint Die parallele Pool-Konstante ist ungültig.

Antwort

2

Standardmäßig wird MATLAB Parallel Pool nach 30 Minuten Leerlauf automatisch heruntergefahren. Wenn Sie mit

>> p = parpool(2) 

einen parallelen Pool erstellen, können Sie die verbleibende Zeit mit

>> p.IdleTimeout 

ans = 

    30 

sehen, was bedeutet, haben Sie 30 Minuten vor Schluss. Sie können diese Zeit erhöhen, damit der MATLAB-Pool nicht zu schnell heruntergefahren wird. Es gibt mehrere Möglichkeiten:

  1. Wenn Sie bereits auf den Pool erstellt haben, können Sie die verbleibende Zeit ändern, indem p.IdleTimeout auf den entsprechenden Wert einstellen, zum Beispiel

    p.IdleTimeout = 60 
    
  2. Wenn Sie einen neuen parallelen Pool erstellen, können Sie das Timeout angeben direkt

    p = parpool(2, 'IdleTimeout', 90) 
    
  3. Die Standardoption in den Einstellungen festgelegt werden kann, wie in den MATLAB documentation beschrieben.

Sie können eine beliebige Zeit in Minuten angeben, z. 60 Minuten oder noch länger, z.B. 8h = 480 Minuten für einen ganzen Arbeitstag. Sie können auch 'IdleTimeout' als inf, d. H. Unendlich, angeben. Das bedeutet, dass der Pool nicht automatisch heruntergefahren wird, und Sie müssen das manuell tun, indem Sie delete(p) aufrufen. In der GUI können Sie das gleiche tun, indem Sie das entsprechende Häkchen im Kontrollkästchen entfernen.

+0

danke für deine hilfe :) – ransa