Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Paralleles Programmieren: Exception sinnvoll abfangen?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.12.2009, 16:42 Uhr
~Wurzelkraut
Gast


Hallo,

ich weiß nicht wohin ich posten kann hier. Evtl. muss ich verschoben werden.

Ich programmiere seit kurzem Parallel auf einem Cluster mit OpenMPI.
Mir ist dabei etwas einfaches aber grundlegendes nicht ganz klar.

Wenn ich eine exceptions (C++) über throw auslöse und diese z.B. in die main hochreiche, diese exceptions aber nur auf einem Prozess ausgelöst wurde - wie kann ich dann sicherstellen dass der Error-string nur ein einziges mal auf die shell geworfen wird. mir ist klar dass wenn jeder prozess z.B. gleichen input bekommt dann gleich prüft kann man das so machen:


C++:
try {
foo(); // hier drin wird eine exceptions geworfen
} catch(std::runtime_error & ex)
{
    if(my_id == 0)
   {
          //Irgendeine ausgabe die nur von Prozess mit ID 0 ausgegeben wird
          std::cerr << ex.what() << std::endl;
    }
    MPI_Abort(...);
}



Wenn allerdings irgendwo mitten im algorithmus bzw. auf daten die jeder prozess lokal hält nur auf z.B. prozess mit ID 4 etwas passiert. muss dieser auch ein throw machen aber dann wird in dieser obigen Excpetion nicht der error-string ausgegeben und doch das programm beendet.

Wie erreiche ich denn eine ausgabe die nur einmal aber dann auch vom korrekten prozess ausgegeben wird?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.12.2009, 21:41 Uhr
0xdeadbeef
Gott
(Operator)


Äh...die Exception wurde doch nur in einen Prozess geworfen, also wird sie auch nur in einem Prozess behandelt werden. Mir ist das Problem nicht ganz klar.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: