Инструменты, использующие параметр коэффициента параллельной обработки, разделят выполнение операции на несколько процессов.
Так, многие современные компьютеры имеют многоядерные процессоры. Распределение операции геообработки на несколько процессов может ускорить производительность, если будет использоваться не одно ядро процессора, а больше. Преимущества в производительности вследствие применения параллельной геообработки для разных инструментов могут различаться.
Примечания по использованию
- Значение этого параметра определяет число процессов, которое потребуется для выполнения операции инструментом. Эти процессы будут поделены между ядрами (процессорами) компьютера. Число ядер компьютера не зависит от этого параметра.
- Каждый инструмент, использующий данный параметр, имеет встроенное значение, установленное по умолчанию, для количества процессов на данном конкретном компьютере. Это значение можно изменять с учетом данных, операции и доступных ресурсов.
- Если вы укажете значение в процентах (используя знак %), то число процессов будет задано в процентах от числа ядер компьютера, округленного до ближайшего целочисленного. Для примера, на 4-ядерном процессоре
- при установке значения 50% операция будет разбита на 2 процесса (50% * 4 = 2).
- при установке значения 66% операция будет разбита на 3 процесса (66% * 4 = 2.64, что округляется до 3).
- при установке значения 100% операция будет разбита на 4 процесса (100% * 4 = 4).
Если при геообработке используется база данных SQL Server Express, необходимо сократить число параллельных процессов до двух.
SQL Server Express разрешает не более трех одновременных подключений. Каждый работающий ЦП требует подключения к серверу. Также, ПО, на котором работает инструмент, например, ArcGIS for Desktop, считается одним подключенным процессом, в результате для параллельной обработки остаются только два подключенных процесса.
- Если указать число процессов большее, чем количество ядер процессора, то возможно существенное падение производительности компьютера. Падение производительности в этом случае обусловлено одновременным обращением к ресурсам одного ядра сразу нескольких процессов. Для того, чтобы задать коэффициент параллельной обработки и при этом не возникало бы конкуренции между процессами, вы можете либо использовать процентное значение меньше 100%, либо указывать число процессов меньшее, чем количество ядер процессора.
Однако в тех случаях, когда все ваши процессы связаны с операциями ввода/вывода (I/O bound) данных на жесткий диск или с подключением к многопользовательской базе данных, производительность будет выше, если указать число процессов больше, чем количество ядер. Например, инструмент Добавить растры в набор данных мозаики (Add Rasters to Mosaic Dataset) является инструментом ввода/вывода (I/O bound), когда набор данных мозаики хранится в многопользовательской базе данных. Инструмент Построить обзорные изображения (Build Overviews) также является преимущественно инструментом ввода/вывода на диск/с диска. Вы можете использовать большее число процессов, чем количество ядер вашего компьютера, но для этого надо указать либо процентное значение выше 100%, либо число процессов большее, чем количество ядер вашего процессора. Например, если у вас 4-ядерный процессор и вы укажете число процессов 8 или процентное значение 200%, то операции будут разбиты на 8 процессов.
Синтаксис диалога
Коэффициент параллельной обработки (Parallel Processing Factor) – число процессов, которое потребуется для выполнения инструментом операции.
- пусто – каждый инструмент самостоятельно определяет число процессов. Это значение используется по умолчанию.
- 0 – не разбивайте операции на какое-то число процессов.
- n – используйте заданное число процессов.
- n% – вычислите число процессов с помощью заданного процентного значения: Число процессов = количество ядер процессора * 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%"