Расчет максимального ускорения с распараллеливанием - PullRequest
1 голос
/ 26 января 2020

Закон Амдала позволяет нам рассчитывать максимальное теоретическое ускорение программы при добавлении все большего объема вычислительной мощности к нашему оборудованию. Это указано в
T = 1 / ((1-P) + (P/N)), где (1-P) - это последовательная часть программы, а (P/N) - та часть, которая может выиграть от ускорения. Теперь то, что закон Амдаля исключает, является фактором накладных расходов. Чтобы подсчитать это, мы можем сказать
T = 1 / ((1-P) + 0(N) + (P/N)), где 0(N) представляет усилие синхронизации, которое увеличивается с увеличением числа вычислительных узлов.

Теперь мой вопрос: Как рассчитать максимальное ускорение программы с учетом 0(N)? Допустим, у нас есть программа, последовательная часть которой 25% , а параллельная часть - 75% .

1 Ответ

0 голосов
/ 27 января 2020

Давайте начнем с цитаты:

что Закон Амдала исключает , это фактор накладных расходов .

, хотя я поддерживаю современную критику использования над-наивного формулы, я должен сначала возражают, что аргумент д-ра Джина АМДАЛА, опубликованный в 1967 году, сохраняется до сегодняшнего дня, так как его основополагающая работа была связана с областью выполнения процессов, а не с производными полями чистых [SERIAL], просто - [CONCURRENT] или True- [PARALLEL] выполнение различных приемов выполнения кода, которые сопровождают планирование в контексте программирования устройств CPU / GPU / MMC / FPGA.

Учитывая эти дополнительные расходы, изначально чистый [SERIAL] синтаксис кода расширяется дополнительными блоками новых, специальных, украшенных мета # или элементов прямого синтаксиса, которые интерпретируются и могут компилироваться в новые разделы машинно-зависимого машинного кода.

Эти новые детали представляют собой, как правило, надстройку O (1) затраты, в то время как их выполнение не остается постоянными затратами TimeDOMAIN и SpaceDOMAIN (обычно это полиномиальные c по сравнению с SPACE, тратя больше ВРЕМЕНИ как влияние ограниченных ресурсов на перемещение данных, необходимых для таких порожденных / распределенных операций, связанных с процессом ( передача параметров + возвращенные результаты))

В случае введения затрат на синхронизацию выполнение процесса True- [PARALLEL] до настоящего времени перестает быть полностью [PARALLEL] и возвращается с такой территории. полностью независимого [PARALLEL] -процессного планирования в чисто [SERIAL] -заказ нескольких полу-[PARALLEL] (если не, но просто - [CONCURRENT]) секций исполнения кода, подчиненных на какую-то внешнюю политику (будь то прозрачная синхронизация c или управление ресурсами пула ресурсов и т. д. c)

Q : Как рассчитать максимальное ускорение программы с учетом 0(N)?

Перечитать т он расскажет о дополнительных накладных расходах и атомарности работы и, скорее, использует строгих и ресурсоемких переформулировок первоначального закона Амдала .

pSO:= [PAR]-Setup-Overhead     add-on
pTO:= [PAR]-Terminate-Overhead add-on

Для мелкомасштабных задач единовременная стоимость - из pSPACE + pTIME дополнительных затрат на передачу параметров (имеющих некоторую зависимость размера от объема данных). xfers) плюс начальная pSO + pTO, составляющая большую часть времени cTIME + cSPACE дополнительные расходы на создание новых экземпляров процессов в локальном узле O / S или во время (потенциально гетерогенной)

Для вычислительных задач, которые большие и вычислений- интенсив , pSO + pTO может быть оправдано делением и (в зависимости от лота s, определяя остаток от " Parallel часть", являющаяся ( 1 - s )) [PARALLEL] усилия могут привести к некоторым приятным ускорениям:

enter image description here

в этих больших и плотных случаях, не сильно разрушенных принципиально переменной, но относительно незначительной частью cTIME + cSPACE связанных с данными начальных параметров + возвращаемых значений.

При ( 1 - s ) = 75% ускорение в основном меньше, чем 4 даже для бесконечного числа процессоров.

С учетом наилучших результатов, всех дополнительных издержек и некоторой известной степени детализации обработки с атомарностью работы, вы также можете получить ожидаемые ожидания скорости net, которые будут близки к результирующей обработке, учитывая также все должные шаги для неблокирующего выполнения с условиями гонки и методами предотвращения ограничений O / S, были введены в действие должным образом и способом.

...