
- •Рабочая программа учебной дисциплины «Архитектура компьютеров»
- •Лист согласования
- •1. Пояснительная записка
- •1.1 Место дисциплины в структуре ооп.
- •1.2 Цели и задачи дисциплины
- •1.3 Перечень профессиональных компетенций
- •2. Тематический план
- •3. Содержание дисциплины
- •3.1 Содержание тем дисциплины
- •Тема 1.Введение
- •Тема 2. Класс simd
- •Тема 3. Класс mimd
- •Тема 4. Методы параллельных вычислений
- •Тема 5. Алгоритмы и методы организации функционирования вычислительных систем
- •Тема 6. Производительность вычислительных систем
- •Тема 7. Сети эвм и телекоммуникации
- •4. Вопросы для итогового контроля (зачет)
- •5. Критерии оценки знаний
- •6.Список рекомендуемой литературы.
- •6.1 Основная литература:
- •Учебно-методический блок
- •1. Теоретическая часть
- •Лекция №2 Формы представления чисел в эвм.
- •Алгебраическое представление двоичных чисел
- •Вычитание
- •Лекция №3 Основные термины и определения предметной области
- •Классическая схема эвм.
- •Системная шина
- •Лекция №4 Классификация эвм
- •Лекция №5 Центральный процессор
- •Регистр
- •О сегментах.
- •Лекция №7 Загрузка и выполнение программ на компьютере
- •Лекция №8 Параллельные вычислительные процессы и системы Виды параллелизма
- •Реализация параллельных систем
- •Параллельные вычислительные процессы и системы Нейровычислительные системы.
- •Сложности использования параллельных систем
- •Параллельные вычислительные процессы и системы Программирование параллельных систем
- •Лекция №10 Классификация вс по соотношению потока команд и потока данных
- •Сравнение параллельной и конвейерной организации вс
- •Лекция №11.
- •Лекция №12. Вычислительные сети
- •1 Лабораторные работы № 1, 2 «Работа клавиатуры»
- •2 Лабораторная работа № 3 «Работа видеосистемы»
- •3 Лабораторная работа № 4 «Работа внешних накопителей
- •4 Лабораторная работа № 5 «Работа дисковых накопителей
- •5 Лабораторная работа № 6 «Работа с портами
- •Приложение а справочная информация по вызовам bios
- •Приложение б справочная информация по вызовам функций ms-dos
- •Приложение в
- •Литература
Параллельные вычислительные процессы и системы Нейровычислительные системы.
Нейровычислительное устройство – это система, функционирование которой в максимальной степени ориентировано на реализацию нейросетевых алгоритмов. Основное отличие нейрокомпьютеров от других вычислительных систем – это обеспечение высокого параллелизма вычислений за счет применения специализированного нейросетевого логического базиса или конкретных архитектурных решений. Использование возможности представления нейросетевых алгоритмов для реализации на нейросетевом логическом базисе является основной предпосылкой резкого увеличения производительности нейрокомпьютеров.
Сейчас разработки цифровых нейрокомпьютеров наиболее активно ведутся по следующим направлениям:
программная эмуляция нейросетевых алгоритмов на основе использования обычных вычислительных средств и ППО по моделированию нейросетей;
программно-аппаратная эмуляция нейросетей на основе стандартных вычислительных средств с подключаемым виртуальным нейросетевым блоком, выполняющим основные нейрооперации, и ППО, осуществляющим функции общего управления;
аппаратная реализация нейронных сетей.
Несмотря на то, что наибольшего эффекта при реализации нейросетевых алгоритмов удается добиться лишь с использованием нейрокомпьютеров третьего направления, их широкое применение ограничивается высокой. Например, нейрокомпьютер Synaps1 – один из представителей нейрокомпьютеров третьего направления, имеет мультипроцессорную архитектуру, оригинальное построение подсистемы памяти, а для выполнения вычислительных операций использует сигнальные процессоры и специальные сигнальные матричные процессоры МА16. За счет этого производительность нейрокомпьютера составила порядка несколько миллиардов умножений и сложений в секунду. Программное обеспечение данной системы включает в себя ОС Synaps1 с библиотекой нейроалгоритмов, а также ППО: базовую библиотеку НС, компилятор языка программирования нейроалгоритмов (nAPL) (набор библиотечных функций для С++) и т.п. Прикладные исследования показали, что использование нейрокомпьютеров третьего направления позволяет повысить производительность обычных вычислительных систем как минимум на три порядка и моделировать НС с миллионами соединений. Так, например, Synaps1 позволяет моделировать нейросеть с 64 миллионами синапсов с использованием различных активационных функций.
Два класса компьютерных систем, которые иногда используют как параллельные компьютеры – это локальная сеть (LAN), в которой компьютеры, находящиеся в физической близости (например, то же строение), связываются быстрой сетью, и глобальная сеть (WAN), в которой соединены географически удаленные компьютеры. Хотя системы такого типа доставляют дополнительные проблемы, такие как безопасность, надежность, они могут быть рассмотрены для различных целей как мультикомпьютеры, хотя и с высокой стоимостью удаленного доступа.
Сложности использования параллельных систем
Гигантская производительность параллельных компьютеров и супер-ЭВМ с лихвой компенсируется сложностями их использования.
У вас есть программа и доступ, скажем, к 256-процессорному компьютеру. Что вы ожидаете? Да ясно что: вы вполне законно ожидаете, что программа будет выполняться в 256 раз быстрее, чем на одном процессоре. А вот как раз этого, скорее всего, и не будет.
Закон Амдала. Предположим, что в программе доля операций, которые нужно выполнять последовательно, равна f, где 0<=f<=1 (при этом доля понимается не по статическому числу строк кода, а по числу операций в процессе выполнения). Крайние случаи в значениях f соответствуют полностью параллельным (f = 0) и полностью последовательным (f = 1) программам. Тогда для того, чтобы оценить, какое ускорение S может быть получено на компьютере из 'p' процессоров при данном значении f, можно воспользоваться законом Амдала: если 9/10 программы исполняется параллельно, а 1/10 по-прежнему последовательно, то ускорения более, чем в 10 раз получить в принципе невозможно вне зависимости от качества реализации параллельной части кода и числа используемых процессоров (10 получается только в том случае, когда время исполнения параллельной части равно 0).
Следствие закона Амдала. Для того, чтобы ускорить выполнение программы в q раз, необходимо ускорить не менее, чем в q раз не менее, чем (1-1/q) -ю часть программы. Следовательно, если есть желание ускорить программу в 100 раз по сравнению с ее последовательным вариантом, то необходимо получить не меньшее ускорение не менее, чем для 99.99% кода!
Таким образом, заставить параллельную вычислительную систему работать с максимальной эффективностью на конкретной программе это задача не из простых, поскольку необходимо тщательное согласование структуры программ и алгоритмов с особенностями архитектуры параллельных вычислительных систем.