Эффективное распараллеливание

В PolyAnalyst Grid параметр effective_concurrency ("эффективное распараллеливание") означает число используемых процессов (потоков). Данный параметр предназначен для снижения эффективного числа ядер процессора (логических процессоров) машины.

Параметр effective_concurrency является редактируемым; пользователи могут указать его в конфигурационном файле paserver.cfg.

Данный параметр можно найти в Администраторе (на левой панели найдите вкладку Системный монитор и откройте Серверы). Число, указанное в данном параметре, влияет только на распределение задач. Задачи не обязательно выполняются одновременно, они могут чередоваться.

Как использовать эффективное распараллеливание

Ниже приведены примеры для наилучшего понимания того, как использовать эффективное распараллеливание:

  • Если значение effective_concurrency равно 8, то задачи распределяются так, как если бы работало 8 логических процессоров. Но это не значит, что будет загружено только 8 ядер: возможна загрузка всех ядер. Первой причиной этому является тот факт, что в PolyAlanyst Grid создается большее количество процессов, чем указанное в распараллеливании, точнее - в 2 раза больше. Второй причиной является наличие алгоритмов, которые распараллеливаются в одном процессе по цепочкам, и в этом случае один процесс может использовать все ядра процессора.

  • Предположим, что у нас имеется кластер, состоящий из нескольких машин с 8 ядрами и одной машины с 16 ядрами. Пользователь хочет, чтобы машина с 16 ядрами выполняла в 2 раза больше работы, но чтобы работа была распределена равномерно на все машины. В этом случае значение effective_concurrency должно быть установлено на 8.