- •Курс лекций
- •Оглавление
- •1. Архитектура и принципы работы обычных эвм с центральным процессором (cpu) 9
- •2. Методы повышения производительности традиционных эвм 27
- •3. Типы архитектур высокопроизводительных вычислительных систем 45
- •4. Потоковые параллельные вычисления для физического моделирования 62
- •5. Применение графических процессоров на примерах сложения матриц и решения дифференциальных уравнений 82
- •6. Молекулярная динамика на графическом процессоре 100
- •7. Высокоскоростное моделирование систем с дальнодействием 125
- •8. Восстановление потенциалов межчастичных взаимодействий по температурной зависимости периода решетки методами высокоскоростного мдм на графических процессорах 145
- •9. Базовые особенности программирования графических процессоров шейдерной модели 4.0 160
- •Введение
- •1.Архитектура и принципы работы обычных эвм с центральным процессором (cpu)
- •1.1.Структура традиционной эвм
- •1.2.Организация работы эвм
- •1.3.Иерархия памяти компьютера
- •1.4. Выполнение команд
- •1.5.Требования к коммуникационным линиям
- •1.6.Устройства ввода-вывода
- •2.Методы повышения производительности традиционных эвм
- •2.1. Распараллеливание расчетов
- •2.2.Конвейерная обработка данных и команд
- •2.3.Высокопроизводительные процессоры
- •2.3.1.Суперскалярные процессоры
- •2.3.2.Процессоры risc с сокращенным набором команд
- •2.3.3.Процессоры со сверхдлинным командным словом
- •2.3.4.Векторные процессоры
- •2.3.5.Процессоры для параллельных компьютеров
- •2.3.6.Процессоры с многопоточной архитектурой
- •2.3.7.Технология Hyper-Threading
- •2.4.Требования к памяти высокопроизводительных эвм
- •2.5.Коммуникационная сеть высокопроизводительных эвм
- •2.5.1.Статические и динамические топологии и маршрутизация коммуникационных систем
- •2.5.2.Многокаскадные сети и методы коммутации
- •2.6.Классификация архитектур параллельных компьютеров
- •3.Типы архитектур высокопроизводительных вычислительных систем
- •3.1.Simd архитектура (с разделяемой и распределенной памятью)
- •3.2. Mimd архитектура с разделяемой и распределенной памятью
- •3.3. Комбинированные системы
- •3.4. Мультипроцессорные и мультикомпьютерные системы
- •3.5.Кластеры пэвм и рабочих станций
- •3.6.Особенности параллельного программирования
- •4.Потоковые параллельные вычисления для физического моделирования
- •4.1.Общие принципы распараллеливания расчётов
- •4.2.Обмен данными между процессором и памятью
- •4.3.Графические процессоры как вычислительные системы для поточно-параллельных расчётов
- •4.3.1.Вычислительные возможности центральных процессоров общего назначения и графических процессоров
- •4.3.2.Графический конвейер
- •4.3.3.История программируемости графических процессоров
- •4.3.4.Требования к алгоритмам для gpu, поддерживающих шейдерную модель 3.0
- •4.3.5.Возможности gpu в рамках шейдерной модели 3.0 и взаимодействие gpu с памятью
- •4.3.6.Проблема одинарной точности
- •4.4.Средства программирования графических процессоров
- •4.4.1.Общая структура программы для физического моделирования на графическом процессоре
- •4.4.2.Необходимое программное обеспечение
- •4.5.Области использования графических процессоров
- •5.Применение графических процессоров на примерах сложения матриц и решения дифференциальных уравнений
- •5.1.Распараллеливание независимых вычислений
- •5.2.Используемый графический процессор
- •5.3.Представление данных для графического процессора
- •5.4.Программирование вычислительного ядра
- •5.5.Взаимодействие центрального и графического процессоров
- •5.5.1.Функции центрального процессора
- •5.5.2.Пример программы
- •6.Молекулярная динамика на графическом процессоре
- •6.1.Принципы моделирования ионных кристаллов методом молекулярной динамики
- •6.2.Программирование графического процессора для расчёта действующих на ионы результирующих сил
- •6.2.1.Исходные данные
- •6.2.2.Представление исходных данных для gpu
- •6.2.3.Алгоритм расчёта результирующих сил с использованием графического процессора
- •6.2.4.Шейдер для расчёта результирующей силы
- •6.3.Исполнение шейдера из программы мд-моделирования на c#
- •6.3.1.Этапы алгоритма моделирования, исполняемые на cpu
- •6.3.2.Процедуры на c#, обеспечивающие работу с графическим процессором
- •6.4.Постановка граничных условий и стабилизация макросостояния молекулярно-динамической системы
- •6.4.1.Компенсация импульса и момента импульса
- •6.4.2.Стабилизация температуры
- •7.Высокоскоростное моделирование систем с дальнодействием
- •7.1.Актуальность моделирования
- •7.2.Высокоскоростные алгоритмы моделирования систем с дальнодействующими силами
- •7.3.Методика высокоскоростного молекулярно-динамического моделирования диоксида урана
- •7.4.Экспериментальные результаты и их обсуждение
- •7.5.Анализ зависимостей среднего квадрата смещений ионов кислорода от времени
- •8.Восстановление потенциалов межчастичных взаимодействий по температурной зависимости периода решетки методами высокоскоростного мдм на графических процессорах
- •8.1.Задача восстановления потенциалов межчастичных взаимодействий в кристаллах
- •8.2.Исходные данные и метод восстановления потенциалов
- •8.3.Модель и детали реализации
- •9.Базовые особенности программирования графических процессоров шейдерной модели 4.0
- •9.1.Предпосылки появления новой шейдерной модели
- •9.2.Архитектура gpu шейдерной модели 4.0. Преимущества этой модели
- •9.2.1.Иерархия вычислительных блоков и памяти в шейдерной модели 4.0
- •9.2.2.Конвейерная обработка данных на gpu sm4
- •9.2.3.Логическая структура вычислений на gpu sm4
- •9.2.4.Преимущества gpu шейдерной модели 4.0
- •9.3.Средства высокоуровневого программирования gpu шейдерной модели 4.0
- •9.3.1.Совместимость с шейдерной моделью 3.0
- •9.3.2.Специальные средства программирования gpu sm4. Cuda
- •9.3.3.Средства для написания и компиляции программ на cuda
- •9.3.4.Структура программы на cuda
- •9.4.Перемножение матриц на cuda
- •9.4.1.Алгоритм перемножения матриц
- •9.4.2.Процедура перемножения матриц на gpu sm4
- •9.4.3.Вызов процедуры перемножения матриц из программы на c
- •9.5.Молекулярная динамика на cuda
- •9.5.1.Алгоритм с использованием разделяемой памяти
- •9.5.2.Расчёт сил на gpu с использованием 3-го закона Ньютона
- •Библиографический список
- •Приложение 1 Операторы и функции языка hlsl, использованные в курсе лекций п.1.2. Типы данных
1.Архитектура и принципы работы обычных эвм с центральным процессором (cpu)
По производительности и по внешнему виду современные компьютеры мало чем напоминают первые ЭВМ. В качестве примера можно привести компьютер, который мог занимать весь этаж института, а по выполняемым функциям едва дотягивал до того, что сейчас может сделать ноутбук, размером с школьный учебник. Однако, основные идеи, а также составные части, алгоритмы (хотя параллельную обработку следует признать колоссальным прорывом) практически не претерпели изменений со времен Алана Тьюринга и Джона фон Неймана. Поэтому в качестве основы всегда приводят неймановскую архитектуру ЭВМ.
1.1.Структура традиционной эвм
Архитектура ЭВМ фон Неймана предполагает наличие в ЭВМ следующих устройств:
Арифметико-логическое устройство - АЛУ;
Устройство управления – УУ;
Запоминающее устройство – ЗУ;
Устройство ввода-вывода – УВВ;
Пульт управления – ПУ.
С развитием технологии некоторые узлы объединяют, так например, центральный процессор представляет АЛУ и УУ. Поэтому схематично структуру можно представить следующим образом (рис. 1.1):
Теперь остановимся на основных узлах компьютера подробнее.
Процессор. Основное устройство ЭВМ. Процессор – вычислительное устройство. Счет происходит по специальным алгоритмам. В значительной степени быстродействие всей ЭВМ определяется производительностью (быстродействием) именно процессора. Для увеличения производительности в процессоре есть небольшая собственная память, называемая
Рис. 1.1 Обобщённая логическая структура ЭВМ
сверхоперативной. Это позволяет отказаться от постоянного обращения к запоминающим устройствам. Все вычисления представляются в виде программы. Т.е. в виде инструкций для процессора в порядке их выполнения. При поступлении команды, процессор расшифрует ее, определит какие именно действия и над какими именно операндами необходимо выполнить (фактически, как таковых операций нет. К процессору поступает набор чисел – адресов ячеек памяти. В них может быть все что угодно – операция или операнд). Операции расшифровки и определения действия выполняет УУ. При помощи него же операнды из ЗУ помещаются в АЛУ. АЛУ, под управлением УУ, производит необходимые действия.
Память. Как было сказано выше, данные и программа находятся в ЗУ – памяти ЭВМ. Память – сложная структура, организованная по иерархическому принципу. В ней существуют (ЗУ) разных типов. Функционально их делят на внутреннюю память и внешнюю.
Под внутренней памятью понимают ЗУ, напрямую связанную с процессором. В ней хранится исполняемая часть кода программы и данные, которые непосредственно используются в вычислениях. Эту память отличает высокое быстродействие, однако она очень сильно ограничена по объему. Внутреннюю память делят на оперативную (ОЗУ) и постоянную (ПЗУ). Основную часть внутренней памяти составляет ОЗУ, именно в ней принимается, хранится и через нее выдается информация. Эта память энергозависима. Т.е. при выключении питания, данные, находящиеся в ней потеряются. ПЗУ заполняется на этапе изготовления ЭВМ (в ней находятся часто используемые (универсальные) программы, данные необходимые для загрузки и тестирования оборудования ЭВМ). Эта часть внутренней памяти энергонезависима.
Внешняя память – самая большая по объему вмещаемой информации. Выполнение запросов процессора выполняется без его непосредственного вмешательства. К внешней памяти относятся как жесткие диски, так и различные накопители (CD, DVD, карты памяти, внешние жесткие диски). Последние позволяют быстро и удобно переносить данные с одной ЭВМ на другую, однако обладают меньшим быстродействием. Чаще всего они служат для резервирования информации.
УВВ. Устройства ввода вывода ЭВМ, с которыми пользователь взаимодействует непосредственно. Именно к этой группе относятся клавиатура, мышь, монитор, принтер, сканер, различные манипуляторы и многие другие периферийные устройства. Это самое необходимое звено для общения человека и ЭВМ.
Для связи устройств ЭВМ существует системный интерфейс. В малых ЭВМ в качестве системного интерфейса используются системные шины. В высокопроизводительных ЭВМ могут использоваться специальные устройства, имеющие встроенные процессоры. Это обеспечивает высокую скорость передачи данных. По системным шинам может передаваться различная информация (различают шины адреса и шины данных, шины управляющих сигналов).
При описании ЭВМ важно выделить ее основные характеристики, такие как:
Быстродействие. С одной стороны, это количество элементарных операций, выполняемых центральным процессором в секунду (любая простейшая операция – сложение, пересылка, сравнение и т.д.). С другой – узким местом зачастую становится память ЭВМ. Т.к. независимо от количества возможных операций, при нехватке данных, основное ограничение будет накладывать время поиска необходимых операндов в памяти.
Производительность. В отличие от быстродействия, которое обусловлено системой элементов, производительность связана с архитектурой ЭВМ. Величина быстродействия не является постоянной, выделяют пиковое быстродействие (определяется тактовой частотой процессора без учета обращений к оперативной памяти), номинальное (учитывается время обращения к оперативной памяти), системное (учитываются системные издержки на организацию вычислительного процесса), эксплутационное (определяется характером решаемых задач).
Объем памяти. Величина, показывающая максимальный объем данных, которые можно хранить в ЭВМ.
Точность вычислений. Определяется разрядностью процессора (количеством разрядов, используемых для представления одного числа). В настоящее время используются 32 и 64 –разрядные процессоры. Для повышения точности используют удвоенную или утроенную разрядную сетку. При этом число разбивают на несколько частей, и каждую из них записывают в виде отдельного числа.
Система команд. Это набор команд, которое способен выполнить процессор ЭВМ. Также она показывает в каком виде должны быть записаны операнды, какой формат должны иметь команды. В современных процессорах число элементарных команд составляет от десятка до сотен команд. Это такие операции как сложение, сравнение, передача числа из регистра в регистр, преобразование в различные системы счисления. Сейчас выделяют две основные системы формирования команд. Это архитектура CISC (Complete Instruction Set Computer) – компьютер с полным набором команд, и RISC (Reduced Instruction Set Computer) – компьютер с сокращенным набором команд. Вторая архитектура проще в аппаратной реализации, однако при программировании необходимо «объяснять» процессору большее число операций.
Стоимость. Эта характеристика определяется набором элементов каждой конкретной ЭВМ. Сюда же относят стоимость внешних элементов, а также стоимость программного обеспечения.
Надежность. Эта характеристика во всех областях определяется одинаково, как способность сохранять свои свойства при заданных условиях эксплуатации в течение определенного времени. Для количественной оценки можно применять вероятность безотказной работы при данных условиях за определенное время, наработку на отказ и др. Зачастую отказ одного из элементов ЭВМ может привести к неработоспособности всей вычислительной системы.
Прочие характеристики. Сюда можно отнести габариты, масштабируемость, энергопотребление и др.