Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Effiziente Nutzung der CPU's über Python Script

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   Effiziente Nutzung der CPU's über Python Script (473 mal gelesen)
  
Die Gewinne der Zukunft werden mit intelligenten, autonomen Elektrofahrzeugen eingefahren. (3DEXPERIENCE)
Achimst
Mitglied


Sehen Sie sich das Profil von Achimst an!   Senden Sie eine Private Message an Achimst  Schreiben Sie einen Gästebucheintrag für Achimst

Beiträge: 4
Registriert: 28.04.2017

erstellt am: 14. Jun. 2017 17:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Liebes Forum,

ich versuche derzeit über ein Python-Script mehrere Jobs gleichzeitig mit dem Befehl:

for i in range(n):
  mdb.jobs['job_'+str(i)].submit()


zu "submitten" und habe danach eine Schleife laufen die abfragt, ob jeder der gestarteten jobs beendet ist:

for i in range(n):
  mdb.jobs['job_'+str(i)].waitForCompletion()


Leider scheint die Grenze der maximal gleichzeitig laufenden Jobs mit 5-7 relativ klein zu sein. Denn sobald ich mehr jobs starte erscheint folgender Fehler in ABAQUS:

XML parsing failure for job job_...  Shutting down socket and terminating all further messages.  Please check the .log, .dat, .sta, or .msg files for information about the status of the job.

Weiß jemand woran das liegen könnte und wie ich meine jobs effizient auf meine 48 CPUs verteilen könnte - falls es daran liegt, dass alle jobs hier auf einer CPU laufen und es einfach zu viel für sie ist?

Liebe Grüße,
Achim

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Mustaine
Ehrenmitglied V.I.P. h.c.



Sehen Sie sich das Profil von Mustaine an!   Senden Sie eine Private Message an Mustaine  Schreiben Sie einen Gästebucheintrag für Mustaine

Beiträge: 3393
Registriert: 04.08.2005

Abaqus

erstellt am: 19. Jun. 2017 13:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Achimst 10 Unities + Antwort hilfreich

Probier erstmal was passiert, wenn du manuell mehrere Jobs nacheinander abschickst. Werden diese auf die CPUs verteilt?

Das abschicken und überwachen kann man ggf. auch ohne Abaqus-interne Kommunikation machen. Man schickt halt über ein OS-Kommando einen Job ab und überwacht dann in regelmäßigen Abständen den Output in die .log. Wenn da in der letzten Zeile was mit 'Error' oder 'Completed' steht, ist der Job fertig.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Achimst
Mitglied


Sehen Sie sich das Profil von Achimst an!   Senden Sie eine Private Message an Achimst  Schreiben Sie einen Gästebucheintrag für Achimst

Beiträge: 4
Registriert: 28.04.2017

erstellt am: 19. Jun. 2017 13:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich habe es jetzt in der Weise gelöst, dass ich input files schreiben lasse und sie jeweils mit einem neuen Command-Window aufrufe. In der Weise kann ich alle Kerne auslasten. Mein Ziel ist eine Optimierung durchzuführen. Leider füllt sich durch diese Methode mein Arbeitsspeicher mit jeder weiteren Iteration, sodass er irgendwann überläuft und das Programm abbricht. Weiß jemand, wie ich Arbeitsspeicher nach durchführung eines Jobs wieder freigeben kann?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2020 CAD.de | Impressum | Datenschutz