Параллельные вычисления в задачах геообработки

В ArcGIS 10.1 Service Pack 1 появилось то, чего так долго ждали — возможность разделения вычислительных задач на несколько параллельных процессов. Поддержка многозадачности (возможности параллельного выполнения нескольких задач) была доступна ранее за счет использования Backgound Processing. Но при запуске отдельного инструмента геообработки ArcGIS создавался только один процесс, который мог использовать вычислительные возможности одного ядра. Это ограничение не позволяло использовать весь потенциал современных многоядерных процессоров.

На данный момент параллельные вычисления поддерживает только часть инструментов ArcToolbox. Это прежде всего инструменты модуля Geostatistical Analyst. Также возможность разделения задачи между несколькими процессами поддерживает часть набора инструментов Rasters. В дальнейшем этот список наверняка будет расширяться.

В свойствах Среды Геообработки (Evironment Settings) появился новый элемент — Parallel Processing. С помощью этого параметра можно задать количество ядер, которые будут задействованы при вычислениях. Можно указать количество ядер как число, можно указать уровень загрузки ядер в процентах. Если у процессора 4 физических или виртуальных ядра, то значение параметра 50% будет означать, что при вычислениях будет использоваться 2 ядра. Если этот параметр не указан, то количество задействованных ядер определяется автоматически.

Нужно учитывать, что увеличение количества задействованных ядер далеко не всегда будет приводить к кратному росту скорости выполнения задачи. Часто «бутылочным горлышком» является не скорость обработки данных ядром, а производительность дисковой системы. Также надо учитывать, что каждый параллельный процесс будет использовать определенное количество оперативной памяти. В случае, если она закончится, операционная система начнет использовать в качестве оперативной памяти свободное пространство на жестком диске, что приведет к существенному падению общей производительности системы.