QGISでマルチスレッド処理を有効にしますか?


11

これがQGIS 2.2に存在すると言うように見える複数のリンクを見つけましたが、1つのコアだけをフルに使用しているようです。

これはUbuntu 14.04で実行されています

現在のプロセスは、大量の定期的なポイントを作成しています。そのプロセスに複数のコアを使用させるにはどうすればよいですか?

CPU使用率


1
これは次のリリースである2.4になると思います。ただし、試してみたい場合は、ナイトリービルドをダウンロードしてください。
マット

GILの「マルチスレッド化」により、同時コアが実行されないことをコメントする価値があるでしょう。stackoverflow.com/questions/1294382/…をご覧ください。…必要なのは「マルチプロセッシング」です。
ミスターパープル14年

回答:


6

QGIS 2.2のマルチスレッドレンダリングはありません。QGIS2.4で利用できる機能です。

QGISマスターを(毎晩)テスト用に試すことができます。その後、QGIS 2.4が2014年6月20日にリリースされる予定です


おっと、質問を誤解し、コメントから、マルチスレッド処理はQGIS開発者レベルまたはPythonプラグインコントリビューターレベルのいずれかで発生しているように見えます。

QGISに組み込まれているメニューから使用している特定のQGISツールがある場合、マルチスレッド処理を取得するよりも、QGISの開発者またはツールのルート(GDAL、SAGA、Orfeo、 GRASS、R開発者など)。

特定のプラグインがPythonの周りにコーディングされている可能性が最も高い場合、そのプラグインの貢献者またはメンテナーは、パフォーマンスを向上させるためにモジュールmultiprocessingまたはthreadingモジュールを含めることが可能かどうかを確認できます。

どちらの場合でも、機能リクエストを送信するか、既に存在するかどうかを確認するのが通常、開始するのに最適な方法です。誰かがすでに機能強化に取り組んでいるのか、それをキックスタートするためにどのリソースが必要なのかを知らせてくれます。


それは残念です...私は過去にソースから構築する問題がありました。ナイトリーのPPAを追加して、aptですべて同じようにインストールした場合、最新のナイトリーが提供されますか?安定性に関するアイデアはありますか?
jpmaniac87

@ jpmaniac87私は長い間Ubuntuを使用していません。GISをArch Linuxで動作させるので、ソースからすべてをコンパイルします。だから、UbuntuのPPAがどのようになっているか、QGIS(安定版)をQGIS(マスター)と同時にインストールできるかどうかはわかりません。
スールドン

@ jpmaniac87 この回答から、QGISバージョンがUbuntuにどのようにパッケージされているかを考えると、それは不可能かもしれない別の質問のように見えます。どちらかのように見えます。
SaultDon

PPAは機能します。安定した行をコメントアウトし、毎晩インストールしました。これは速い!しかし......それはレンダリングのために文字通り複数のスレッドを使用するだけです...私はプラグインプロセスのより多くを期待していました。プラグインの作成者は、コード内でマルチスレッド処理を許可する必要があるということでしょうか?
jpmaniac87

1
@ jpmaniac87ええ、プラグインはPythonで構築されており、Pythonにmultiprocessingor threading threading通常はqueue)で使用されるモジュールがあり、スクリプトに具体的に追加する必要があります。
スールドン

3

あなたが求めているものに依存します。処理が新しいタスクマネージャフレームワークに移植されると、アルゴリズムは(可能な場合)並行して実行できるようになります。たとえば、あるレイヤーのバッファーは、別のレイヤーで変換が行われている間に実行できます。単一のアルゴリズム内で並列化を行っている場合(たとえば、複数のスレッドを使用するバッファリング機能)、これを処理するための計画はありません。

ソース:http : //osgeo-org.1560.x6.nabble.com/Will-Processing-in-QGIS-3-support-parallelization-td5301809.html


古い回答:2015年のGoogle Summer of Codeでは、 QGIS Processingのマルチスレッドサポートが開発されました。コードは現在レビュー中であり、2016年に開発者バージョンに搭載される予定です(ソース:http : //boundlessgeo.com/2015/12/latest-developments-in-qgis-processing/

...残念ながら、このソリューションは統合できませんでした。


この問題に関する最新情報は@underdark?
リカルドバロスロウレンソ

残念ながら、ほとんどのアプリケーションでは並列化は依然として制限されています。私の理解では、PostGIS / postgresなどのデータベースインフラストラクチャを利用すると、クエリの管理がより統合され、マルチスレッド機能が向上します。
CrystallineEntity

2

一部のスレッドはQGISのコア機能に組み込まれています(たとえば、SaultDonsの回答で説明されているようにレンダリングします)が、多くの機能またはアルゴリズムは開発に応じてスレッドを組み込んでいるかどうかがあります。

プラグイン/スクリプトにスレッドを含めることを希望するpyQGISプラグイン作成者(おそらくOPを含む)については、snorfalorpagusブログでいくつかのヘルプを利用できます。

一時的なギャップとして、プロセスのスクリプトを作成し、アレクシスの回答に記載されている非同期シェルスクリプトの呼び出しで貧弱な並列プロセススキームを使用できる場合があります

他の誰かがQGISジョブを並列化するための優れたリソースを持っている場合は、自由に編集してこの回答に追加してください:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.