Могу ли я просто взять обратную величину времени настенных часов?
Нет,
истинные цифры ускорения требуют сравнения яблок с яблоками:
Это означает, что планирование процесса оригинал , чисто- [SERIAL]
должно сравниваться с любым другим сценарием, где детали могут быть изменены, чтобы использовать какой-то видпараллелизма (параллельная дробь может быть реорганизована так, чтобы работать на N
процессорах / вычислительных ресурсах, тогда как последовательная дробь остается такой же, как была).
Это очевидноозначает, что исходный [SERIAL]
-код был расширен (как в коде (#pragma
-декораторы, OpenCL-модификации, CUDA -{ host_to_dev | dev_to_host }
-инструмент и т. д.), так и во времени (для выполнения этихдобавлены функциональные возможности, которых не было в исходном [SERIAL]
-коде, для сравнения), чтобы добавить несколько новых разделов, где (возможно [PARALLEL]
) будет выполняться другая часть обработки.
Это происходит за счет дополнительных накладных расходов (тo настройка, завершение и передача данных от [SERIAL]
-части туда, к [PARALLEL]
-части и обратно), что добавляет дополнительную рабочую нагрузку [SERIAL]
-части (и время выполнения + задержка).
Для более подробной информации, не стесняйтесь читать раздел Критика в статье о переформулированном Законе Амдала.
Интересная часть [PARALLEL]
кажется интересной, однако основной потолок ускорения находится в продолжительности [SERIAL]
доли ( s = 1 - p )
воригинал,
, к которому необходимо добавить продолжительности надстройки и дополнительные затраты времени ожидания по мере накопления вместе с "организация работы от оригинального чистого [SERIAL]
до желаемого для планирования [PARALLEL]
процесса выполнения кода , если должна быть достигнута реалистичная оценка
запустить тест на одном процессоре и установить его как последовательное время, ... ,
как @VictorSongпредложила звучит легко, но тестирует непоследовательную систему (не чистую [SERIAL]
оригинал) и записывает искаженный критерий для сравнения.
Это причина, почему справедливые методы должныбыть спроектированным.Выполнение кода в чистом [SERIAL]
оригинальном может быть с отметкой времени, чтобы показать реальную продолжительность неизмененных частей, но время надстройки надстройки должно быть включено в надстройкурасширения серийной части теперь распараллеленных тестов.
Пересмотренный закон убывающих возвратов Амдала объясняет это, вместе с воздействиями из-за накладных расходов, а также из-за атомарностиобработка, которая не будет допускать дальнейших фиксаций ускоренного роста, при условии добавления большего количества вычислительных ресурсов, но параллельная доля обработки не допускает дальнейшего разделения рабочих нагрузок задачи из-за некоторой формы его внутренней атомарности обработки, чтоне может быть далее разделен, несмотря на наличие свободных процессоров.
Упрощенное из двух, переформулированных выражений выглядит так:
1
S = __________________________; where s, ( 1 - s ), N were defined above
( 1 - s ) pSO:= [PAR]-Setup-Overhead add-on
s + pSO + _________ + pTO pTO:= [PAR]-Terminate-Overhead add-on
N
Некоторые интерактивные инструменты GUI для дальнейшей визуализациинакладные расходы доступны для интерактивного параметрического моделирования здесь - просто переместите p
-ползунка к фактическому значению ( 1 - s )
~, имеющему ненулевую дробь самой [SERIAL]
- часть исходного кода :