Эффективность распараллеливания Оценки качества вычислительного алгоритма, системного ПО и аппаратуры Цель – оптимизация счета Критерии качества: Производительность / стоимость. Предельные случаи: Минимизация астрономического времени счета задачи - ТА Минимизация стоимости – суммарное платное процессорное время – ТР ТР = ТА * P где Р – число процессоров ТА не равно ТА1 / Р Коэффициент ускорения при распараллеливании KP = (TA1 / TAP) / P или ТАР = ТА1 / (KP * P) Где: ТА1 – астрономическое время счета на одном процессоре ТАР - астрономическое время счета на Р процессорах Р - число процессоров Пример. 10 процессоров вместо одного при КР = 1 время счета уменьшится в 10 раз, при КР = 0.5 только в 5 раз. КР(Р) – зависит от Р КР = (ТАР1 / TAР2) / (P2 / P1) – случай сравнения счета для Р1 и Р2 процессоров Результаты счета, оценка эффективности Факторы, влияющие на КР Предполагается, что КР не зависит от номера шага. ТАШ = ТП + ТО где ТАШ – астрономическое время одного шага ТП – чисто процессорное время без учета простоев ЦП ТО – время простоя ЦП из-за обменов, не совмещенных со счетом. Совмещение? Тогда КР = ТА1 / (ТАР * Р) = (ТП * Р) / ((ТП + ТО) * Р) = 1 / (1 + ТО/ТП) Если использовать отношение времени обменов к времени процессорного счета: КО = ТО / ТП то КР = 1/(1+КО) Вычисление зависимости КР от числа процессоров Подсчет ТП и ТО. Необходимо знать: Количество обрабатываемых чисел (размер сетки, размер матриц , …) Количество операций над одним числом в одном шаге. Эмпирические данные для типичной разностной схемы: 8-10 опер/шаг, не зависит от размера сетки Умножения матриц. Предлагается самим посчитать для случая разбиения полностью заполненной матрицы на полосы и столбцы. Зависит от размера матрицы. Попытайтесь найти физическое объяснение разницы в числе операций и виде матриц для этих двух случаев. Скорость процессора. Скорость среды обмена (латентность, максимальную длину блока). При фиксированном размере сетки уменьшая число процессоров, мы уменьшаем КО (влияние обменов), увеличиваем КР (эффективность использования процессоров – снижаем стоимость), увеличиваем общее астрономическое время счета (уменьшаем производительность). И наоборот. Задача на дом Параллельное умножение матриц (полосы строк и столбцов) Вывести зависимость КР(Р) для: Матрица - 10**4 на 10**4 Скорость процессор+программа – 10**9 опер/сек Скорость обмена – 10**6 чисел/сек плюс задержка на запуск обмена 10**-3 сек. Счет и обмены не совмещены. Р в диапазоне от 1 до 10**5