Литература: Воеводин «Параллельные вычисления», Антонов «Введение в параллельные вычисления».
Темы: история развития, классификация вычислительных устройств, мультикомпьютеры и мультипроцессоры, особенности программирования, характеристики сетей разных типологий, программирование на CUDA.
История развития многопроцессорной вычислительной техники.
Производительность – величина, отражающая количество арифметических операций за единицу времени. Причины, приводящие к развитию многопроцессорной техники:
численный эксперимент, его важная роль в исследовании процессов (большие объемы расчетов приводят к необходимости использования многопроцессорной техники)
общество стремится к информационному.
Производительность первого компьютера была 100 flops (floating point operations per second). Производительность самого быстрого компьютера – 34 PetaFlops. Увеличилась скорость работы микросхем, используется распараллеливание данных. Одним из первых исследователей распараллеливание был Чарльз Беббидж (19 век). Принципиально важными решениями повышения производительности вычислительной техники были следующие:
введение конвейерной организации выполнения команд
включение в системы команд векторных операций, позволяющих одной командой обрабатывать целые массивы данных
распределение вычислений на множества процессов.
Всё разнообразие компьютеров можно представить 4 классами:
персональные
рабочие станции – это компьютеры, оснащенные многопользовательскими системами, относящимися к Unix, содержат от 1 до 4 процессоров и обслуживают интересы группы людей
суперкомпьютеры – их отличительной особенностью является то, что они большие и дорогостоящие, одним из первых был компьютер Cray 1. Закон Мура: производительность вычислительной техники удваивается каждые 18 месяцев. В 1986 году нужно было иметь производительность 10 Мегафлопсов. Суперкомпьютер – компьютер, стоимостью выше 1-2 млн. долларов. Суперкомпьютер – это ЭВМ, мощность которого всего на порядок меньше необходимой для решения современных задач
кластерные системы, в последнее время они используются в качестве дешевой альтернативы суперкомпьютеров. Кластер – это группа компьютеров, объединенных в локальную вычислительную сеть. Кластер с требуемой производительностью собирается из серийно собираемых компьютеров, объединенных с помощью серийного коммуникационного оборудования.
Для всех типов многопроцессорных систем требуется использование специальных технологий программирования для того, чтобы программа могла в полной мере использовать ресурсы многопроцессорной техники. Это достигается разделением программы на параллельные ветви, каждая из которых выполняется на отдельном процессоре. При организации параллельных вычислений следует различать режимы выполнения программ.
Многозадачный режим.
В нем для выполнения нескольких процессов используется один процессор. Этот режим псевдопараллельный, поскольку активным является только один из процессоров, в то время как остальные находятся в режиме ожидания. Данный режим может быть эффективным при специальной организации вычислений.
Параллельное выполнение.
Когда в один и тот же момент может выполняться несколько команд обработки данных. Этот режим может иметь место только при наличии нескольких процессоров.
Распределенное вычисление.
Данный термин используется при программах, работающих на удаленных друг от друга узлах. Передача данных в этих системах приводит к существенным временным задержкам.