2016-05-28 7 views
1

Ich verwende Open MPI 1.6.5, um OpenFOAM parallel auf 3 Knoten laufen zu lassen. Aus Sicherheitsgründen darf ich nur ein paar TCP-Ports öffnen. Also öffnete ich Ports 49.990-50.009 für Open MPI und stellen Sie die Werte in openmpi-mca-params.conf wie folgt:Wie kann ich den Portbereich für OpenMPI angeben?

btl_tcp_port_min_v4=49990  
btl_tcp_port_range_v4=10 
oob_tcp_static_ports=50000-50009 

Als ich mpirun lief, bekam ich eine Nachricht:

mca_oob_tcp_init: unable to create IPv4 listen socket: Unable to open a TCP socket for out-of-band communications. 

Did Ich vermisse etwas? Wie kann ich MPI so einstellen, dass eine Reihe von Ports ausgeführt wird?

Antwort

0

Der Wert oob_tcp_static_ports sollte eine durch Kommas getrennte Liste mit bestimmten zu verwendenden Ports sein, nicht mit einer Reihe von Ports. Um einen Portbereich für die OOB tcp festzulegen, weisen Sie sie stattdessen oob_tcp_dynamic_ports zu.

Beachten Sie, dass alle diese Portnummern (auch für die tcp BTL) die hörenden Sockets beeinflussen, d. H. Die eingehenden Verbindungen. Die Verbindungsinitiatorseite verwendet die Portnummer, an die das Betriebssystem den Socket bindet.

Referenz - the Open MPI user's mailing list.

+0

Hallo Hristo, ich habe den Port-Bereich zu oob_tcp_dynamic_ports = 50000-50009 zugewiesen. Wenn ich versuche, die Simulation mit dem Befehl zu starten: mpirun -np 4 --hostfile Maschinen simpleFoam -parallel. Die Simulation hängt und es gibt keine Fehlermeldung. Es scheint, dass die Kommunikation zwischen Knoten noch blockiert ist. Was sollte ich noch einstellen? –

+0

Fügen Sie der Kommandozeile 'mpiexec'' --mca btl_base_verbose 20 --mca oob_base_verbose 10' hinzu, um viele Debug-Informationen von beiden Frameworks zu erhalten, einschließlich der Adressen und Ports, die die Bibliothek verwendet. Stellen Sie außerdem sicher, dass die Firewall Verbindungen basierend auf dem Zielport und nicht auf dem Quellport filtert. Wenn der Cluster ein Hochgeschwindigkeitsnetzwerk wie InfiniBand verwendet, müssen Sie dem 'tcp' BTL übrigens keine Ports zuweisen, da dieser überhaupt nicht verwendet wird und Sie den gesamten Portbereich angeben können das 'tcp' OOB. –

+0

Hallo Hristo, danke für deine Antwort. Wie kann ich die Firewall so einstellen, dass die Verbindung basierend auf dem Zielport gefiltert wird? Ich benutze Ubuntu 14.04. –

Verwandte Themen