QGISのコア機能はマルチスレッドを利用しますか?


10

QGISでマルチスレッド処理を有効にするを読んだ後、さまざまなプロセスを実行するときにQGIS 2.6にこれが含まれるかどうか疑問に思っていました。オンラインで確認したところ、QGIS 2.4にマルチスレッドレンダリングが導入されていることだけがわかりました(2.6でも利用できると思います)。特に大規模なデータセットを扱う場合、マップを非常にすばやく再描画できるようになりました。

コア機能にマルチスレッディングを含めるのはかなり難しいことと、PyQGISでのGIS操作の並列化などでPythonコードを操作してこれを実現することをユーザーに勧めていることを読みました。

機能のリクエストも確認しましたが、Tim Suttonによって9か月間閉鎖されており、最後のコメントは次のとおりです。

「私はこれを締めくくっています-Martin DobiasはQGIS 2.2の後にマージされるブランチでの実装を持っています」

QGIS 2.6の一部の機能はマルチスレッドを利用しますか(または再びレンダリングに焦点を当てます)、そうでない場合、QGIS 3.0で変更されますか?


マルチスレッディングは、ストリーム指向、シンプル、I / Oバウンドになる傾向があるGISタスクの大部分には特に適していません。結果を結合することの難しさは、通常、結果を独立してキューに入れる努力に値するものではありません(単純なタスクをすぐに実行すること)。したがって、「エクスプロイト」の定義は重要な議論の対象となっています。
Vince

@Vince-ありがとう、私はマルチスレッドが多くのユースケースの最優先事項ではないことを理解しています。しかし、これを達成するためのいくつかの作業はすでに行われているので、これに対するサポート(「エクスプロイト」よりも良い用語かもしれません)が新しいQGISバージョンに存在するかどうか疑問に思っていました=)
Joseph

1
@PolyGeo-ありがとう、公平な点、そしてこのQ / Aフォーマットに非常に適している点。同意します:)
Joseph

回答:


3

QGIS 3.0の答えは、Nabbleに投稿されたこの最近の会話にあると思います。

QGIS 3の処理は並列化をサポートしますか?

Nyall Dawsonの引用:

単一のアルゴリズム(たとえば、複数のスレッドを使用するバッファリング機能)内で並列化た後の場合、これを処理するための適切な計画がありません。


いい発見!私はあなたが引用したものに続く引用と少し混乱していますが、「マルチスレッドアルゴリズムを取得するための素敵で(理論的には)簡単な方法であり、既存の多くのアルゴリズムをこれに適応させるのは簡単です(バッファ、セントロイド、変換、変換、 ....基本的に、各機能を個別に操作するものすべて)。とにかく、ほとんどのアルゴリズムは各機能で個別に動作するので、手動で個別の機能を選択しないと、アルゴリズムがすべての機能を自動的に処理します。
ジョセフ

あなたが引用した引用は、(新しい出力を生成するのではなく)レイヤーで直接編集する可能性に関するものだと思います:実際、以下では現在のレイヤーで直接バッファー操作を実行する可能性について話しています、返された出力をさらに処理することなく。
mgri

1
うーん良い点。QGIS開発者もコメントしてこれを確認できることを願っています:)
Joseph

2
GIS SEはディスカッションサイトではありません。特定のプロバイダーからの応答が必要な場合は、直接照会することをお勧めします。
Vince

1
@joseph個々のフィーチャを操作できない多くのアルゴリズム(ラインの交差の計算やフィーチャのディゾルブなど)があります。
アンダーダーク

4

この時点でのみレンダリング(QGIS 2.6)。

マーティンと私はある種の一般的なスレッドプロセスAPIについて話しましたが、それは現時点では単なる話し合いです。


1
ネイサンに感謝します。個人的に、このベンチャーは追求する価値があると思いますか、それとも優先度が高いと考えられる機能を追加/改善していますか?これは好奇心から抜け出せません:)
ジョセフ

追求する価値はありますが、簡単な作業だとは思いません。
Nathan W
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.