Расчет минимального времени выполнения задач при...

16
Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами Андрей Карпов, февраль 2008

Upload: sergey-vasilyev

Post on 16-Aug-2015

8 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между

процессорами

Андрей Карпов, февраль 2008

Page 2: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

Аннотация В статье кратко рассмотрены методы расчета минимального времени выполнения задач при оптимальном

распределении нагрузки между процессорами. Приведенные методы могут применяться для однородных и

неоднородных вычислительных систем.

Читателю Данный документ является частью серии статей, посвященных вопросам создания качественных и

эффективных программных решений для современных 64-битных многоядерных систем. Ознакомиться с

другими статьями вы можете на сайте http://www.viva64.com.

Page 3: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

Введение Несмотря на огромную вычислительную мощность современных компьютеров, существуют задачи, решение

которых в последовательном режиме занимает много времени. Время решения подобных задач можно

существенно сократить, если использовать для расчётов возможности современных многоядерных

процессоров. Для того, чтобы в полной мере использовать преимущества, предоставляемые

многоядерностью, необходимо переработать алгоритмы решения задач с учётом возможности параллельной

обработки данных несколькими процессорами одновременно. Не менее важно распределить вычисления

таким образом, чтобы каждый процессор использовался наиболее полно, а суммарное время решения задачи

стремилось к минимуму. В статье обзорно рассмотрены методы расчета минимального времени выполнения

задач при их оптимальном распределении между вычислительными узлами. Учтены ситуации, когда на одной

системе выполняются несколько параллельных задач, занимая часть ресурсов вычислительных узлов. В этом

случае система считается гетерогенной (неоднородной), по отношению к интересующей нас программе.

Page 4: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

1. Независимые вычисления одинаковой трудности на гомогенных вычислительных

узлах Пусть имеется N независимых вычислений одинаковой трудности. Необходимо распределить их между P

процессорами, которые имеют одинаковую вычислительную мощность (рисунок 1).

Естественным решением этой задачи является назначение каждому процессору вычислений.

Рисунок 1. Распределение независимых вычислений одинаковой трудности на гомогенных вычислительных

узлах.

Page 5: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

Однако данное решение приемлемо только в том случае, если N делится на P без остатка . В

противном случае, остается от 1 до неназначенных вычислений. Будет ошибкой назначить все оставшиеся

вычисления какому-либо одному процессору, так как в этом случае время окончания всех вычислений будет

равно . Правильнее распределить оставшиеся вычисления по одному на каждый из

процессоров. При этом время окончания всех вычислений будет равно . Очевидно,

что , поэтому второй способ может оказаться значительно выгоднее.

Page 6: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

2. Независимые вычисления одинаковой трудности на гетерогенных

вычислительных узлах Пусть имеется N независимых вычислений одинаковой трудности. Необходимо распределить их между P

процессорами, которые имеют различные вычислительные мощности (рисунок 2).

Рисунок 2. Распределение независимых вычислений одинаковой трудности на гетерогенных вычислительных

узлах.

Page 7: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

Время, затрачиваемое процессором с вычислительной мощностью на выполнение одного вычисления

равно . Таким образом, необходимо разбить вычисления на P групп по вычислений в каждой так,

чтобы время окончания всех вычислений было минимально, т.е.:

Page 8: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

3. Независимые вычисления различной трудности на гомогенных вычислительных

узлах

Пусть имеется N независимых вычислений различной трудности . Необходимо распределить их

между P процессорами, которые имеют одинаковую вычислительную мощность (рисунок 3).

Рисунок 3. Распределение независимых вычислений различной трудности на гомогенных вычислительных

узлах.

Page 9: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

Чтобы время окончания всех вычислений было минимальным, необходимо, чтобы все P процессоров были

загружены наиболее равномерно, то есть каждому из процессоров было назначены вычисления примерно

одинакового объёма.

Таким образом задача сводится к следующему: необходимо разбить вычисления на P групп по вычислений

в каждой , так чтобы:

где — трудность j-го вычисления в -й группе.

Page 10: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

4. Независимые вычисления различной трудности на гетерогенных вычислительных

узлах

Пусть имеется N независимых вычислений различной трудности (рисунок 4).

Рисунок 4. Распределение независимых вычислений различной трудности на гетерогенных вычислительных

узлах.

Page 11: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

Время, затрачиваемое процессором с вычислительной мощностью на выполнение одного вычисления

сложностью равно Чтобы время окончания всех вычислений было минимальным, необходимо, чтобы

все процессоры закончили вычисления примерно в одно и то же время.

Таким образом, задача сводится к следующему: необходимо разбить вычисления на P групп по вычислений

в каждой , так чтобы:

где — трудность j-го вычисления в -й группе.

Page 12: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

5. Зависимые вычисления одинаковой трудности на гомогенных вычислительных

узлах Пусть имеется N зависимых вычислений, таких, что вычисление k-го шага для i-го вычисления требует

результата k-го шага для (i-1)-го вычисления, т.е. с сохранением порядка следования

элементов таким образом, чтобы: где — — мощность подмножества .

Page 13: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

6. Зависимые вычисления одинаковой трудности на гетерогенных вычислительных

узлах Пусть имеется N зависимых вычислений, таких, что вычисление k-го шага для i-го вычисления требует

результата k-го шага для (i-1)-го вычисления, т.е. .

Задачу распределения вычислений по процессорам в этом случае можно сформулировать следующим

образом:

Упорядоченное множество вычислений C необходимо разбить на P непересекающихся упорядоченных

подмножеств с сохранением порядка следования элементов таким образом, чтобы:

где — мощность подмножества . То есть максимальная разница во времени выполнения вычислений в

соседних подмножествах должна быть минимальна.

Page 14: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

7. Зависимые вычисления различной трудности на гомогенных вычислительных

узлах Пусть имеется N зависимых вычислений, таких, что вычисление k-го шага для i-го вычисления требует

результата k-го шага для (i-1)-го вычисления, т.е. Пусть также имеется P процессоров, которые

имеют одинаковые вычислительные мощности.

Задачу распределения вычислений по процессорам в этом случае можно сформулировать следующим

образом: Упорядоченное множество вычислений C необходимо разбить на P непересекающихся

упорядоченных подмножеств с сохранением порядка следования элементов таким образом, чтобы:

где — трудность вычислений, входящих в подмножество

Page 15: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

8. Зависимые вычисления различной трудности на гетерогенных вычислительных

узлах Пусть имеется N зависимых вычислений, таких, что вычисление k-го шага для i-го вычисления требует

результата k-го шага для (i-1)-го вычисления, т.е. . Задача распределения вычислений по

процессорам в этом случае формулируется следующим образом - упорядоченное множество вычислений C

необходимо разбить на P непересекающихся упорядоченных подмножеств с сохранением порядка

следования элементов таким образом, чтобы:

где — трудность вычислений, входящих в подмножество

Page 16: Расчет минимального времени выполнения задач при оптимальном распределении нагрузки между процессорами

Дополнительные ресурсы:

Якобовский М.В., Суков С.А. Динамическая балансировка загрузки // Материалы конференции "Высокопроизводительные вычисления и их приложения", г. Черноголовка, 2000, С. 34-39.

Иванников В.П., Ковалевский Н.С., Метельский В.М. О минимальном времени реализации распределенных конкурирующих процессов в синхронных режимах. // Программирование. 2000, N 5, с. 44-52.

Таненбаум Э. Распределенные системы. Принципы и парадигмы. - СПб.: Питер, 2003. - 877 с. Букатов А. А., Дацюк В. Н., Жегуло А. И. Программирование многопроцессорных вычислительных систем.

Ростов-на-Дону. Издательство ООО "ЦВВР", 2003, 208 с. Немнюгин С.А., Стесик О.Л. Параллельное программирование для многопроцессорных вычислительных

систем. - СПб.: БХВ-Петербург, 2002. - 400с.

Об авторе Карпов Андрей Николаевич, http://www.viva64.com

Занимается вопросами создания программных решений в области повышения качества и быстродействия

ресурсоемких приложений. Является одним из разработчиков статического анализатора Viva64 для

верификации 64-битного программного обеспечения. Участвует в разработке открытой библиотеки VivaCore

для работы с Си/Си++ кодом.