並列処理ファクター環境を考慮するツールでは、複数のプロセスにまたがる処理が分割されて実行されます。
最近の多くのコンピューターは、マルチコア CPU を搭載しています。 複数のコアを使用し、ジオプロセシングの処理を複数のプロセスに分散することによって、処理性能を高速化できます。 並列処理によって得られる性能上のメリットは、ツールによって異なります。
使用上の注意
注意:
個々のツールによって、この環境の使用方法が変わる場合があります。 ツールのドキュメントを参照して、以下に示す情報に代わる情報がないかをご確認ください。
- この環境設定の値は、ツールが処理を分散する論理プロセス数を決定します。 それらの論理プロセスは、コンピューターに搭載されたハードウェア コアの間で分割されます。 ハードウェア コアの数は、この設定の影響を受けません。
- この環境設定を考慮する各ツールは、特定のコンピューターに対してデフォルト (組み込み) の論理プロセス数を持っています。 使用するデータ、操作、および使用可能なリソースに基づいて、このデフォルトを変更できます。
- % 記号を使用してパーセント値を指定した場合、使用されるプロセス数は、指定したパーセント値をコンピューター上のコア数に掛けた値を、最も近い整数に丸めた数になります。 たとえば、4 コア コンピューターで、50% を設定すると演算は 2 つのプロセス (50% * 4 = 2) に、66% を設定すると 3 つのプロセス (66% * 4 = 2.64、3 に切り上げ) に、100% を設定すると 4 つすべてのプロセス (100% * 4 = 4) に分散します。
- SQL Server Express データベースを使用してジオプロセシングを実行する場合は、制限があります。
SQL Server Express では、同時に 3 つまでの接続が可能です。 処理を行う各 CPU は、サーバーに接続する必要があります。 さらに、ツールを実行する ArcGIS Desktop などのソフトウェアも 1 つの接続プロセスとしてカウントされます。そのため、並列処理で使用可能な作業用の接続プロセスは、2 つしか残りません。
- コンピューターに搭載されたコアの数よりも多くのプロセスを指定すると、性能の低下を招きます。 これは、複数のプロセスの間で 1 つのコアのリソースが競合するためです。 この競合を回避できるように環境を指定するには、100% よりも小さいパーセント値を使用するか、コンピューター上のコアの数よりも少ないプロセス数を使用します。
ダイアログの構文
並列処理ファクター - ツールが処理を分散するプロセス数。
- 空白 (空) - 各ツールは、使用するプロセス数を決定します。 これがデフォルトです。
- 0 - 処理を複数のプロセスに分散しません。
- n - 指定したプロセス数が使用されます。 この値は、コンピューター上のプロセシング ユニットの数に制限されます。 コンピューターで使用可能なコア数より大きい値を指定した場合、並列処理インスタンスの数はコンピューターで使用可能なコア数に制限されます。
- n% - 指定したパーセンテージを使用してプロセス数が計算されます。Number of processes = number of system cores * n / 100
スクリプトの構文
arcpy.env.parallelProcessingFactor = string
パラメーター | 説明 |
---|---|
空の文字列 (空白) | 使用するプロセス数を各ツールに決定させます。 これがデフォルトです。 |
0 | 処理を複数のプロセスに分散しません。 |
n |
指定したプロセス数が使用されます。 |
n% | 指定したパーセンテージを使用してプロセス数が計算されます。プロセス数 = システム上のコア数 * n / 100 |
スクリプトの例
import arcpy
# Use half of the cores on the machine
arcpy.env.parallelProcessingFactor = "50%"