問題タブ [furrr]

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.

0 投票する
1 に答える
55 参照

r - 'future' を使用した並列 GIS

furrrの後にロードすると、マスクされrasterているという警告が表示されることに気付きました。values

それが問題であると 100% 確信しているわけではありませんが、オブジェクトを実行raster::extractするのに苦労していますsf

ちゃんと抽出できます

しかし、並列化すると (バージョン 1)、エラーが発生します。

奇妙なことの 1 つは、sp型オブジェクト (バージョン 2)で問題なく動作するように見えることです。

sfとを切り替えるだけでSpatialPointsDataFrameなく、「バージョン 1」コードを機能させるにはどうすればよいですか?

0 投票する
1 に答える
103 参照

r - 「dplyr::mutate()」を使用すると、「furrr::future_map_int()」が「purrr::map_int()」より遅いのはなぜですか?

内部にベクトルを含むリスト列を含むティブルがあります。各ベクトルの長さを説明する新しい列を作成したいと考えています。このデータセットは大きい (3M 行) ため、furrrパッケージを使用して処理時間を短縮することを考えました。ただし、purrrよりも速いようですfurrr。どうして?

問題を実証するために、まずいくつかのデータをシミュレートします。質問とは無関係なので、シミュレーション部分のコードを理解する必要はありません。


データシミュレーション機能


データをシミュレートする


の長さを占める
新しい列 ( ) を変更したい実際の問題。これを2回やります。最初に で、次に で。length_col_acol_apurrr::map_int()furrr::future_map_int()


ベンチマークする最も正確な方法ではないことはわかっtictocていますが、それでも-- (ビネットが示唆するようfurrrに)より高速であるはずですが、そうではありません。グループ化されたデータではうまく機能しないと著者が説明したため、データがグループ化されていないことを確認しました。では、より遅い (またはそれほど速くない)理由として、他にどのような説明が考えられるでしょうか?furrrfurrrpurrr


編集


この問題は、ほぼ同じ問題についてfurrr説明している の github リポジトリで見つかりました。ただし、場合は異なります。github の問題では、マップされている関数はユーザー定義関数であり、追加のパッケージを添付する必要があります。したがって、著者はfurrr、計算を行う前に、各ワーカーが必要なパッケージを添付する必要があると説明しています。対照的に、length()関数を からマッピングするbase Rので、実際にはパッケージをアタッチするオーバーヘッドはありません。

さらに、著者はplan(multisession)、RStudio で動作しなかったために問題が発生する可能性があることを示唆しています。しかし、parallellyパッケージを開発版に更新すると、この問題は解決します。

残念ながら、この更新は私の場合は何の違いもありませんでした。