Данному образовательному сайту пришлось несколько раз менять свое имя. С 2022 года доступ к нему обеспечивается по URL
emc.km.ru (2001-2007) ==> educomp.org.ru (2007-2011) ==> educomp.runnet.ru (2011-2021) ==> emc.orgfree.com (2022-...)
Более подробно об истории сайта можно прочитать здесь.
|
Вычисления по демо-формулеИспользуя систему S9PU, вычислим выражение Сначала напишем программу для одного Удвоителя - для ПУ0. Она не очень сложная, но достаточно длинная. Поэтому чтобы легче было ориентироваться, она разбита на 3 строки, каждая из которых соответствует слагаемому, заключенному в исходном выражении в квадратные скобки. Умножение на 1000 в первой строке организовано как троекратное повторение фрагмента умножения на 10. Выполнение написанной выше программы на S9PU требует 66 тактов.
Для удобства анализа такт, соответствующий началу каждой строки приведенного листинга, выделен светло-серым цветом. Перейдем теперь к разработке параллельной программы. Для ее оптимизации обратим внимание на следующие важные обстоятельства.
Все указанные выше пути оптимизации были тщательно учтены в приведенной ниже параллельной программе для ПУ0-ПУ2. Временная диаграмма для нее выглядит так.
Видно, что, исключая неизбежные 6 тактов в конце программы, нет больше ни одного(!) такта простоя ПУ. А во время тактов 11-19 и 22-23 все(!) ПУ занимаются вычислениями. Такая оптимизация вычислений не может не сказаться положительно. Вместо 66 тактов при расчетах на одном ПУ0, для рассматриваемой параллельной программы требуется всего 30. Таким образом, ускорение S = 66/30 = 2,2, что для трех вычислителей очень даже неплохо. Эффективность (ускорение на один вычислитель) E = 2,2/3 = 0,73. Оценим также, какую часть времени каждый из ПУ занимался непосредственно вычислениями (исключая обмен и простои). Здесь также показатели неплохие. Больше всех считал ПУ2: он выполнил 23 вычислительных операции за 23 такта, так что его к.п.д. равен 23/30 = 77%. ПУ1 чуть отстает - 21/30 = 70%. Наконец, ПУ0, много времени потративший на организацию вычислений, и то посвятил счету 12/30 = 40% своего времени. Заметим, что не для каждой формулы результаты будут такими оптимистичными. Но для каждой можно попытаться использовать описанные здесь приемы для повышения эффективности параллельных вычислений на S9PU. © Е.А.Еремин, 2018 |