FAQ - IBM-SP

Ich kann mich nicht auf der IBM SP einloggen. Was kann ich tun?

Um sich auf der IBM RS/6000 SP einloggen zu können, benötigen Sie eine gültige Benutzernummer und das zugehörige Passwort. Die Verbindung zur IBM SP sollten Sie immer mit der Secure Shell herstellen. Auf einem Unix System geben Sie dazu das Kommando:

"ssh user-idYpm8∂sp-smp rz uni-karlsruhe de"

ein, wobei user-id Ihre Benutzernummer auf der IBM SP ist.
Falls kein Verbindungsaufbau zur IBM SP möglich ist, können Sie mit den Programmen ping oder traceroute feststellen, ob eine Netzstörung für dieses Problem verantwortlich ist. Wenn eine Betriebsunterbrechung auf der IBM SP vorliegt, können Sie dies i.a. über die Wartungsseite des SCC des KIT erfahren.

Trotz .shosts Datei ist die Angabe eines Passwortes erforderlich. Woran kann das liegen?

Das Login auf der IBM SP beinhaltet ein dce_login, um z.B. auf das DFS ($HOME) zugreifen zu können. Für die Authentifizierung im DCE ist jedoch die Angabe eines Passwortes erforderlich. Eine .shosts Datei im $HOME-Verzeichnis reicht dazu nicht aus.

Ich kann keine X11 Applikationen starten. Woran liegt das?

Wenn keine X11 Applikationen gestartet werden können, liegt dies i.a. daran, daß die auf X11 basierende Applikation auf der SP keine Berechtigung hat, ein Fenster auf Ihrem Arbeitsplatzrechner zu öffnen. Bei dem Verbindungsaufbau mit der ssh werden alle für die Benutzung von X11 Anwendungen notwendigen Vorkehrungen getroffen. Wichtig ist jedoch, dass die Umgebungsvariable DISPLAY  nicht verändert wird. Mit dem Kommando:

"echo $DISPLAY"

können Sie den aktuellen Wert dieser Umgebungsvariablen ausgeben. Er sollte von der Form pxxx:yy.0 sein, wobei pxxx den SP-Knoten bezeichnet, auf dem Ihre interaktive Sitzung läuft. Falls die DISPLAY-Variable einen anderen Wert hat, ist dieser Wert innerhalb Ihrer Dialogsitzung verändert worden.  Überprüfen Sie deshalb z.B. die Dateien $HOME/.profile, $HOME/.kshrc bzw. $HOME/cshrc, ob dort die Variable DISPLAY neu gesetzt wird.

Warum erhalte ich die Fehlermeldung, dass angeblich zu wenig Speicher verfügbar ist?

Die Fehlermeldung  'There is not enough memory available now.' wird immer dann ausgegeben, wenn ein Programm einen Datenbereich benutzt, der größer als 128 MB bzw. 256 MB ist, jedoch beim 'Linken' des Programms die Option -bmaxdata nicht angegeben wurde. Die Syntax dieser Option lautet:

"-bmaxdata:groesse"

wobei "groesse" die maximale Größe des Datensegments in Einheiten von Bytes ist und sowohl dezimal, als auch oktal oder hexadezimal angegeben werden kann. Mit "bmaxdata" wird eine Obergrenze für den maximal benutzbaren Speicherbereich festgelegt. Während der Programmausführung muss aber nur der wirklich benutzte Speicherplatz vorhanden sein. Deshalb sollte man in dieser Option i.a. ein großzügige Abschätzung für den benötigten Speicherplatz verwenden. Der gesamte mit "bmaxdata" definierte Speicherbereich muss jedoch als Swap-Space verfügbar sein.

Um also ein Programm zu erstellen, das ca. 300 MB Speicherplatz für Daten benötigt, kann man als maximalen Speicherplatzbedarf z.B. ca 350 MB angeben (zusätzlicher Speicherplatz für Ein-/Ausgabe- und Kommunikationspuffer etc):

"mpxlf my_prog.f mysub.f -bmaxdata:350000000 -o my_prog"

Warum erhalte ich die Fehlermeldung: Programmabbruch mit "segmentation fault"?

Diese Fehlermeldung kann darauf hindeuten, dass der Stack, in dem z.B. die "automatic arrays" eines Fortran Programms angelegt werden, zu klein ist. In diesem Fall kann beim Fortran Compiler die Option -qsave verwendet werden, so dass alle lokalen Größen eines Unterprogramms in das Datensegment gelegt werden. Alternativ dazu kann der Stack mit der Option -bmaxstack vergrößert werden.

Jobs im Pool general warten sehr lange, bis sie gestartet werden. Woran kann das liegen?

Der "general pool" umfaßt 44 Knoten mit jeweils 256 MB und 8 Knoten mit jeweils 2 GB Hauptspeicher. Dieser Pool wird sowohl für serielle als auch für parallele Anwendungen genutzt. Insbesondere die Knoten mit 2 GB Hauptspeicher werden sehr intensiv von großen seriellen Applikationen belegt. Jobs, die mehr als 250 MB  und weniger als 500 MB Hauptspeicher benötigen, sollten deshalb, falls Sie nicht auf das größere lokale Dateisystem der 2GB-Knoten angewiesen sind, im Productionspool ausgeführt werden. Dazu ist beim job_submit die Option -c p anstatt -c g anzugeben.

Große parallele Jobs, die z.B. 32 oder mehr Knoten belegen, haben ebenfalls im Productionspool eine größere Chance, früher gestartet zu werden, da dort 103 Knoten verfügbar sind.

Woran kann es liegen, wenn VampirTrace mit einer Fehlermeldung abbricht?

Vor der Ausführung eines Programms, das die VampirTrace Library benutzt, müssen in einem Initialisierungsskript einige Umgebungsvariable für den Licensemanager gesetzt werden. Benutzer der ksh können dazu das Kommando:

". vampirtrace.ksh"

Benutzer der csh oder tcsh sollten das Kommando:

"source vampirtrace.csh"

entweder innerhalb des Batchjobs, der die Programmausführung beinhaltet, oder vor dem job_submit verwenden.

Wie erkenne ich, von welcher Task eine Meldung ausgegeben wurde?

Wenn beim Aufruf eines parallelen Programms die Option -labelio yes bzw. die Umgebungsvariable MP_LABELIO=yes gesetzt ist, wird jeder Meldung, die über stdout oder stderr ausgegeben wird, die jeweilige Task-Id vorangestellt, so dass problemlos festzustellen ist, welche Task z.B. eine Fehlermeldung verursacht hat.