Федеральное государственное бюджетное...

27
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Новосибирский национальный исследовательский государственный университет» Факультет информационных технологий УТВЕРЖДАЮ _______________________ « ___» ____________20___г. РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ «ЭВМ и периферийные устройства» НАПРАВЛЕНИЕ ПОДГОТОВКИ 230100 «ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА» Квалификация (степень) выпускника Бакалавр Форма обучения очная Новосибирск 2014

Upload: nguyenhuong

Post on 09-Feb-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Новосибирский национальный исследовательский государственный

университет»

Факультет информационных технологий

УТВЕРЖДАЮ

_______________________

« ___» ____________20___г.

РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ

«ЭВМ и периферийные устройства»

НАПРАВЛЕНИЕ ПОДГОТОВКИ 230100 «ИНФОРМАТИКА И

ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»

Квалификация (степень) выпускника

Бакалавр

Форма обучения очная

Новосибирск

2014

Page 2: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

2

Программа дисциплины «ЭВМ и периферийные устройства»

составлена в соответствии с требованиями ФГОС ВПО к структуре и

результатам освоения основных образовательных программ бакалавриата

по «профессиональному» циклу по направлению подготовки

«Информатика и вычислительная техника», а также задачами, стоящими

перед Новосибирским государственным университетом по реализации

Программы развития НГУ.

Автор (авторы):

Маркова Валентина Петровна, к.т.н., доцент,

Киреев Сергей Евгеньевич, старший преподаватель,

Перепелкин Владислав Александрович, ассистент,

Остапкевич Михаил Борисович, ассистент.

Факультет информационных технологий

Кафедра параллельных вычислений

Page 3: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

3

1. Цели освоения дисциплины

Целями освоения дисциплины являются изучение таких аспектов

архитектуры и организации компьютеров, которые существенны с точки

зрения написания эффективных программ.

Для достижения поставленных целей решаются следующие задачи

курса

знакомство с эволюцией архитектуры ЭВМ, направленной на

преодоление узких мест архитектуры фон-Неймана по мере

развития СБИС-технологий и языков программирования;

систематизация теоретических знаний о системной организации

классических ЭВМ и периферийных устройств;

изучение особенностей архитектур ЭВМ и их влияния на время

выполнения на заданном классе задач;

формирование практических навыков оптимизации прикладных

программ под заданную архитектуру и организация ЭВМ (навыки

учета особенностей архитектуры целевой ЭВМ в прикладной

программе);

изучение архитектур современных ЭВМ и специализированных

вычислителей;

знакомство с тенденциями развития ЭВМ и периферийных

устройств.

2. Место дисциплины «ЭВМ и периферийные устройства» в

структуре основной образовательной программы бакалавриата.

Дисциплина входит в базовую часть профессионального цикла

образовательной программы бакалавра. Изучение данной дисциплины

базируется на курсах «Математическая логика и теория алгоритмов»,

«Математический анализ», «Информатика», «Программирование»,

«Цифровая схемoтехника». Дисциплина является предшествующей для

выполнения квалификационной работы бакалавра.

3. Компетенции обучающегося, формируемые в результате

освоения дисциплины «ЭВМ и периферийные устройства».

В результате освоения дисциплины у студента формируются

следующие профессиональные и инструментальные компетенции.

Профессиональные компетенции:

Осваивать методики использования программных средств для

решения практических задач (ПК-2).

Разрабатывать компоненты программных комплексов и баз

Page 4: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

4

данных, использовать современные инструментальные средства и

технологии программирования (ПК-5).

Готовить презентации, научно-технические отчеты по результатам

выполненной работы, оформлять результаты исследований в виде

статей и докладов на научно-технических конференциях (ПК-7).

Инсталлировать программное и аппаратное обеспечение для

информационных и автоматизированных систем (ПК-11).

Знает современные тенденции развития информационных

технологий (ПК-25).

Понимает основные принципы организации и функционирования

ЭВМ (ПК-35).

Владеет основными методами классификации вычислительных

систем (ПК-36).

Владеет методами эффективного программирования современных

ЭВМ (ПК-37).

Понимает роль компилятора в формировании эффективного

исполнительного кода (ПК-38).

Способен сопоставлять текстовое представление исполнительного

кода (ассемблер) и исходного кода программы (ЯВУ) (ПК-39).

Понимает тенденции развития архитектур современных

микропроцессоров и мультипроцессоров (ПК-40).

Понимает основные принципы организации и функционирования

компьютеров с общей и распределенной памятями (ПК-41).

Инструментальные компетенции:

Имеет навыки использования инструментальных средств

программирования для ОС семейства Unix (ИК-1).

Владеет языком программирования высокого уровня Си и техникой

программирования (ИК-4).

Имеет навыки решения типовых задач программирования и владеет

основными моделями и методами их решения (ИК-5).

Владеет техникой раздельной компиляции, отладчиком и другими

возможностями интегрированных сред разработки (ИК-6).

Кроме того, дисциплина участвует в формирование следующих

общекультурных компетенций:

Page 5: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

5

Владеет культурой мышления, способен к общению, анализу,

восприятию информации, постановке цели и выбору путей ее

достижения (ОК-1).

Умеет логически верно, аргументированно и ясно строить устную и

письменную речь (ОК-2).

Готов к кооперации с коллегами, работе в коллективе (ОК-3).

Стремиться к саморазвитию, повышению своей квалификации и

мастерства (ОК-6).

Осознает сущность и значение информации в развитии

современного общества; владеет основными методами, способами

и средствами получения, хранения, переработки информации

(ОК-11)

Имеет навыки работы с компьютером как средством управления

информацией (ОК-12)

Способен работать с информацией в глобальных компьютерных

сетях (ОК-13).

Владеет одним из иностранных языков на уровне не ниже

разговорного (ОК-14).

В результате освоения дисциплины студент должен:

Знать:

архитектуру и организацию современных ЭВМ;

организацию иерархической и виртуальной памяти;

конвейерную обработку команд;

классификацию и принципы функционирования периферийных

устройств;

принципы параллельной организации вычислений в ЭВМ.

Уметь:

Использовать возможности реализации параллельной вычислений

для увеличения производительности современных ЭВМ.

Использовать возможности организации иерархической и

виртуальной памяти современных ЭВМ для написания

эффективных программ.

Программировать взаимодействие с периферийными устройствами.

Владеть:

базовыми навыками оптимизации программы под заданную

архитектуру и организацию ЭВМ.

Page 6: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

6

4. Структура и содержание дисциплины «ЭВМ и периферийные

устройства»

Общая трудоемкость дисциплины составляет 4 зачетных единиц, 144

часов.

Табл.1.

п/

п

Раздел

Дисциплины

Сем

ест

р

Нед

еля

сем

естр

а

Виды учебной

работы, включая

самостоятельную

работу студентов и

трудоемкость (в часах)

Формы текущего

контроля

успеваемости

(по неделям

семестра)

Форма

промежуточной

аттестации

(по семестрам) Л ЛР СР Всего

1 Введение. Определение

архитектуры

3 1-2 2 4 6 12 З.С.Р.*(1 нед.)

Лекция 1 2

Лабораторная работа 1 1 2

Лабораторная работа 2 2 2

2 Системная организация

ЭВМ и ПУ

3 2–4 4 4 18 26 З.С.Р.(3 нед.)

Лекция 2-3 4

Лабораторная работа 3 3 2

Лабораторная работа 4 4 2

3 Организация подсистемы

памяти

3 4–8 8 8 16 32 З.С.Р.(6 нед.)

Лекция 4-7 8

Лабораторная работа 5 5-6 4

Лабораторная работа 6 7-8 4

4 Функционирование

процессора

3 8–12 7 8 17 34 Колл-м**(9 нед.)

З.С.Р.(10 нед.) Лекция 8-11 7

Лабораторная работа 7 9-10 4

Лабораторная работа 8 11-12 4

5 Введение в

параллельную обработку

3 11–15 7 6 17 30 Колл-м (13 нед.)

З.С.Р. (14 нед.) Лекция 11-14 7

Лабораторная работа 9 13-14 3

Лабораторная работа 10 14-15 3

6 Специализированные

вычислительные

устройства

3 15 2 4 6

7 Заключение. Тенденции

развития архитектур

микропроцессоров

3 16 2 2 2 4 З.С.Р. (16 нед.)

8 Промежуточная

аттестация

3 17 Диф.зачет

Итого: 32 32 80 144

*З.С.Р – Защита самостоятельных работ.

**Колл-м – коллоквиум.

Page 7: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

7

4.1. Темы лекционных занятий разделов дисциплины

1. Введение. Определение архитектуры

1.1. Цели и задачи курса. Определение архитектуры и организации

компьютера. Основные характеристики и принципы

функционирования ЭВМ.

1.2. Компьютер фон Неймана, его узкие места и усовершенствования.

Основные компоненты современного компьютера.

2. Системная организация ЭВМ и периферийные устройства.

2.1. Обработка прерываний.

2.2. Шины.

2.3. Периферийные устройства. Классификация, принципы

функционирования и основы программирования.

2.4. Классификация периферийных устройств, назначение и основные

характеристики каждого вида периферийных устройств.

2.5. Виды шин в ЭВМ, их назначение и основные характеристики.

2.6. Механизмы обработки прерываний в процессоре.

2.7. Уровни программирования периферийных устройств. Примеры

сред программирования.

3. Организация подсистемы памяти

3.1. Подсистема памяти. Представление данных. Иерархическая

организация памяти.

3.2. Организация кэш-памяти. Способы отображения информации из

оперативной памяти в кэш-память (прямой, частично-

ассоциативный и ассоциативный).

3.3. Аппаратная и программная предвыборка данных в кэш-память.

3.4. Виртуальная память.

3.5. Вопросы эффективного программирования с учетом организации

памяти.

4. Функционирование процессора

4.1. Процессор, его состав и функционирование.

4.2. Набор команд. CISC и RISC-процессоры.

4.3. Конвейеры. Конфликты в конвейерах команд.

4.4. Программные и аппаратные способы их устранения.

5. Введение в параллельную обработку

5.1. Понятие последовательного и параллельного исполнения. Уровни

параллелизма.

5.2. Параллелизм на уровне команд. Суперскалярные и VLIW-

архитектуры. Примеры процессоров (x86/x86-64, Power, ARM).

5.3. Параллелизм на уровне данных. Векторно-конвейерные

архитектуры. SIMD-расширения компьютеров общего назначения.

5.4. Параллелизм на уровне потоков. Многопоточные архитектуры.

5.5. Многоядерные архитектуры. Проблема поддержания

когерентности данных.

6. Специализированные вычислительные устройства

6.1. Архитектура спец. вычислителей.

Page 8: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

8

6.2. Графические ускорители и акселераторы.

6.3. Архитектура ПЛИС. Введение в программирование на ПЛИС.

7. Заключение. Тенденции развития архитектур микропроцессоров

7.1. Обзор современных архитектур и организаций ЭВМ. Проблемы и

тенденции развития микропроцессоров и вычислительных систем.

4.2. Темы лабораторных работ по разделам дисциплины

Студенты по плану выполняют десять обязательных лабораторных

работ. Более того, успешным студентам предлагаются две

дополнительные лабораторные работы повышенной сложности

(лабораторная работа 11 и лабораторная работа 12). Описание

лабораторных работ представлено в разделе 6.

Раздел 1. Введение. Определение архитектуры.

Целью лабораторных работ этого раздела является ознакомление с

такой оптимизацией программ, которая производится автоматически, с

помощью инструментария разработчиков, и способам измерения времени

исполнения программ, количественной характеристики эффективности

реализации программ.

Лабораторная работа 1. «Определение времени работы приклад-

ных программных программ».

Лабораторная работа 2. «Изучение оптимизирующего компиля-

тора»

Раздел 2. Системная организация ЭВМ и периферийные устройства.

Целью лабораторных работ данного раздела является ознакомление

с программированием периферийных устройств на прикладном и

системном уровнях.

Лабораторная работа 3. «Высокоуровневая работа с периферий-

ными устройствами».

Лабораторная работа 4. «Низкоуровневая работа с периферийны-

ми устройствами».

Раздел 3. Организация подсистемы памяти. Целью лабораторных работ этого раздела является изучение на

практике влияния параметров организации кэш-памяти (размер кэш-

памяти, размер строки кэш-памяти, степень ассоциативности) на время

исполнения программ. В результате студент приобретает умение с

помощью изменения порядка обхода обрабатываемых данных

существенно уменьшать время исполнения программы.

Лабораторная работа 5. «Влияние кэш-памяти на время обработки

массивов».

Лабораторная работа 6. «Измерение степени ассоциативности

кэш-памяти».

Page 9: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

9

Раздел 4. Функционирование процессора.

Целью лабораторных работ данного раздела является ознакомление

с конкретными примерами CISC архитектур (x86 и x86-64), RISC

архитектур (ARM) путем изучения сгенерированного по исходной

программе на Си ассемблерного листинга в статике и в динамике, с

использованием инструментальных средств отладки.

Лабораторная работа 7. «Введение в архитектуру x86/x86-64».

Лабораторная работа 8. «Введение в архитектуру ARM» .

Раздел 5. Введение в параллельную обработку

Целью лабораторных работ данного раздела является

ознакомление с двумя формами параллельной обработки программ:

параллелизм на уровне данных и на уровне потоков.

Лабораторная работа 9. «Векторизация вычислений».

Лабораторная работа 10. «Совместный доступ нескольких

потоков к данным общей памяти».

5. Образовательные технологии

В ходе освоения дисциплины «ЭВМ и периферийные устройства»

используются следующие виды организации учебного процесса:

лекции,

лабораторные работы,

самостоятельная работа,

коллоквиумы.

При разработке образовательной технологии организации учебного

процесса основной упор сделан на соединение активной и интерактивной

форм обучения, с переносом «центра тяжести» в интерактивную форму

обучения. Интерактивная форма позволяет студентам проявить

самостоятельность в освоении теоретического материала и овладении

практическими навыками, формирует интерес и позитивную мотивацию

к учебе.

5.1. Лекции

Лекционный курс разбит на несколько основных разделов. На

лекциях изложению нового материала предшествуют обсуждение

предыдущей темы лекции с целью восстановления и закрепления

студентами изученного теоретического материала и ответы на вопросы

студентов. Затем излагается материал лекции с использованием

мультимедийной презентации. В конце лекции выделяется время для

ответов на вопросы по текущему материалу и его обсуждению. В

Page 10: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

10

течение семестра провидятся два коллоквиума для проверки

теоретических знаний. Такой подход позволяет выявить и устранить

пробелы в понимании материала лекций. Каждая тема теоретического

материала курса осваивается и закрепляется при выполнении

лабораторных и самостоятельных работ.

Материалы лекций, лабораторных и самостоятельных работ

выложены на сайте кафедры ПВ (http://ssd.sscc.ru/ru/chair/nsu/computer-

and-peripherals). Это позволяет реализовать технологию опережающей

самостоятельной работы и уделить больше времени интерактивной

работе в ходе аудиторных занятий.

5.2. Лабораторные работы

Лабораторные работы проводятся в терминальном классе по

следующей схеме. В начале каждого аудиторного занятия

рассматривается очередное практическое задание, объясняется её суть с

привлечением необходимого теоретического материала. Затем каждый

студенты выполняет практическое задание, по ходу обсуждая с

преподавателем возникающие вопросы.

В конце аудиторного занятия проводится разбор решений

практических заданий в интерактивной форме, и объясняется очередное

задание для самостоятельного выполнения студентами. Кроме этого,

проводится обсуждение вопросов, возникших у студентов в процессе

выполнения предыдущих самостоятельных работ.

В ходе выполнения лабораторных работ преподаватель

индивидуально беседует со студентами и принимает выполненные

самостоятельные работы, а студент защищает свою работу, устно отвечая

на дополнительные вопросы преподавателя.

5.2. Самостоятельные работы

Самостоятельная работа студента состоит в повторении и усвоении

лекционного материала дома по конспектам лекций, в выполнении

самостоятельных заданий в терминальном классе (по согласованию с

преподавателем) или дома (при наличии необходимого программного и

аппаратного обеспечения) и выполнении лабораторных работ

повышенной сложности. Кроме того, самостоятельная работа включает

подготовку к коллоквиумам и дифференцированному зачету. По

результатам выполнения лабораторных работ оформляется отчет в виде

пояснительной записки по каждому заданию и защищается студентом

лично.

По собственному желанию и по согласованию с преподавателем

студент может выполнять нестандартное более сложное задание,

например, включающее вопросы исследовательского характера,

Page 11: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

11

связанное с углубленным изучением материала курса. Такое

индивидуальное задание обсуждается с преподавателем и, при успешном

выполнении, учитывается при промежуточном контроле успеваемости

студента. Аналогично заданиям для самостоятельного выполнения,

усложнённое задание также сопровождается отчётом в форме

пояснительной запиской.

Материалы лекций, лабораторных и самостоятельных работ,

список литературы выложены на сайте кафедры ПВ

(http://ssd.sscc.ru/ru/chair/nsu/computer-and-peripherals). Это позволяет

реализовать технологию опережающей самостоятельной работы и

уделить больше времени интерактивной работе в ходе аудиторных

занятий.

При выполнении лабораторных и самостоятельных работ студенты

получают доступ к современным высокопроизводительным системам

Сибирского суперкомпьютерного центра (ИВМиМГ СО РАН),

оборудованию отдела МОВВС ИВМиМГ СО РАН, оборудованию НГУ.

Кроме того, студенты привлекаются к участию в зимней и летней школах

(http://ssd.sscc.ru/school/index.html), проводимых кафедрой ПВ НГУ на

базе отдела МОВВС СО РАН. В ходе школы студенты выполняют

проекты, связанные с тематикой курса, в группах по 2-3 человека.

Проекты предусматривают решение одной из подзадач реальных

научных проектов отдела МОВВС. Таким образом, студенты имеют

возможность получить опыт работы в научном учреждении над

реальными проектами в кооперации с другими студентами и

сотрудниками научного института.

6. Оценочные средства для текущего контроля успеваемости,

промежуточной аттестации по итогам освоения дисциплины и

учебно-методическое обеспечение самостоятельной работы студентов

Аттестация студентов по дисциплине «ЭВМ и периферийные

устройства» проводится на основании текущего и промежуточного

контроля согласно модульно-рейтинговой системе.

Текущая аттестация студента за семестр оценивается суммой

баллов по итогам выполнения и защиты самостоятельных работ и по

итогам ответов на вопросы коллоквиумов. Максимальное количество

баллов за каждую защиту самостоятельной работы – 8 баллов, за

коллоквиум – 6 баллов. Максимальное количество баллов за защиту

самостоятельных работ и ответы на вопросы коллоквиумов приведены в

таблице (табл.2). Сумма баллов выставляется исходя из правильности и

полноты ответов студента на вопросы во время защиты самостоятельной

работы и коллоквиума.

Page 12: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

12

Максимальное количество баллов за текущую аттестацию

составляет 60. Максимальная сумма баллов промежуточной аттестации

(дифференцированный зачет) составляет 40 баллов.

Правила промежуточной аттестации студентов.

1. К дифференцированному зачету не допускаются студенты, работа

которых на основании текущего контроля оценивается преподавателем

менее чем в 50 баллов.

2. Студенты, которые получили 60 баллов по результатам текущего

рейтинга и выполнили 2 дополнительные лабораторные работы

повышенной сложности, получают оценку «хорошо» без сдачи

диф.зачета. Если студента эта оценка не устраивает, то он сдает

диф.зачет.

3. Билет включает два теоретических вопроса и один вопрос по

практической части. Вопросы к диф.зачету выложены на сайте кафедры

(http://ssd.sscc.ru/ru/chair/nsu/computer-and-peripherals).

табл.2.

Вид учебной деятельности Максимальное

число баллов

Защита самостоятельных работ 48

Коллоквиумы 12

Зачет 40

Итого за семестр: 100

Итоговая оценка выставляется в зависимости от числа баллов:

87-100 – «отлично»,

74-86 – «хорошо»,

50-73 – «удовлетворительно»,

менее 50 – «неудовлетворительно».

Описание лабораторных работ

Лабораторная работа 1. Определение времени работы приклад-

ных программных программ.

Цели работы

1. Изучение методики измерения времени работы подпрограммы.

2. Изучение приемов повышения точности измерения времени работы

подпрограммы.

3. Изучение способов измерения времени работы подпрограммы.

4. Измерение времени работы подпрограммы в прикладной программе.

Page 13: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

13

Задание к лабораторной работе

1. Написать программу на языке C или C++, которая реализует

выбранный алгоритм из задания.

2. Проверить правильность работы программы на нескольких тестовых

наборах входных данных.

3. Выбрать значение параметра N таким, чтобы время работы программы

было порядка 15 секунд.

4. По приведенной методике определить время работы подпрограммы

тестовой программы с относительной погрешностью не более 1%.

5. Составить отчет по лабораторной работе.

Контрольные вопросы

1. Каковы цели измерения времени?

2. В чем состоит методика измерения времени работы программы?

3. Какие существуют способы измерения времени работы программы и в

чем их особенности?

4. Каким способом лучше измерять большие промежутки времени

(порядка нескольких часов)?

5. Каким способом лучше измерять малые промежутки времени (порядка

времени работы нескольких команд процессора)?

Лабораторная работа 2. Изучение оптимизирующего компиля-

тора.

Цели работы

1. Изучение основных функций оптимизирующего компилятора, и

некоторых примеров оптимизирующих преобразований и уровней

оптимизации.

2. Получение базовых навыков работы с компилятором GCC.

3. Исследование влияния оптимизационных настроек компилятора GCC

на время исполнения программы.

Задание к лабораторной работе

1. Написать программу на языке C или C++, которая реализует

выбранный алгоритм из задания.

2. Проверить правильность работы программы на нескольких тестовых

наборах входных данных.

3. Выбрать значение параметра N таким, чтобы время работы программы

было порядка 30-60 секунд.

4. Программу скомпилировать компилятором GCC с уровнями

оптимизации -O0, -O1, -O2, -O3, -Os, -Ofast, -Og под архитектуру

процессора x86.

5. Для каждого из семи вариантов компиляции измерить время работы

Page 14: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

14

программы при нескольких значениях N.

6. Составить отчет по лабораторной работе.

Контрольные вопросы

1. Каковы главные функции оптимизирующего компилятора?

2. По каким критериям может осуществляться оптимизация программ?

3. Какие бывают примеры оптимизирующих преобразований, что они

оптимизируют, в чем их суть?

4. Всегда ли оптимизирующая компиляция позволяет уменьшить время

работы программы?

5. Чем отличается общая оптимизация от оптимизации под архитектуру?

6. Какие имеются группы ключей в GCC?

7. Какие уровни оптимизации есть в GCC, и чем они характеризуются?

Лабораторная работа 3. Высокоуровневая работа с перифе-

рийными устройствами

Цель работы

1. Ознакомиться с программированием периферийных устройств на

примере ввода данных с Web-камеры с использованием библиотеки

OpenCV.

Задание к лабораторной работе.

1. Реализовать программу с использованием OpenCV, которая получает

поток видеоданных с камеры и выводит его на экран.

2. Выполнить произвольное преобразование изображения.

3. Измерить количество кадров, обрабатываемое программой в секунду.

Оценить долю времени, затрачиваемого процессором на обработку (ввод,

преобразование, показ) видеоданных, получаемых с камеры.

4. Составить отчет по лабораторной работе.

Контрольные вопросы

1. Что такое OpenCV? Какие задачи решает OpenCV?

2. Как с помощью OpenCV получить изображение с видеокамеры и

вывести его на экран?

3. Какие способы преобразования изображений можно использовать,

применяя OpenCV.

Лабораторная работа 4. Низкоуровневая работа с периферийными

устройствами.

Цель работы

1. Знакомство с основами низкоуровневого программирования

периферийных устройств на примере получения информации о

доступных USB-устройствах с помощью библиотеки libusb.

Page 15: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

15

Задание к лабораторной работе

1. Реализовать программу, получающую список всех подключенных к

машине USB устройств с использованием libusb. Для каждого

найденного устройства напечатать его класс, идентификатор

производителя и идентификатор изделия. За основу для разработки

можно взять программу, приведенную в листинге 1.

2. Изучить состав и характеристики обнаруженных с помощью

реализованной программ USB устройств.

3. Дополнить программу, реализованную в п. 2 функцией печати

серийного номера USB устройства. Для написания функции

рекомендуется использовать функции libusb_open, libusb_close,

libusb_get_string_descriptor_ascii для печати поля iSerialNumber

дескриптора устройства.

4. Составить отчет по лабораторной работе.

Контрольные вопросы

1. Что такое libusb? Какие задачи решает libusb?

2. На какие группы можно разбить функции libusb?

3. Как с помощью библиотеки libusb получить состав и конфигурацию

USB-устройств?

Лабораторная работа 5. Влияние кэш-памяти на время обработки

массивов.

Цели работы

1. Исследование зависимости времени доступа к данным в памяти от их

объема.

2. Исследование зависимости времени доступа к данным в памяти от

порядка их обхода

Задание к лабораторной работе

1. Реализовать программу с использованием OpenCV, которая получает

поток видеоданных с камеры и выводит его на экран.

2. Выполнить произвольное преобразование изображения.

3. Измерить количество кадров, обрабатываемое программой в секунду.

Оценить долю времени, затрачиваемого процессором на обработку (ввод,

преобразование, показ) видеоданных, получаемых с камеры.

4. Составить отчет по лабораторной работе.

Контрольные вопросы

1. Что такое кэш-память? Какую проблему она решает?

2. Какой способ обхода данных в памяти является самым быстрым?

Почему?

Page 16: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

16

3. Какой способ обхода данных в памяти является самым медленным?

Почему?

4. Для каких программ наличие кэш-памяти дает выигрыш во времени

работы?

5. По каким основным причинам случайный обход массива дольше, чем

прямой и обратный?

6. Почему тип обхода не сказывается на времени доступа к памяти, если

массив умещается в кэш-памяти первого уровня?

7. Чем отличаются программная и аппаратная предвыборка данных?

Лабораторная работа 6. Измерение степени ассоциативности кэш-

памяти.

Цель работы

Экспериментальное определение степени ассоциативности кэш-памяти.

Задание к лабораторной работе

1. Разработать программу, измеряющую время доступа к памяти при

буксовании кэш-памяти и без него.

2. Измерить время доступа к памяти при различных предполагаемых

степенях ассоциативности кэш-памяти.

3. Экспериментально определить степень ассоциативности кэш-памяти.

Контрольные вопросы

1. Что такое степень ассоциативности кэш-памяти?

2. Каковы достоинства и недостатки множественно-ассоциативной кэш-

памяти?

3. Что такое эффект «буксования» кэш-памяти? Как его вызвать? Как его

избежать?

4. Какое минимальное число элементов требуется, чтобы организовать

эффект «буксования» кэш-памяти (при «наихудшем» размещении этих

элементов в оперативной памяти)?

5. Какой график получится в результате тестирования, если величину

смещения между фрагментами взять равной половине размера банка?

Лабораторная работа 7. Введение в архитектуру x86/x86-64.

Цели работы

1. Знакомство с программной архитектурой x86/x86-64.

2. Анализ ассемблерного листинга программы для архитектуры x86/x86-

64.

Задание к лабораторной работе

Page 17: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

17

1. Изучить программную архитектуру x86/x86-64:

набор регистров,

основные арифметико-логические команды,

способы адресации памяти,

способы передачи управления,

работу со стеком,

вызов подпрограмм,

передачу параметров в подпрограммы и возврат результатов,

работу с арифметическим сопроцессором,

работу с векторными расширениями.

2. Для программы на языке Си (из лабораторной работы 1) сгенерировать

ассемблерные листинги для архитектуры x86 и архитектуры x86-64,

используя различные уровни комплексной оптимизации.

3. Проанализировать полученные листинги и сделать следующее.

1. Сопоставить команды языка Си с машинными командами.

2. Определить размещение переменных языка Си в программах на

ассемблере (в каких регистрах, в каких ячейках памяти).

3. Описать и объяснить оптимизационные преобразования,

выполненные компилятором.

Продемонстрировать использование ключевых особенностей

архитектур x86 и x86-64 на конкретных участках

ассемблерного кода.

Сравнить различия в программах для архитектуры x86 и

архитектуры x86-64.

4. Составить отчет по лабораторной работе.

Контрольные вопросы

1. В чем заключаются отличия между архитектурами x86 и x86-64?

2. Почему в программах следует избегать лишних обращений в память?

3. Как зависимости между командами влияют на процесс исполнения

программы? Как компилятор и процессор борются с ними?

Лабораторная работа 8. Введение в архитектуру ARM .

Цели работы

1. Знакомство с программной архитектурой ARM.

2. Анализ ассемблерного листинга программы для архитектуры ARM.

Задание к лабораторной работе

1. Изучить основы программной архитектуры ARM.

2. Для программы на языке Си (из лабораторной работы 1) сгенерировать

ассемблерные листинги для архитектуры ARM, используя различные

Page 18: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

18

уровни комплексной оптимизации.

3. Проанализировать полученные листинги и сделать следующее:

Сопоставить команды языка Си с машинными командами.

Определить размещение переменных языка Си в программах на

ассемблере (в каких регистрах, в каких ячейках памяти).

Описать и объяснить оптимизационные преобразования,

выполненные компилятором.

Продемонстрировать использование ключевых особенностей

архитектуры ARM на конкретных участках ассемблерного кода.

4. Составить отчет по лабораторной работе.

Контрольные вопросы

1. В чем заключаются отличия между архитектурами CISC и RISC?

2. Какие имеются отличив между CISC архитектурой x86/x86-64 и RISC

архитектурой ARM?

3. Что такое условные команды? Какие примеры условных команд

имеются в архитектуре ARM.

4. В чем заключаются особенности команд обращения в память в

архитектуре ARM?

Лабораторная работа 9. Векторизация вычислений.

Цели работы

1. Изучение SIMD-расширений архитектуры x86/x86-64.

2. Изучение способов использования SIMD-расширений в программах на

языке Си.

3. Получение навыков использования SIMD-расширений.

Задание к лабораторной работе

1. Реализовать алгоритм обращения матрицы через разложение в ряд в

трёх вариантах.

2. Сравнить времена выполнения программ.

Вариант 1 – без ручной векторизации вычислений

Вариант 2 – с ручной векторизацией

Вариант 3 – с использованием библиотеки BLAS

Контрольные вопросы:

1.Что такое SIMD-расширение архитектуры? Зачем вводятся SIMD-

расширения обычных архитектур?

2. Какие SIMD-расширения архитектуры x86/x86-64 сейчас существуют?

С какими регистрами и типами данных работает каждое SIMD-

расширение?

Page 19: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

19

3. Какие существуют способы использования SIMD-расширений в

программах на языке Си?

Лабораторная работа 10. Совместный доступ нескольких

потоков к данным общей памяти.

Цели работы

1. Знакомство с организацией согласованности данных в многоядерных

компьютерах с общей памятью.

2. Исследование особенностей доступа нескольких параллельно

работающих потоков к данным в общей памяти.

Задание к лабораторной работе:

1. Написать программу, осуществляющую одновременный доступ

двух потоков к элементам одного массива длиной N элементов

целочисленного типа (4 байта). Первый поток всегда обрабатывает

элемент с номером N/2. Второй поток обрабатывает i-й элемент, где

индекс i пробегает по всем элементам массива. Под обработкой элемента

массива будем понимать M-кратную операцию его инкремента.

2. Построить график зависимости времени одной операции

инкремента во втором потоке от номера обрабатываемого элемента, при

этом использовать замер времени с помощью подсчета числа тактов

процессора.

3. По графику определить размер блока, который является единицей

данных для протокола поддержания когерентности.

4. Составить отчет по практической работе.

Контрольные вопросы:

1. Как поддерживается согласованность данных в кэш-памяти

различных ядер многоядерных процессоров?

2. Что такое протокол когерентности?

3. Как несколько потоков, одновременно работающих на различных

ядрах с различными данными в одном адресном пространстве, могут

влиять на скорость работы друг друга?

4. Что такое ложное разделение кэш-строк? Как оно устраняется?

Лабораторная работа 11. Работа с устройства ввода видеоданных

и обработка видеоданных.

Цель работы:

1. Ознакомиться с программированием ввода видеоданных с Web-камеры

с использованием библиотеки OpenCV.

2. Ознакомиться с программированием обработки кадров видеопотока.

Page 20: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

20

Задание к лабораторной работе:

1. Реализовать программу с использованием OpenCV, которая получает

поток видеоданных с камеры и сохраняет его в файл.

2. Реализовать программу, считывающую видеопоток из файла и

сохраняющую его в другой файл в заданном формате.

3. Реализовать локальные фильтры для сглаживания и оконтуривания

изображений видеопотока на базе программы из п. 2 с использованием

функций фильтрации OpenCV.

4. Релизовать фильтры из п. 3 с использованием попиксельной обработки

изображений

5. Составить отчет по лабораторной работе.

Контрольные вопросы:

1. Какие задачи решает локальная фильтрация изображений? Какие

бывают линейные локальные фильтры?

2. Чем отличаются линейный и рекурсивный фильтры?

3. Каков состав и назначение функций локальной фильтрации в

библиотеке OpenCV?

4. Каким образом осущесвляется попиксельная обработка изображений в

приложениях на базе библиотеки OpenCV?

Лабораторная работа 12. Введение в программирование на ПЛИС.

Цель работы:

1. Ознакомиться с основами программирования ПЛИС на примере FPGA

Xilinx Spartan 3E и языка VHDL.

2. Ознакомиться с основами языка описания схем VHDL (или Verilog).

3. Ознакомиться с платами разработчика на ПЛИС на примере платы

Papilio One 500K.

Задания к лабораторной работе:

1. Установить среду Xilinx WebPack и программное обеспечение для

платы разработчика на ПЛИС Papilio One 500K.

2. Собрать схему с двумя светодиодами с использованием платы

разработчика на ПЛИС Papilio One 500K.

3. Написать на языке VHDL (или Verilog) программу, включающей

попеременно один из двух светодиодов с заданной частотой.

Протестировать программу.

4. Написать и протестировать программу, реализующую калькулятор с

четырьмя арифметическими операциями над целыми 32-битными

числами, который доступен с персонального компьютера через

виртуальный постедовательый порт поверх интерфейса USB.

Контрольные вопросы:

Page 21: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

21

1. Какие виды ячеек и блоков имеются в ПЛИС и каковы выполняемые

ими функции?

2. Какие имеются виды программных инструментов для разработчика на

ПЛИС?

3. Каковы возможности и характеристики семейства Xilinx Spartan 3E?

4. Каковы возможности и характеристики платы разработчика на ПЛИС

Papilio One 500K?

5. Каковы назначение и возможности языка VHDL (или Verilog)?

Вопросы для защиты самостоятельных работ

Раздел 1

1. Каковы функции компилятора? Какие виды оптимизации может

применять компилятор?

2. Какие варианты исполняемого кода может генерировать компилятор?

3. Всегда ли увеличение уровня оптимизации компилятора ведет к

ускорению выполнения программы?

4. Какие вы знаете способы измерения времени? Чем они отличаются?

5. Что такое оптимизация под архитектуру процессора?

6. Как повысить точность измерения времени исполнения фрагмента

кода?

Раздел 2

1. Опишите схему взаимодействия нескольких устройств, подключённых

к общей шине. Какие проблемы могут при этом возникать?

2. Какие существуют типы обработки прерываний? Какова область

применения каждого типа? Приведите примеры таких устройств.

3. В каких случаях необходимо использование арбитра? Когда

необходим децентрализованный арбитраж?

4. Как разрешается ситуация с одновременно возникающими

прерываниями?

5. Где в современных ЭВМ используются прерывания? Какие бывают

виды прерываний?

Раздел 3

1. Назовите основной принцип организации иерархии памяти.

2. Какие типы обхода массивов способен предсказать аппаратный

предвыборщик данных в кэш-память?

3. Что такое кэш-память? Перечислите параметры кэш-памяти.

4. Что такое TLB? Для чего он нужен? Перечислите параметры TLB.

Page 22: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

22

5. Какой порядок обхода данных в памяти является самым быстрым?

6. Назовите две основные причины, по которым последовательный

обход быстрее случайного.

7. Предложите минимальную выборку данных (по адресам), которую

невозможно одновременно разместить в 4-х ассоциативной кэш-

памяти?

8. Каково общее правило для шага, с которым должен осуществляться

обход данных, чтобы появился эффект кэш-буксования?

9. Какие существуют способы обхода кэш-буксования, если оно

возникло в программе?

10. В каком порядке обход элементов многомерного статического массива

в языке Си будет наиболее быстрым?

Раздел 4

1. Назовите отличия архитектур x86 и x86-64.

2. Какова семантика данной инструкции? Какова роль этой инструкции с

точки зрения программы в целом?

3. Как реализуется данный оператор из исходной программы в

ассемблере?

4. Для чего выполняется программная раскрутка цикла?

5. Для чего выполняется программная конвейеризация цикла?

6. Какие способы оптимизации применил компилятор? Объясните

принципы их работы. Почему компилятор применяет те или иные

способы оптимизации, только начиная с определённого уровня?

7. Почему в программах следует избегать обращений в память?

8. Как зависимости между командами влияют на процесс исполнения

программы? Как компилятор и процессор борются с ними?

Раздел 5

1. Что такое SIMD-расширение?

2. Назовите существующие SIMD-расширения архитектуры x86/x86-64.

С какими регистрами и типами данных каждое из них работает?

3. Какое максимальное ускорение можно ожидать при использовании

расширения SSE? Всегда ли оно достижимо? Какие факторы могут

препятствовать достижению максимального ускорения при

векторизации?

4. Какие классы алгоритмов возможно векторизовать? Какие должны

выполняться необходимые условия для возможности векторизации

вычислений?

Page 23: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

23

5. Какие существуют способы использования SIMD-расширений в

пользовательских программах?

Раздел 6

1. Перечислите виды аппаратной многопоточности, реализованные в

микропроцессоре Cell.

2. Перечислите основные отличия архитектуры GPU от архитектур

процессоров общего назначения.

Раздел 7

1. Какие существуют проблемы увеличения производительности

последовательных вычислительных систем?

2. Назовите основные тенденции развития микропроцессоров общего

назначения.

Вопросы к коллоквиуму 1

1. Объясните, почему одна программная архитектура ЭВМ может иметь

множество различных аппаратных архитектур.

2. В множество с каким номером может быть помещен блок памяти,

содержащий ячейку с адресом N, если известно, что кэш имеет размер

16 Кбайт, является двух-ассоциативным и размер строки кэша равен

32 байтам? Обоснуйте ответ. N = A*32 + B, где А – номер ряда, а B –

номер места.

3. Какие существуют соотношения между временем доступа, объемом и

стоимостью памяти?

4. Сравните механизмы управления памятью: кэширование и

виртуальная память.

5. Какое преимущество даёт конвейерное исполнение команд? Что

мешает работе конвейера?

6. Назовите факторы, являющиеся существенными при выборе

централизованного или децентрализованного арбитража шины.

7. Объясните причину, по которой программирование периферийных

устройств разделено на три уровня: без операционной системы, на

уровне операционной системы и на прикладном уровне.

8. Сравнение быстрых и медленных шин. По каким ключевым

параметрам они различаются? В чем их сильные и слабые стороны?

9. Какие имеются основные виды устройств ввода-вывода? Какими

ключевыми параметрами характеризуется каждый из видов?

Вопросы к коллоквиуму 2

1. Чем отличаются форматы команд CISC и RISC?

2. Каково назначение процедуры «переименования» регистров? Как она

реализуется?

Page 24: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

24

3. Назовите причины введения регистрового окна в RISC-процессорах.

4. За счет чего конвейеры в RISC-процессорах работают быстрее, чем в

CISC-процессорах?

5. Каковы преимущества исполнения команд вне порядка? Как при этом

обеспечивается корректность исполнения последовательной программы?

6. Зачем используется предсказание переходов? Сравните механизмы

предсказания переходов.

7. Какими свойствами должна обладать программа, чтобы ее возможно

было векторизовать?

Вопросы к дифференцированному зачету

Раздел 1.

1. Основные архитектурные принципы построения компьютера.

Компьютер фон Неймана. Узкие места компьютера фон Неймана и

его усовершенствования.

Раздел 2.

2. Принципы взаимодействия ЭВМ с периферийными устройствами.

3. Механизм прерываний. Два способа выполнения прерываний.

Арбитраж шины.

Раздел 3.

4. Иерархия памяти. Основной принцип построения иерархической

памяти. Типичная схема иерархии памяти.

5. Определение кэш-памяти. Параметры кэш-памяти. Временные

характеристики.

6. Алгоритмы отображения информации (программы и данных) в

кэш-память. Алгоритмы замещения строк в кэш-памяти.

Сравнительный анализ алгоритмов.

7. Алгоритмы записи данных в оперативную память. Сравнительный

анализ алгоритмов.

8. Проблемы поддержания когерентности данных. Способы их

решения.

9. Понятие виртуальной памяти. Способы управления виртуальной

памятью. Их сравнение.

10. Рекомендации эффективного программирования с учетом

организации памяти.

Раздел 4.

11. Процессор, его состав и функционирование. Техника

конвейеризации. Передача данных на конвейере. Временные

оценки сложности.

Page 25: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

25

12. Командный конвейер. Пример командного конвейера. Способы

увеличения производительности конвейера. Причины

приостановки конвейера и техника их преодоления.

13. Принципы оптимизации программ. Способы оптимизации

программ, используемые компиляторами.

14. Способы предсказания переходов. Виды динамических

предсказателей переходов.

15. CISC и RISC архитектуры. Основные характеристики. Сравнение.

Реализация в современных микропроцессорах.

16. Архитектуры x86, x86-64.

17. Архитектура ARM.

Раздел 5.

18. Виды параллелизма в компьютерах. Классификация компьютеров с

точки зрения параллелизма.

19. Компьютеры с параллелизмом на уровне команд (ILP). Способы

выявления и реализации ILP. Примеры компьютеров.

20. Компьютеры с параллелизмом на уровне данных (DLP). Способы

выявления и реализации DLP. Примеры компьютеров.

21. Структура суперскалярного процессора. Причины, ограничивающие

производительность суперскаляров, и средства их преодоления.

Примеры суперскалярных процессоров.

22. Понятие многопоточности. Средства синхронизации потоков.

23. Способы реализации аппаратной многопоточности и их

особенности. Примеры микропроцессоров.

Раздел 6.

24. Архитектура графических ускорителей. Иерархия памяти.

Особенности исполнения и планирования подпрограмм.

25. Введение в архитектуру ПЛИС и средства разработки приложений

на базе ПЛИС.

Раздел 7.

26. Проблемы и тенденции развития компьютеров общего назначения.

7. Учебно-методическое и информационное обеспечение дисциплины

а) основная литература:

1) Таненбаум Э. Остин Т. Архитектура компьютера. СПб.: Питер,

2014. – 816 с.

2) Гуров В.В. Архитектура микропроцессоров: Учебное пособие. –

М.: Интернет-Университет Информационных Технологий: БИНОМ.

Лаборатория знаний, 2012. – 272 с.

Page 26: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

26

3) Калачев А.В. Многоядерные процессоры: Учебное пособие.– М.:

Интернет-Университет Информационных Технологий: БИНОМ.

Лаборатория знаний, 2011. – 247 с.

б) дополнительная литература:

1) Антошина И.В., Котов Ю.Т. Микропроцессоры и

микропроцессорные системы (аналитический обзор): Учебное пособие. -

М.: МГУЛ, 2005. – 432 с.

2) Зубков С.В. Assembler для DOS, Windows и UNIX. – М. ДМК, 2006.

– 608 с.

3) Гук М., Юров В. Процессоры Pentium 4, Athlon и Duron. – СПб.:

Питер, 2002. – 512 c.

4) В.В.Корнеев, А.В.Киселев Современные микропроцессоры, 3-е

изд., перераб. и доп. – СПб.: БХВ-Петербург, 2003. – 440 с.

5) Корнеев В.В. Параллельные вычислительные системы. – М.:

Нолидж, 1999. – 311 c.

6) Касперски К. Техника оптимизации программ. Эффективное

использование памяти. – СПб.: БХВ-Петербург, 2003. – 464 с.

7) Грушин В.В. Выполнение математических операций в ЭВМ.

Погрешности компьютерной арифметики: Учебное пособие / СПбГЭТУ

"ЛЭТИ". СПб., 1999. 56 с.

8) Папков В.И. Система памяти ЭВМ (Функциональный подход).

Учеб. пособие. СПб.: Изд.центр СПбГМТУ. 2002. 238 с.

9) Столлингс В. Структурная организация и архитектура

компьютерных систем. 5-е издание. - М.: Издательский дом "Вильямс",

2002. – 896 с.

10) Шнитман В. Современные высокопроизводительные компьютеры,

информационно-аналитические материалы Центра Информационных

Технологий, 1996. (http://www.citforum.ru/hardware/svk/contents.shtml)

11) Хеннинг Дж. SPEC CPU 2000: определение производительности в

новом тысячелетии (http://www.osp.ru/os/2000/07-08/178080/).

12) D. Sima, T. Fountain, P. Kacsuk. Advanced computer architectures.

New York: Addison Wesley Longman Inc., 1997.

13) IBM PowerPC 970FX RISC Microprocessor User’s Manual, 2005.

14) Intel®64 and IA-32 Architectures Software Developer’s Manual, 2007.

15) Intel Itanium Architecture Software Developer’s Manual, 2006.

16) PowerPC User Instruction Set Architecture, 2005.

17) Ulrich Drepper, What Every Programmer Should Know About Memory,

2007. (http://www.akkadia.org/drepper/cpumemory.pdf) – P. 114.

18) Top 500 Supercomputer Sites (http://www.top500.org).

19) The Green 500 List, http://green500.org

20) Суперкомпьютеры Top 50 (http://supercomputers.ru).

21) Материалы к курсу на сайте кафедры ПВ ФИТ НГУ

(http://ssd.sscc.ru/ru/chair/nsu/computer-and-peripherals)

Page 27: Федеральное государственное бюджетное …fit.nsu.ru/data_/docs/bak/program/EVMiPV.pdf · программ под заданную архитектуру

27

в) программное обеспечение и Интернет-ресурсы:

1) ОС Linux, компилятор языка Си, библиотека BLAS

2) Доступ в интернет по протоколам HTTP и SSH для доступа к

ресурсам кафедры

3) OpenOffice/MS Office (Word, Excel, PowerPoint).

4) SSH-клиент (PuTTY)

8. Материально-техническое обеспечение дисциплины Лекции читаются в специальной лекционной аудитории, обеспеченной

средствами отображения презентаций и других лекционных материалов

на экран. Практические занятия проводятся в компьютерных аудиториях

с отдельными рабочими местами для каждого студента.

Рецензент (ы) _________________________

Программа одобрена на заседании Методической комиссии ФИТ

от ___________ года, протокол № _______