問題タブ [ray]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ray.tune.run_experiments でチェックポイント ディレクトリを指定する方法
ray.tune.run_experiments は、「/ray_results/test/DDPG_VAV-v0_0_2019-04-17_21-43-43ak0121vf/」のようなパスでモデルをチェックポイントします。長すぎます。このチェックポイント パスを変更するにはどうすればよいですか
「~/ray_results/test/DDPG_2019-04-17/」のように設定できればと思います
ray - Ray ヘッドノード Redis アドレスを取得
複数のノードを持つクラスターで ray を実行したいと考えています。非インタラクティブなジョブしかクラスターに送信できないため、ジョブの実行中にプログラムで redis アドレスを取得する方法がわかりません。
複数のノードでレイを開始する方法は次のようになると確信しています。
しかし、ヘッド ノードの redis アドレスを知る必要があります。ヘッド ノードを起動すると、次のように表示されます。
次のような出力をキャッチして、redis アドレスを見つけるために ing することを計画していましたが、出力の一部がキャッチされていないようでray start --head &> tee redis_port.txt
、grep
rayセッションによって作成された一時ディレクトリ内のすべてのファイルとファイルを調べましたが、何もありませんでしたそれらのいずれかを持っています。redis_address.txt
redis_address.txt
.out
.err
これを行うには、もっと良い方法があるはずです。ヘッド ノードの redis ポートを見つけるための意図された方法は何ですか?
python-3.x - Python Rayでメモリを使い果たすことなく大量のデータを並行して処理する方法は?
データの並列処理の簡単な実装に Ray を使用することを検討しています。
- ストリーム/イテレータを介して利用可能になる処理対象のデータ項目が大量にあります。各アイテムはかなりのサイズです
- 各アイテムに対して関数を実行する必要があり、かなりのサイズの結果が生成されます
- 処理されたデータは、ストリームで渡されるか、一定期間内に一定量のデータのみを受け入れることができるある種のシンクに保存される必要があります
これがRayでできることかどうかを知りたいです。
現在、pythons マルチプロセッシング ライブラリに基づく次の簡単な実装があります。
- 1 つのプロセスがストリームを読み取り、アイテムをキューに渡します。キューは k 個のアイテムの後でブロックされます (キューに必要なメモリが制限を超えないようにするため)。
- 入力キューから読み取り、アイテムを処理するワーカー プロセスがいくつかあります。処理されたアイテムは結果キューに渡されますが、これもサイズが制限されています
- 別のプロセスが結果キューを読み取り、アイテムを渡します
これにより、ワーカーがそれ以上アイテムを処理できなくなるとすぐに、キューがブロックされ、ワーカーにそれ以上の作業を渡そうとしなくなります。シンク プロセスがそれ以上アイテムを格納できない場合、結果キューがブロックされ、ワーカーがブロックされ、ライター プロセスが再び結果を書き込めるようになるまで入力キューがブロックされます。
では、Ray にはこのようなことを行うための抽象化がありますか? 特定の量の作業のみをワーカーに渡すことができるようにするにはどうすればよいですか? また、単一プロセスの出力関数のようなものを作成し、ワーカーがその関数にメモリ/ストレージは使い果たされていますか?