タグ付けされた質問 「parallel-processing」

2
Arcpy並列処理環境
最近、ArcGISで並列処理環境設定を発見しました(これは10.1の新機能である必要があります)が、この環境設定を利用するために設計されているツールについては言及されていません。ESRIは、並列処理環境を設定する方法の一例を提供します。 import arcpy # Use half of the cores on the machine. arcpy.env.parallelProcessingFactor = "50%" 私の質問は非常に密接に関連しているので、同じスレッドにそれらを含めています。 どのジオプロセシングツールが並列処理環境を尊重しますか? これらはローカル設定ですか、グローバル設定ですか(つまり、Arcpyスクリプトの最初に環境を設定できますか。その後、すべての各ツールは環境設定を受け入れますか? ほとんどのジオプロセシングツールは既にarcpy.env.parallelProcessingFactor = "100%"デフォルトで設定さ れていますか?

1
ArcGIS 10.1 Pythonアドインマルチプロセッシングを使用すると、ArcMapがクラッシュしますか?
Pythonアドインツールからマルチプロセッシングタスクを実行したいと思います。私の問題は、プロセスが失敗し続けることです。基本的にArcMapをクラッシュさせます。 私の基本的なコードは次のとおりです。 def function(startOID, endOID, fc): wrksp = r"c:\temp\mp_addintest\data\test_%s.txt" % (int(startOID) + int(endOID)) # real logic removed to dumb it down with open(wrksp, 'w') as writer: writer.write("%s to %s from %s \n" % (startOID, endOID, fc)) return wrksp class btnMP(object): """Implementation for src_addin.MPButton (Button)""" def __init__(self): self.enabled = True self.checked …

3
PyQGISでのGIS操作の並列化?
GISの一般的な要件は、処理ツールを多数のファイルに適用するか、1つのファイルの多数のフィーチャのプロセスを別のファイルに適用することです。 これらの演算の多くは、計算結果がループ内の他の演算に影響を与えないという点で、恥ずかしいほど並行しています。それだけでなく、多くの場合、入力ファイルはそれぞれ異なります。 典型的な例は、シェイプファイルを、ポリゴンを含むファイルに対してクリップします。 これは、QGISのPythonスクリプトでこれを達成するための(テスト済みの)古典的な手続き型の方法です。(テストファイルを処理する時間を半分にしたよりも、実際のファイルへの一時メモリファイルの出力をfyi) import processing import os input_file="/path/to/input_file.shp" clip_polygons_file="/path/to/polygon_file.shp" output_folder="/tmp/test/" input_layer = QgsVectorLayer(input_file, "input file", "ogr") QgsMapLayerRegistry.instance().addMapLayer(input_layer) tile_layer = QgsVectorLayer(clip_polygons_file, "clip_polys", "ogr") QgsMapLayerRegistry.instance().addMapLayer(tile_layer) tile_layer_dp=input_layer.dataProvider() EPSG_code=int(tile_layer_dp.crs().authid().split(":")[1]) tile_no=0 clipping_polygons = tile_layer.getFeatures() for clipping_polygon in clipping_polygons: print "Tile no: "+str(tile_no) tile_no+=1 geom = clipping_polygon.geometry() clip_layer=QgsVectorLayer("Polygon?crs=epsg:"+str(EPSG_code)+\ "&field=id:integer&index=yes","clip_polygon", "memory") clip_layer_dp = clip_layer.dataProvider() clip_layer.startEditing() clip_layer_feature …

2
マルチプロセッシングエラー-ArcGISの実装
ここのコミュニティの他の誰かが空間分析にマルチプロセッシングを使用しようとしたのではないかと思っていました。つまり、一連のラスターを反復処理し、それぞれに対してマルチプロセッシングジョブを作成し、1つのdef関数内で多数のジオプロセシングステップを実行しようとしています。の線に沿って何か def net(RasterImage, OutFolderDir): arcpy.env.overwriteOutput = True arcpy.env.workspace = OutFolderDir DEM_Prj = DEM_Prj.tif try: arcpy.ProjectRaster_management(RasterImage, DEM_Prj.... FocalStatistics(DEM_prj....) ... if __name__ == '__main__': InputFolder = r'C:\test\somepath' Output = r'C:\test\somepath2' arcpy.env.workspace = InputFolder arcpy.env.scratchWorkspace = r'C:\test.gdb' fcs = arcpy.ListRasters('*') pool = multiprocessing.Pool(4) jobs = [] for fc in fcs: rIn = os.path.join(InputFolder,fc) …

1
OGR / GDALスレッドにより、コア使用率が低くなります
ogr / gdalを使用していくつかのラスターデータを処理しようとしていますが、マシンのすべてのコアを最大限に活用できないようです。単一のコアでのみプロセスを実行すると、そのコアの使用率が100%になります。マルチコアに分割しようとすると(以下の例では、xオフセットをチャンクしてキューに入れることにより)、8つのコアのそれぞれで哀れな使用率が得られます。各コア全体で最大100%の使用率(たとえば、各12.5%)にしかならないようです。 同じデータソースを使用することがボトルネックになるのではないかと心配していましたが、コアごとに基になるラスターファイルを複製しました... これは、ogrまたはgdalが何らかの形でボトルネックの共有リソースのように動作していると信じるようになりますが、それについてはオンラインで見つけることができません。どんな助けでも大歓迎です! これは、各ワーカースレッド内で実行される「ヘルパー」関数です。 def find_pixels_intersect_helper(datasource, bounds_wkt, x_min, x_max): bounds = ogr.CreateGeometryFromWkt(bounds_wkt) rows_to_write = [] for x_offset in range(x_min, x_max): for y_offset in range(datasource.RasterYSize): pxl_bounds_wkt = pix_to_wkt(datasource, x_offset, y_offset) pxl_bounds = ogr.CreateGeometryFromWkt(pxl_bounds_wkt) if pxl_bounds.Intersect(bounds): rows_to_write.append(['%s_%s' % (x_offset, y_offset), pxl_bounds.Centroid().ExportToWkt()])

2
ArcGISでマルチコア処理を最適化する方法
デスクトップコンピューターで利用可能なマルチコア処理能力を最大限に活用するための学習方法に興味があります。Arcは、ユーザーがバックグラウンドジオプロセシングで複数のコアを利用できると述べていますが、タスクは基本的に前のタスクが完了するまで待機する必要があります。 Arc / Pythonで並列またはマルチスレッドのジオプロセシング手法を開発した人はいますか?個々のタスクでマルチコア処理を妨げるハードウェアのボトルネックはありますか? Stackoverflowで興味深い例が見つかりましたが、これはジオプロセシングの例ではありませんが、興味を惹きました。 from multiprocessing import Pool import numpy numToFactor = 976 def isFactor(x): result = None div = (numToFactor / x) if div*x == numToFactor: result = (x,div) return result if __name__ == '__main__': pool = Pool(processes=4) possibleFactors = range(1,int(numpy.floor(numpy.sqrt(numToFactor)))+1) print 'Checking ', possibleFactors result = pool.map(isFactor, …

1
GDALは並列処理をサポートしていますか?
このコマンドに対応するプロセスを高速化したい: gdalwarp -t_srs EPSG:4326 -overwrite input.ntf output.tif GDALで並列処理を使用する方法はありますか?セミオフトピック:そうでない場合、gdalwarpのようなプロセスを高速化するために非GDALソリューションをお勧めしますか? 私が見たウェブページは次のとおりです。 GDALとQGISで並列処理を行うことはできますか? [gdal-dev] GDALラスター処理:並列計算 編集:gdalwarpの処理中にCPU%が100%を下回っていると思ったため、この質問をしました。ただし、再確認すると、555.5%に達しました。

5
python.multiprocessingと「致命的なエラー(INFADI)MISSING DIRECTORY」
arcpyでマルチプロセッシングを実行しようとしているときに、時々このエラーに遭遇します: FATAL ERROR (INFADI) MISSING DIRECTORY 私はこのエラーを引き起こしている原因を知りません、そしてそれはpythonプロセスをクラッシュさせ、トレースバックを取得することを不可能にします。これは、長いサウンドモデルから最終的なラスター出力を書き込むときに発生します。 エラーが発生する場合があります Unable to write BND file for %TEMP%\ras#### ここで、%Tempは解析された相関性で、####はランダムな4桁の数字です。各プロセスには独自のワークスペースがあり、ほとんどのファイルを書き込む必要があるため、これは異常です。 問題は入力データではありません...失敗した入力でプログラムを再実行すると、正しく実行されます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.