Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  parallelization + umat

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:   parallelization + umat (2562 mal gelesen)
DDsDDe
Mitglied



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

Beiträge: 101
Registriert: 04.02.2009

erstellt am: 15. Apr. 2009 11:15    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

Hallo,

ich hab mir eine umat geschrieben um elasto-plastisches Verhalten zu simulieren und da ich gewusst habe, dass die Problemstellungen sicher umfangreicher werden, die ich zu bearbeiten habe, einen multicore-Rechner dazubekommen.

Nur: wenn ich einen job (mit der umat) starte und dabei mehrere Prozessoren auswähle (im "Edit Job"-Fenster) kann abaqus nicht einmal ain winziges increment rechnen. Der gleiche job, mit nur einem Prozessor, läuft durch, allerdings brauchts hal seine Zeit.

Vielleicht weiss jemand Bescheid, was hier zu tun ist? Liegt das Problem bei Abaqus oder fortran?

Vielen Dank erstmals!

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

Viktor M.
Mitglied
Wissenschaftlicher Mitarbeiter


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

Beiträge: 55
Registriert: 27.10.2008

erstellt am: 15. Apr. 2009 14:16    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 DDsDDe 10 Unities + Antwort hilfreich

Hallo DDsDDe,

liefert Dir Abaqus irgendwelche Fehlermeldungen?
Es wäre sicherlich hilfreich diese Infos zur Klärung deines Problems zu haben.

MfG
Viktor

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

Nicksen
Mitglied
wissenschaftlicher Mitarbeiter


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

Beiträge: 239
Registriert: 04.05.2007

erstellt am: 15. Apr. 2009 14:36    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 DDsDDe 10 Unities + Antwort hilfreich

Ich selbst kann meine UEL (also leider keine UMAT) durchaus mit 4 oder mehr Prozessoren rechnen lassen. Da gibt es kein Problem.
Bist du denn sicher, dass du auch die notwendigen Lizenzen fuer die Parallelrechnerei hast?

------------------
==========
==  Dingsen  ==
==========

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

DDsDDe
Mitglied



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

Beiträge: 101
Registriert: 04.02.2009

erstellt am: 15. Apr. 2009 15:55    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

Hallo Viktor M. & Nicksen,

Danke für eure Nachfragen.

Ich habe dzt. ein mini-Beispiel am Laufen um meine UMAT zu testen und Probleme festzustellen. Ich habe 8 Elemente, jeweils Würfel, C3D8.

Mit 1 Prozessor läuft abaqus durch.

Mit 2 Prozessoren (DOMAIN, THREAD)

aus der *.msg:

Zitat:

Abaqus Error: Abaqus/Standard Analysis exited with an error - Please see the
message file for possible error messages if the file exists.
Abaqus/Analysis exited with errors


Auszug (Ende) aus der *.dat-Datei (das 1. iicrement wird schon auf 1/5 des Startincrements von 0.01 reduziert):

Zitat:

...
...
...
  INCREMENT    1 STARTS. ATTEMPT NUMBER  5, TIME INCREMENT  3.906E-05
...
...
...
  USING THE DIRECT SOLVER WITH  2 PROCESSORS

              CONVERGENCE CHECKS FOR EQUILIBRIUM ITERATION    4


AVERAGE FORCE                      4.617E-04  TIME AVG. FORCE      4.617E-04
LARGEST RESIDUAL FORCE            -4.771E-04  AT NODE        11  DOF  1
  INSTANCE: PART-1-1                                                                       
LARGEST INCREMENT OF DISP.        1.296E-06  AT NODE          4  DOF  2
  INSTANCE: PART-1-1                                                                       
LARGEST CORRECTION TO DISP.      -1.931E-07  AT NODE        19  DOF  2
  INSTANCE: PART-1-1                                                                       
          FORCE    EQUILIBRIUM NOT ACHIEVED WITHIN TOLERANCE.

***NOTE: THE SOLUTION APPEARS TO BE DIVERGING. CONVERGENCE IS JUDGED UNLIKELY.

***ERROR: TOO MANY ATTEMPTS MADE FOR THIS INCREMENT

    ANALYSIS SUMMARY:
    TOTAL OF          1  INCREMENTS
                      5  CUTBACKS IN AUTOMATIC INCREMENTATION
                      26  ITERATIONS INCLUDING CONTACT ITERATIONS IF PRESENT
                      26  PASSES THROUGH THE EQUATION SOLVER OF WHICH
                      26  INVOLVE MATRIX DECOMPOSITION, INCLUDING
                      0  DECOMPOSITION(S) OF THE MASS MATRIX
                      1  REORDERING OF EQUATIONS TO MINIMIZE WAVEFRONT
                      0  ADDITIONAL RESIDUAL EVALUATIONS FOR LINE SEARCHES
                      0  ADDITIONAL OPERATOR EVALUATIONS FOR LINE SEARCHES
                      0  WARNING MESSAGES DURING USER INPUT PROCESSING
                      0  WARNING MESSAGES DURING ANALYSIS
                      0  ANALYSIS WARNINGS ARE NUMERICAL PROBLEM MESSAGES
                      0  ANALYSIS WARNINGS ARE NEGATIVE EIGENVALUE MESSAGES
                      1  ERROR MESSAGES

    JOB TIME SUMMARY
      USER TIME (SEC)      =  0.22000   
      SYSTEM TIME (SEC)    =  0.11000   
      TOTAL CPU TIME (SEC) =  0.33000   
      WALLCLOCK TIME (SEC) =          0



Wenn ich 4 Prozessoren nehme, erhalte ich das gleiche Ergebnis.

Was mich jetzt (beim Test) selbst überrascht hat ist folgendes:
Wenn ich nur 1 Element (Würfel, C3D8) mit 4 Prozessoren nehme, läuft es wieder durch. Wobei ich mir nicht sicher bin ob das nicht eventuell daran liegen kann, das dieses 1 Element genau 1 Prozessor zugeordnet wird und es somit rechenbar wird?

Ausschnitt aus *.msg:

Zitat:

    INITIAL ELEMENT LOAD BALANCE
        COMPUTE NODE  1  PROCESS    NUMBER OF ELEMENTS
                              1            1
                              2            0
                              3            0
                              4            0


Kann jemand damit was anfangen?

Zur 2. Antwort:
Die Lizenzen sollte ich haben, denn sonst würde abaqus nicht starten bzw kann ich (ohne der umat-Routine) parallel rechnen.

Vielen Dank!

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

DDsDDe
Mitglied



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

Beiträge: 101
Registriert: 04.02.2009

erstellt am: 06. Mai. 2009 16:57    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

Hallo nochmals,

hat noch jemand etwas Hilfreiches beizusteuern?

Mittlerweile funktioniert das parallel-Rechnen tatsächlich, allerdings nur bis zu einem gewissen Punkt und dann bricht die Berechnung ab.

Wenn ich mit nur 1 Prozessor rechne läuft meine umat durch, deshalb denke ich, dass ich keine prinzipiellen Fehler habe.

Kann man überhaupt parallel rechnen und dabei eine umat (also fortran) verwenden? Ich denke, dass der Fehler mit dem Speicherplatz im RAM zu tun hat, dh, dass verschiedene gleichzeitig aufgerufene umats aufden gleichen Speicherplatz schreiben und sich somit gegenseitig behindern.

Was muss ich alles tun, dass jeder Speicherplatz tatsächlich nur von 1 umat besetzt und verwendet wird? Ich verwende keine common blocks (implicit none), kein "save" in den subroutinen und habe auch extra alle Variablen wie DDsDDe, stress, stran, KINC etc. die von abaqus an die umat übergeben werden, wieder neu definiert.

Vielleich hat doch noch jemand einen Lösungsansatz zu bieten? Oder die eindeutige Aussage, dass Parallelrechnen + umat einfach nicht geht?

Vielen Dank!

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

Daronin
Mitglied



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

Beiträge: 16
Registriert: 25.06.2008

erstellt am: 07. Mai. 2009 07:42    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 DDsDDe 10 Unities + Antwort hilfreich

Hallo

Also ich kann dazu nur sagen, dass meine umats problemlos auf mehreren Prozessoren laufen. Mir ist nur aufgefallen, dass ich eine Rechnung mit nur einem Element (Würfel) nicht auf mehreren Prozessoren laufen lassen kann. Ich dachte, dass liegt daran, dass Abaqus ein Element nicht aufteilen kann. Sobald ich größere Strukturen berechne, geht das immer, egal ob auf einem oder auf acht Prozessoren. Und wie gesagt ich verwende unterschiedliche Umats, alle funktionieren ohne das ich etwas verändern muss.
Liegt es bei dir eventuell am Speicher oder an den Tokens? Parallel rechnen verbraucht natürlich mehr Ram und mehr Tokens. Aber dann ist es merkwürdig, dass die Rechnung startet, aber dann abbricht.

Grüsse

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

DDsDDe
Mitglied



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

Beiträge: 101
Registriert: 04.02.2009

erstellt am: 07. Mai. 2009 10:36    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

Hallo,

mit den Tokens hats nix zu tun denn Rechnungen ohne meine umat laufen durch, auch mit mehreren Prozessoren. Ausserdem läuft sie mit der umat durch, wenn ich spezielle (einfache) Materialparameter (Neigung der lokalen Richtung zum globalen Lastangriff) eingebe.

Parallelrechnen mit 1 Element geht deshalb nicht, weil IMHOIn my humble oppinion (Meiner Meinung nach) abaqus elementsweise auf die einzelnen Prozessoren aufteilt (siehe *.msg-DAtei, bei mir ca. Zeile 95). Ich denke dass die bedeutet, dass immer die selben Elemente auf einem Prozessor laufen und nicht zB nach Integrationspunkten zusätzlich unterschieden wird.

siehe Auszug *.msg:
95    INITIAL ELEMENT LOAD BALANCE
96        COMPUTE NODE  1  PROCESS    NUMBER OF ELEMENTS
97                              1            4
98                              2            4

Weiters hat mir deine Antwort sehr geholfen da ich nun weiss dass es prinzipiel gehen sollte und es durchaus noch Sinn macht, nach einer Lösung zu suchen da vermutlich in Summe eine grössere Zeiersparnis beim Rechnen herauskommt als ich jetzt hineinstecke (ich hoffe es zumindest!!!).

Sonst noch irgendwelche Tips im Umgang mit Speicher oder so?
Meine umat hat relativ viel iterativ zu lösen, vielleicht ist dort irgendeine Stolperstelle?


Vielen Dank jedenfalls erstmals,
DDsDDe.

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

DDsDDe
Mitglied



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

Beiträge: 101
Registriert: 04.02.2009

erstellt am: 13. Mai. 2009 11:07    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

Geschafft!!!

So, ich danke für die Antworten, das Problem ist gelöst.

Ehrlicher muss ich aber zugeben, dass ich nicht genau weiss, was ich dabei mache. Ich habe die Einstellungen auf "Parallelization method: domain" und "Multiprocessing method: default" gestellt und es läuft.

lg,
DDsDDe

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)2019 CAD.de | Impressum | Datenschutz