2017-04-07 4 views
0

Unterstützt Charm ++ Dateibehandlung? Ich meine, können wir die Dateioperation (lesen/schreiben) in Charm ++ durchführen? Wenn ja, geben Sie bitte ein einfaches Beispiel für die Handhabung von Dateien zum besseren Verständnis.Datei-Handling-Unterstützung in Charm ++

Antwort

0

Sie können jede Art von Datei-E/A in Charm ++ machen, obwohl Sie möglicherweise sorgfältig darauf achten müssen, parallele Dateizugriffe korrekt zu synchronisieren (wenn Sie parallele E/A, sagen wir von allen Elementen eines Chare-Arrays). Die Optionen zum Ausführen von E/A sind im Wesentlichen:

1) I/O von einem dedizierten Objekt. Sie können Daten zu und von diesem Objekt reduzieren und übertragen und eine beliebige serielle I/O-Methode verwenden. Da Charm ++ auf einem meldungsgesteuerten Ausführungsparadigma basiert, wird das E/A-Objekt nur dann eingeplant, wenn es tatsächlich zu tun hat.

2) I/O von allen Objekten ausführen. Sie können die integrierte asynchrone Parallel-E/A-Bibliothek "CkIO" von Charm ++ direkt aus Chare-Array-Elementen verwenden oder Sie können MPI-IO, HDF5 oder eine andere gewünschte parallele E/A-Bibliothek verwenden. Um Letzteres zu erreichen, müssen Sie die MPI-Interoperabilitätsfunktionen von Charm ++ verwenden und die E/A von Charm ++ "Group" oder "Node Group" ausführen, so dass pro PE oder Knoten ein I/O-Actor vorhanden ist.

Natürlich können Sie auch I/O aus einer Teilmenge aller Objekte ausführen, und Sie haben die Wahl, eine einzelne globale Datei oder eine Datei pro PE/Knoten zu verwenden.

Um ein Beispiel für die Verwendung von CkIO zu sehen, sehen Sie sich in der Charm ++ - Quelle test/charm ++/io/an. Ein Beispiel für MPI-Interop ist in examples/charm ++/mpi-coexist /.

Verwandte Themen