Hilfe – häufig gestellten Fragen

Hilfe – häufig gestellten Fragen
Copyright © trilinos.sandia.gov
For original English text, go to: http://trilinos.sandia.gov
Translated by A.Romanova

Allgemeine Fragen

  • Was ist PyTrilinos?
  • Welche Trilinos Pakete haben Python-Schnittstellen?
  • Wie soll ich PyTrilinos verwenden?
  • Wann werden Sie Paket X einzuwickeln?
  • Mit wem sollte ich mich in Verbindung setzen, wenn ich mehr Fragen darüber habe?

Voraussetzungen

  • Was sind die erforderlichen Voraussetzungen für PyTrilinos?
  • Was sind fakultative Voraussetzungen für PyTrilinos?

Konfiguration

  • Wie soll ich Trilinos konfigurieren, um die PyTrilinos Python-Verpackungen zu bilden?

Bilden und Installation PyTrilinos

  • Ich bekomme einen Kompilationsfehler, der mir erzählt, dass meine BLAS oder LAPACK Bibliothek mit einer-fPIC Auswahl kompiliert werden müssen. Was ist los dann?
  • Ich bekomme eine Menge von Kompilationsfehlern, mit einer Nachricht anfangend, dass Teuchos_any.hpp kein Match für den Betreiber hat<<. Welche ist das Problem?
  • Wenn Python-Verpackungen für NOX gebaut worden werden, gibt es einen Anruf mit einer SEHR langen Liste zu saufen, dessen schließen Dateien ein, der ohne eine Fehlermeldung stirbt. Wie kann ich das befestigen?
  • Wie installiere ich PyTrilinos?

NumPy und Numerische Fragen

  • Ich habe numpy installiert, aber das configure-Skript sagt gefehlt ist um erforderliches Modul numpy.lib. UserArray zu finden. Warum?
  • Ich habe numpy installiert, aber das configure-Skript sagt numpy/arrayobject.h. nicht gefundenen. Warum?

SWIG – Fragen

  • Ich habe eine ältere Version des Schlucks installiert. Brauche ich wirklich die neuere Version?
  • Wenn ich Schluck versuche zu installieren, bekomme ich viele Fehler, wenn ich laufe damit zu überprüfen. Ist das ein Problem?

MPI – Fragen

  • Wie soll ich PyTrilinos mit der MPI-Unterstützung  konfigurieren?
  • Wie soll ich PyTrilinos mit der MPI-Unterstützung verwenden?

Allgemeine Fragen

  • Was ist PyTrilinos?

PyTrilinos ist eine Reihe von Python-Streifbändern für ausgewählten Pakete von Trilinos. Das erlaubt Python-Programmierern, greifen auf Trilinos Klassen dynamisch aus einer Python-Schrift oder aus dem Python- Kommandozeileninterpreter zu.

Welche Trilinos Pakete haben Python-Schnittstellen?

Zurzeit, die Liste von PyTrilinos-Modulen besteht aus

  • Amesos
  • Anasazi
  • AztecOO
  • Epetra
  • EpetraExt
  • Galeri
  • IFPACK
  • Komplex
  • LOCA (abgeschaltet im Freigaben 7-10 und Entwicklungszweig)
  • ML
  • NOX (hat in der Ausgabe wiederermöglicht 8 )
  • Pliris
  • Teuchos
  • Thyra (nur Entwicklungszweig)
  • TriUtils

Wie verwende ich PyTrilinos?

Wenn PyTrilinos richtig installiert wird, dann sollten Sie im Stande sein, ein PyTrilinos Modul wie zum Beispiel Epetra mit der Python-Behauptung zu importieren

aus PyTrilinos Epetra zu importieren

Dann können Sie dir (Epetra) verwenden, um eine Liste von Klassen und Funktionen innerhalb von Epetra Namespace yu bekommen, oder Hilfe (Epetra) die Epetra Dokumentation zu bekommen. Ab Release 7.0,

aus PyTrilinos importieren *

sollte allen PyTrilinos Module importieren.

Wann werden Sie Paket X einzuwinckeln?

Wenn Sie gern haben, ein besonderes gewickeltes Paket zu sehen, eine E-Mail zu PyTrilinos Lead Developer,uns zu helfen um zu priorisieren, welche Pakete als nächstes gewickelt werden sollten.

NOX wurde bei kurzem wieder belebt, Anasazi wurde eine fungierende Python-Schnittstelle gegeben, und Pliris und Komplex wurden hinzugefügt. Unsere aktuellen Prioritäten sind, LOCA wiederzuermöglichen und Arbeitsstreifbändern für Thyra zur Verfügung zu stellen.

Mit wem sollte ich mich in Verbindung setzen, wenn ich mehr Fragen darüber habe?

Fragen, die nicht durch die Information geantwortet sind, die auf der Website vorgesehen sind, sollten zum PyTrilinos Lead Developer geleitet werden.

Voraussetzungen

Welche sind die erforderlichen Vorraussetzungen für PyTrilinos?

PyTrilinos verlangt den folgenden:

  1. Eine installierte Version der Python, Version 2.3 oder höher. Einige Pakete verlangen den Boolean Typ eingeführtet in der Python-Version 2.3, so ist das eine Voraussetzung für das ganze Paket. Realease 8.0 und der Entwicklungszweig von PyTrilinos sind befördert worden, mit der Python 2.6 vereinbar zu sein.
  2. Das NumPy Modul, das angrenzende Datenfelder zur Verfügung stellt, ist für Release 7.0 und höher und der Entwicklungszweig erforderlich. Für frühere Releases, Numeric ist erforderlich.
  3. Das Swig-Paket, Simple Wrapper Interface Generator, Version 1.3.39 oder besser, wird verwendet, um die Umhüllungen zu schaffen.
  4. Alle Trilinos Vorbedingungen, wie BLAS und LAPACK, sind auch erforderlich.

Welche sind die optionalen Vorbedingungen für PyTrilinos?

PyTrilinos kann den folgenden wahlweise verwenden:

  1. MPI. Wenn Trilinos konfiguriert wird, um MPI zu verwenden, dann wird die PyTrilinos-Schnittstelle konfiguriert, um MPI ebenso zu verwenden.
  2. Expat, ein XML Parsing- Bibliothek optional von Teuchos verwendet.
  3. HDF5, ein Dateiformat optional von EpetraExt unterstützt.
  4. Das Amesos Paket kann optional konfiguriert werden, um eine Vielfalt von Dritter Solver-Bibliotheken zu unterstützen, die auch von PyTrilinos.Amesos Modul unterstützt sind:
    • KLU
    • UMFPACK
    • ScaLAPACK
    • SuperLU
    • SuperLUDist
    • TAUCS
    • PARDISO
    • DSCPACK
    • MUMPS

Konfiguration

Wie konfiguriere ich Trilinos, um die PyTrilinos Python-Wrappers zu bauen?

Release 10.0 und Entwicklungszweiglauf cmake mit

Optionen-D Trilinos_ENABLE_PyTrilions:BOOL=ON und-D BUILD_SHARED_LIBS:BOOL=ON. Um sicherzustellen, dass alle PyTrilinos Pakete/Module ermöglicht werden, verwenden Sie-D Trilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=ON.

Release 8.0 oder 9.0: Ermöglichen Sie PyTrilinos, indem Sie Trilinos konfigurieren mit –enable-pytrilinos konfigurierende Auswahl. Wenn Sie eine spezifische Python wählen wollen, verwenden Sie –with-python=path.

Das wird Python-Wrappers für jedes Paket ermöglichen, das sowohl aktiviert wird und auch eine Python-Schnittstelle unterstützt. Wenn Sie die Python-Schnittstelle zu einem ermöglichtem Paket unbrauchbar machen möchten, können Sie – disable-pytrilinos-package verwenden, wo Paket durch den Trilinos Paket-Namen ersetzt wird.

Wenn ML aktiviert wird, wie die Voreinstellung ist, dann brauchen Sie zurzeit zu – amesos auch zu aktivieren, um PyTrilinos richtig zu kompilieren. Sie können auch –deaktivieren-ml,  wenn Sie sich dafür entscheiden.

Release 6.0 oder 7.0: Konfigurieren Sie Trilinos mit — aktivieren-Python [=path] oder –mit-Python [=path]. Diese Konfigurationsoptionen lösen Entwicklung und Kompilation des Wrapper-Codes in den individuellen Paketen aus, und verlangen nicht, um jedes besondere Paket ermöglicht zu werden.

Es ist auch möglich den Python-Wrappers für spezifische Trilinos Pakete zu aktivieren oder zu deaktivieren, verwenden –enable-package-python oder –disable-package-python, wo den Paket durch den Paket-Namen ersetzt wird.

Realease 5.0: Stellen Sie Sicher, dass Sie eine Serienversion bauen und verwenden –enable-pytrillinos Fahne. Sie müssen auch epetra, epetraext, nox und nox-epetra aktivieren. Wenn Sie ein ,,make-install” durchführen, die Python-Module werden in Verzeichnissen installiert, wo die Python-Voreinstellung auf Ihrem System, kann sie finden.

Wenn Sie angeben brauchen, wo man Swig finden kann, konfigurieren Sie mit –with-swig=path.

Wenn Sie PyTrilinos in einem Non-Standard Platz installieren möchten, verwenden Sie –prefix=PREFIX Konfigurationsoption  zu kontrollieren, wo sowohl Trilinos als auch PyTrilinos installiert sind.

Bilden und Installation PyTrilinos

Für die Trilinos Release 9.0 und früher:

Ich bekomme einen Kompilationsfehler, das sagt zu mir, dass mein BLAS oder LAPACK (oder einer anderen Dritt-) Bibliothek mit einer -fPIC Auswahl kompiliert werden müssen. Was ist los dann?

PIC steht für Position unabhängigen Code, und ist eine Voraussetzung für genutzten Bibliotheken. Ihre Drittbibliotheken müssen mit dieser Auswahl kompiliert und so geteilt verbunden werden (bemerken Sie, dass einige Betriebssysteme, wie Mac OS X – das ist, was ich darauf entwickle –create position- unabhängigen Code durch Voreinstellung, und nicht mit diesem Problem gegenüberstehen).

Ältere Versionen von PyTrilinos verlangen keine genutzten Bibliotheken, aber sie arbeiten ebenso auch nicht. Trilinos Release 7.0 verlangt, dass Trilinos Bibliotheken für die MPI-Unterstützung geteilt werden. Release 8.0 und der Entwicklungszweig verlangen auch genutzten Trilinos-Bibliotheken für Serien.

Trilinos bildet nicht seine Bibliotheken, wie freigegeben. Das PyTrilinos Paket wird zurückgehen, und alle Trilinos Bibliotheken, wie freigegeben wiederverbinden. Das ist wie ad-hoc Prozess und wird zurzeit nur für Linux und Mac OS X unterstützt. Das bedeutet, wenn Sie unter Linux oder Mac OS X kompilieren, dann müssen Ihre Drittbibliotheken geteilt werden.

Ich bekomme eine ganze Reihe von Kompilationsfehlern, fangen mit einer Nachricht an, dass Teuchos_any.hpp kein Match für den operator hat<<. Wo das Problem liegt daran?

Das ist ein bekanntes Problem verbunden mit der Python-Schnittstelle zu ML. Wenn ML aktiviert wird (welche ist die Voreinstellung), dann sollten Sie auch Amesos aktivieren (–enable-amesos), wenn Sie damit konfigurieren. Wenn Sie nicht wollen oder ML brauchen, dann konnten Sie ihn deaktivieren (–disable-ml) als eine Alternative.

Wenn die Python-Wrappers für NOX gebaut worden werden, gibt es einen Anruf zu swig mit einer SEHR langen Liste der einschließen Dateien, der ohne eine Fehlermeldung stirbt. Wie kann ich es befestigen?

Das Problem besteht darin, dass die Liste der einschließen Dateien, hat viele Duplikate darin, und die Liste ist sehr lang für Swig zu behandeln. Diese Duplikate werden abgezogen worden, wenn Sie GNU verwenden, machen und konfigurieren mit –with-gnumake.

Wie soll ich PyTrilinos installieren?

Der Befehl make-install, durchgeführt von dem obersten Build-Verzeichnis, wird PyTrilinos installieren. Geführt aus einem aktivierten Paket Build-Verzeichnis, das wird das individuelle PyTrilinos Modul installieren. Wenn Sie –prefix=PREFIX Konfigurationsoption verwendet haben, stellen Sie sicher darüber, dass Ihr PRÄFIX in Ihrer PYTHONPATH Umgebungsvariable sich befindet und das PRÄFIX/lib in Ihrer LD_LIBRARY_PATH Umgebungsvariable (DYLD_LIBRARY_PATH unter Mac OS X) es gibt.

NumPy und Numerische Fragen

Ich habe numpy installiert, aber die konfigurieren Schrift sagt

Gescheiter um erforderliches Modul numpy.lib.UserArray zu finden

Warum?

Der numpy.lib.UserArray Modul wurde zu numpy in der Version 0.9.6 hinzugefügt, so das ist eine Anzeige, dass Ihr numpy Modul zu alt ist. Sieh die Einstiegsseite von NumPy. Das wurde beim kurzem befestigt worden, und zeigt an, dass Sie eine veraltete PyTrilinos Version haben.

Ich habe numpy installiert, aber die konfigurieren Schrift sagt

numpy/arrayobject.h nicht gefunden

Warum?

NumPy wird in einem so genannten Non-Standard Platz installiert. Vor der Trilinos Release 7.0 , hat PyTrilinos nicht gewusst, wie man das auf eine tragbare Weise finden soll. Das sollte jedoch nach der Release 7.0 nicht geschehen.

Für frühere Versionen des Entwicklungszweigs, schauen Sie in PREFIX/lib/python2.x/site-packages/numpy/core/include, wo PRÄFIX sich befindet, wo Python installiert wird, und x ist Python Minor-Version. Ich pflegte eine symbolische Verbindung von einem Platz zu schaffen, den der Bearbeiter zu diesem Verzeichnis finden wird. Das sollte nur in einer alten Kopie des Entwicklungszweigs geschehen, so sollten Sie sich nur sicherstellen, dass Sie einen aktualisierten Version haben.

SWIG – Fragen

Ich habe eine ältere Version des Swigs installiert. Brauche ich wirklich die neuere Version?

Ja. SWIG (Simple Wrapper Interface Generator) ist die Maschine, die den größten Teil des PyTrilinos Codes erzeugt. Version 1.3.39 behandelt verschachtelten Pakete und Subpakete, die für PyTrilinos erforderlich ist.

Wenn ich Swig versuche zu installieren, bekomme ich eine Vielzahlt von Fehler, wenn ich führe, ‘make check’. Ist das ein Problem?

Wahrscheinlich nicht. PyTrilinos sorgt sich nur dafür, dass Swig in der Lage ist, Python-Code zu erzeugen, keine der anderen Sprachen, die Swig unterstützt. Versuchen Sie:

$ make check-python-examples
$ make check-python-test-suite

Sogar mit diesen Kontrollen sind einige Fehler wahrscheinlich nicht ein Problem.

MPI – Fragen

Wie soll ich PyTrilinos mit der MPI-Unterstützung konfigurieren?

Wenn Sie Trilinos mit der MPI-Unterstützung konfigurieren, dann können die PyTrilinos Module sowohl in Serien-als auch in parallelem verwendet werden (MPI verwendend). Parallel dazu verlangt PyTrilinos einen Standard, Out-of-the-Box Python-Dolmetschers. Bemerken Sie, die MPI-Unterstützung für PyTrilinos verlangt genutzte Bibliotheken für BLAS, LAPACK und MPI. Zurzeit ist PyTrilinos in der Parallele mit OpenMPI und LAM/MPI nur erfolgreich geprüft worden. Es gibt bekannten Fragen, die MPICH mpirun verwenden.

Für Trilinos Releases vor 7.0, könnten Sie auch genutzten Bibliotheken für die konfigurierten Trilinos Pakete brauchen (die Version Release 7.0 schafft diese genutzten Bibliotheken automatisch). Unter Linux/GCC können Sie wie folgt weitergehen. Annehmend Trilinos/LINUX_MPI ist das Installationsverzeichnis für Trilinos, machen:

$ cd Trilinos/LINUX_MPI
$ <...configure Trilinos here...>
$ make
$ make install
$ ../packages/PyTrilinos/make_shared_linux.sh

Die letzte Schrift enthält die Grundbefehle, um genutzten Bibliotheken unter LINUX/GCC zu schaffen. Dann müssen Sie den Umgebungsvariable LD_LIBRARY_PATH richtig zu setzen, zum Beispiel unter Büchse :

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${HOME}/Trilinos/LINUX_MPI/lib

Es gibt ein ähnliches Verfahren für Mac OS X, der seine eigene Schrift hat, und die anwendbare Umgebungsvariable ist DYLD_LIBRARY_PATH.

Wie soll ich PyTrilinos mit der MPI-Unterstützung verwenden?

Wenn PyTrilinos mit der MPI-Unterstützung konfiguriert wird, dann Epetra Moduls zu importieren, wird automatisch die MPI_Init ()  Funktion rufen, und veranlassen für MPI_Finalize () Funktion, um genannt zu werden, wenn die Schrift gibt da. Das sollte auf eine sichere Weise getan werden, die überprüft, dass es gesetzlich ist, jede dieser Routinen zu nennen. Zum Beispiel, wenn Sie bereits MPI_Init () via, say, mpi4py vorbrachten haben, dann Epetra zu importieren, sollte keinen Fehler erheben.

Schriften müssen einen Epetra Kommunikator verwenden. Innerhalb der Python empfehlen wir Epetra.PyComm Kommunikator, der einen Epetra_MpiComm zurückgibt, wenn PyTrilinos mit der MPI-Unterstützung und einem Epetra_SerialComm sonst kompiliert wird. Die Schrift natürlich, muss in einem “parallelen Paradigma” geschrieben werden, das den Kommunikator verwendet, um zwischen globalen und lokalen ID-Werten zu übersetzen.

Führen Sie die Schrift normalerweise durch, typischerweise voranstellen durch Skriptdurchlauf mit dem üblichen MPI Betriebsleiter:

$ mpirun -np 4 python myScript.py

Wenn PyTrilinos richtig installiert wird, sollte das dann funktionieren. Jedoch, wenn die Trilinos Bibliotheken in einem Non-Standard Platz sind, dann werden Sie das angeben müssen, indem Sie die LD_LIBRARY_PATH Umgebungsvariable (Linux) oder DYLD_LIBRARY_PATH (Mac OS X) und der Export dieser Variablen setzen mit:

$ mpirun -x LD_LIBRARY_PATH -np 4 python myScript.py

Wir haben auch ipython mit dem ipython1 Modul erfolgreich geführt, interaktiv vielfache Verarbeiter kontrollierend; haben PyTrilinos Module Parallel importiert; und haben Trilinos Gegenstände geschaffenen, manipulierten und verteilten. Setzen Sie sich mit dem PyTrilinos Lead Developer in Verbindung, wenn Sie Fragen darüber haben, oder sich für solche eine Fähigkeit interessieren.