複数のノードを持つクラスターで ray を実行したいと考えています。非インタラクティブなジョブしかクラスターに送信できないため、ジョブの実行中にプログラムで redis アドレスを取得する方法がわかりません。
複数のノードでレイを開始する方法は次のようになると確信しています。
ray start --head
for host in $(srun hostname | grep -v $(hostname)); do
ssh $host ray start --redis-address=$redis_address
done
しかし、ヘッド ノードの redis アドレスを知る必要があります。ヘッド ノードを起動すると、次のように表示されます。
Started Ray on this node. You can add additional nodes to the cluster by calling
ray start --redis-address 8.8.8.8:59465
from the node you wish to add. You can connect a driver to the cluster from Python by running
import ray
ray.init(redis_address="8.8.8.8:59465")
If you have trouble connecting from a different machine, check that your firewall is configured properly. If you wish to terminate the processes that have been started, run
次のような出力をキャッチして、redis アドレスを見つけるために ing することを計画していましたが、出力の一部がキャッチされていないようでray start --head &> tee redis_port.txt
、grep
rayセッションによって作成された一時ディレクトリ内のすべてのファイルとファイルを調べましたが、何もありませんでしたそれらのいずれかを持っています。redis_address.txt
redis_address.txt
.out
.err
これを行うには、もっと良い方法があるはずです。ヘッド ノードの redis ポートを見つけるための意図された方法は何ですか?