問題タブ [r-doredis]
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.
r - doRedisはどのように機能しますか?
私は、redisデータベースへのRインターフェースと、foreachのdoRedis並列バックエンドをいじってみました。このツールをより適切に適用するために、いくつか質問があります。
- doMC、doSMP、doSnowなどはすべて、同じコンピューター上でワーカープロセスを呼び出し、リストから要素と適用する関数を渡して、結果を収集することで機能しているようです。doMCの場合、ワーカーはメモリを共有します。ただし、データベースがこれと同じ機能をどのように提供できるかについては、少し混乱しています。
- doRedisジョブキューにスレーブコンピューターを追加すると(このビデオのように)、doredisデータベース全体がスレーブコンピューターに送信されますか?または、各スレーブは特定の瞬間に必要なデータ(つまり、リストの1つの要素と適用する関数)だけです。
- 追加のデータと関数をdoRedisジョブキューに明示的に渡すにはどうすればよいですか?各スレーブはその計算を実行する必要がありますか?
- doRedisとforeachを使用する場合、他の並列バックエンドに適用されない可能性のある追加の「落とし穴」はありますか?
これは多くの質問であることを私は知っていますが、並列処理がどのように機能するかについての私の限られた理解がそれを実装する私の能力を妨げている状況に遭遇しています。たとえば、最近、大規模なデータベースで計算を並列化しようとしましたが、データベース全体をクラスター上の各ノードに渡すことに気づきました。この操作により、並列化によって得られた利点が完全に失われました。
ありがとうございました!
r - Ubuntu Linux、R、およびRStudioで奇妙なソケット接続エラーが発生したdoRedis
最新のUbuntu10.0.4環境でR2.12.1を使用してdoRedisRパッケージを動作させようとしています。最新の2.15.1をダウンロードしようとしましたが、この別のバージョンがインストールされます(apt-get install ...を使用)。とにかく、doRedis.R(http://bigcomputing.com/doredis.R)から次の行を実行すると:
次のエラーが発生します:
また、Redisサーバーを実行して、問題なく接続を受け入れるのを待っています。Redis-cliクライアントに問題なく接続できました。これはすべて同じシステムに対してローカルです。これは私のWindows7で問題なく動作します。ありがとう
r - Windows で doRedis ワーカーがすぐにシャットダウンする
解決済み -- 以下をご覧ください。
Windows 7 で R を使用して doRedis 並列バックエンドを実行しようとしています。また、doRedis ビネットの最初の例を試しているときに問題が発生しています。
ここで問題が発生します。まず、2 つの R.exe プロセスが実行され、タスク マネージャーに表示されます。次に、2 つの Rterm.exe プロセスが実行され、約 250 MB のデータが読み込まれます (これは、私のライブラリからのライブラリであると予想されます)。ローカル プロジェクトの .Rprofile ファイル)、そして瞬時にシャットダウンします。
私はいくつかのチェックを実行しました:
Redis サーバーは意図したとおりに動作しているようです。次のコマンドを実行して確認できます。
実際に接続を受信しており、クライアントが接続されていることを確認します。
さらに、複数の独立した R セッションを実行し、「ジョブ」キューに登録すると機能します。つまり、次を実行します。
そして、メインの R セッションで MC の例を実行するには、次のように入力します。
宣伝どおりに動作します -- ターミナル セッションがアクティビティを報告し、メイン セッションが結果を取得します。\改行
したがって、私は助けが必要です...
...メインのRセッションによって呼び出されたワーカープロセスが即座にシャットダウンした理由を追跡します。ただし、どこから始めればよいかわかりません。この問題の可能な回避策はわかっていますが、手間のかからない方法ですべてを開始できる方がはるかに便利です.
ありがとう!
解決
問題は、コマンドによって呼び出された R プロセスstartLocalWorkers
がここでライブラリを探すことを知らなかったことです。redisWorker
ライブラリ パス リストが適切に変更された R セッションで呼び出した場合、すべて正常に機能しました。しかし、この R セッションに新しいワーカーを起動するように依頼すると、すべてが失敗します。
R_USER_LIBS
解決策は、ライブラリ フォルダーへのパスを保持する環境変数を作成することでした。それが完了すると、すべてが完全に機能します。
RStudio ユーザーは、環境変数を変更するたびに、子 R プロセスが変更済みの新しい値を読み取る前に RStudio を再起動する必要があることに注意する必要がありますR_LIBS_USER
。
r - Windows 8 x64 で異なる Redis サーバー ビルドの doRedis がエラーを返す
リンクから Redis サーバーを使用しています: http://cloud.github.com/downloads/rgl/redis/redis-2.4.6-setup-64-bit.exe with R version3.0.3, doRedis 1.1.0, rredis 1.6.8
Redis ワーカーは、ジョブを受け取るとすぐに終了します
しかし、リンクからの Redis サーバー: https://github.com/MSOpenTech/redis および cygwin のソースからビルドされた Redis サーバーでは、
ワーカーはジョブを処理できるように見えますが、マスターはエラーを受け取ります
r - Windows で doRedis パッケージ バージョン 1.0.5 を R 3.0.1 にインストールするには?
doRedis の現在の最新バージョン (1.1.0) にはバグがあり、バージョン 1.0.5 へのダウングレードが推奨されます。しかし、Windows XP の R 3.0.1 に 1.0.5 パッケージをインストールできませんでした。
私は質問の答えに従おうとしました "古いバージョンの R パッケージをインストールしています":
トーマスの答えは私にはうまくいきません:
/li>直接コンパイル ( Mark Butler の回答) - 以前にインストールしたバージョンをアンインストールした後でも、インストールした後でも機能しません
/li>devtools
:R 2.14 の古い Windows バイナリ zip ファイルを取得しようとしました。R はパッケージをインストールしますが、ロードしようとすると次のエラーが発生します。
/li>また、 asieira によって提案された
install_url
パッケージの関数を使用しようとしdevtools
ました:
古いパッケージを R 3.0.1 にインストールする方法はありますか?
編集:の出力sessionInfo()
:
r - redisWorker の redis キューにタスクを手動で追加する方法は?
redis ワーカーがタスクを実行できるように、タスクを手動で redis キューに追加することはできますか?
簡単な例として、次を使用してワーカーを起動しています。
別の R セッションで、キューを作成していて、単純な式 (例: print("hello world")
) をキューに送信して、ワーカーによって実行されるようにしたいと考えています。
私はそれを使用してそれを行う方法を知っていますforeach
:
foreach を使用せずにタスクをキューに追加できるようにしたいと考えています。その理由は、R セッションで出力を待機させたくないからです (スクリプトはその結果をディスクに書き込みます)。
.doRedis()
関数のコードに基づいて、これまでに試したことは次のとおりです。
うまくいきません。(少なくとも) 環境の定義が間違っていると思います...
どんな助けでも大歓迎です!
r - ドキュメントから doRedis の例を実行すると、TryCatch と名前のエラーが発生します
doRedis を使用して R クラスターを作成し、foreach で計算の一部を並列処理しようとしていますが、エラーが発生し続けます。私のコードは foreach %do% で動作しますが、%dopar% でクラスター上で実行しようとすると失敗します。doRedis ドキュメントのサンプル コードも実行してみましたが、これも失敗しました。以下は、メイン スクリプトとワーカーの R コンソールです。
メインの R コンソール:
ワーカー コンソール:
何がエラーの原因なのかはわかりませんが、ワーカーに送信したすべての結果がこのエラーになるようです:
これを修正する方法はありますか?
r - Rセッションで開始されたすべてのスレッドを認識して強制終了する方法
スレッドが R パッケージによって開始されることがあります (たとえば、 doRedisでは、関連コードを参照してください)。現在の R セッション内で生成されたスレッドを一覧表示し、R 内でこれらのスレッドを強制終了する方法はありますか? または、Windows タスク リストでそれらを認識して強制終了できますか?
Windows XP で Rgui を使用しています。