Ich versuche, einen Code auf einem alten Cluster auszuführen, auf dem ich keine Root-Berechtigungen habe. In meinem eigenen Ordner auf dem Hauptknoten habe ich eine lokale Kopie von neueren Versionen von gcc und OpenMPI installiert, mit denen ich meinen Code kompiliere. Als Versuch habe ich beschlossen, ein "Hallo Welt" -Programm zu schreiben und es auf dem Cluster laufen zu lassen. Dann lege ich diese Prozesse durch den PBS Drehmoment Job-Scheduler auf dem Cluster Wenn ich diesen Code alsCXX ABI Fehler beim Ausführen auf einem Cluster
mpic++ --std=c++11 -L/home/sidk/libraries/gcc/lib64 -o mpitrial mpitrial.cpp
kompilieren wo mpitrial.cpp
int main(int argc, char *argv[])
{
int rank=0,size=0;
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD,&size);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
cout<<"Hello from "<<rank<<" of "<<size<<endl;
MPI_Finalize();
}
ist. Jedoch kann jeder der Prozesse (die auf jedem Knoten im Cluster sein kann), wenn ausgeführt wird, senden Sie mir eine Fehlermeldung, dass:
/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /shared/users/sidk/mpitrial)
die, dass jeder der Prozesse scheint zu sagen, ist die Verknüpfung mit älteren C++ Bibliotheken (weil Die neueren Bibliotheken befinden sich in einem Ordner/home/sidk/libraries/gcc/lib64 und nicht im oben gezeigten Pfad. Auf dem Hauptknoten habe ich LD_LIBRARY_PATH aktualisiert, um auf den Speicherort der neueren C++ - Bibliotheken zu zeigen.
Kann Ihnen jemand Ratschläge geben, wie Sie dieses Problem beheben können?
Vielen Dank für Ihre Hilfe,
Siddharth
"Also habe ich eine lokale Kopie von neueren Versionen von gcc installiert" ... dann "meine Vermutung ist, dass dies daran liegt, dass jeder der Prozesse mit den alten C++ - Bibliotheken verknüpft ist".Diese beiden Aussagen widersprechen sich. Wenn Sie mit einer neuen Version von gcc kompiliert und gebaut haben, wäre die resultierende ausführbare Datei offensichtlich mit den neuen, nicht alten C++ - Bibliotheken verknüpft. Diese Frage ist verwirrend. Sie müssen es klarer machen. –
Hallo, habe es bearbeitet. Ich hoffe, es ist klarer. Ich stimme zu, dass die resultierende ausführbare Datei mit den neuen C++ - Bibliotheken verknüpft werden sollte. Wenn ich es einfach mit mpirun auf dem lokalen Rechner starte, funktioniert es, aber ich bekomme den oben erwähnten Fehler, wenn ich denselben Code über einen Job-Scheduler an den Cluster sende. –