Недостаточная производительность является сдерживающим фактором широкого применения вычислительной техники довольно во многих областях науки и техники, а также бизнеса и других приложений.
Несмотря на то, что созданы компьютеры с быстродействием в миллионы операций в секунду, ряд задач не может быть решен вычислительной системой с такой производительностью. Это задачи летальных аппаратов, проектирования АЭС, моделирования ядерного оружия и т.д.
Производительность компьютеров определяется тремя основными факторами:
1) элементарная база
2) параллельное выполнение операций на макро- и микроуровнях
3) специализация процессов
До конца 60-х годов прошлого века повышение производительности происходило за счет развития элементарной базы и параллелизма на микроуровне, который не виден пользователю. Но в то же время выяснялось, что без компьютеров получить необходимый скачок в увеличении производительности невозможно. Обратим внимание на распараллеливание вычислений(разбить задачи на подзадачи и разделить их на несколько процессов, чтобы они выполнялись параллельно). Но при этом возникли проблемы:
|
|
1) нужно было создавать новые нетрадиционные способы организации и взаимодействия компонентов системы
2) найти новые пути разработки всех уровней программного обеспечения
3) пересмотреть алгоритмические средства с целью создания математического обеспечения адекватного принципу параллельной обработки
Параллелизм на макроуровне потребовал новых подходов к созданию алгоритмов решения задач и языковых средств для описания этих алгоритмов.
Параллельные алгоритмы должны соответствовать структурным возможностям вычислительных систем.
При этом необходимо:
1) решать вопросы отображения данной задачи на архитектуру системы
2) количественно оценивать принимаемые решения
3) сравнивать полученные результаты с другими возможными решениями. Решения этих задач занимаются целые коллективы программистов.
Высокое быстродействие достигается за счет одновременного выполнения операций над многими данными. Реализация этого принципа достигается системами с разных потоках вычисления: потоковые, векторные, конвейерные, электронные и т.д.