МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Государственное образовательное учреждение высшего профессионального образования
«Новосибирский государственный университет» (НГУ)
Факультет информационных технологий
УТВЕРЖДАЮ
_
« _» _ 20_г.
РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ
Введение в технологии параллельного решения больших задач НАПРАВЛЕНИЕ ПОДГОТОВКИ 230100 «ИНФОРМАТИКА ИВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»
Квалификация (степень) выпускника Бакалавр Форма обучения очная Новосибирск Программа дисциплины «Введение в технологии параллельного решения больших задач» составлена в соответствии с требованиями ФГОС ВПО к структуре и результатам освоения основных образовательных программ бакалавриата по направлению подготовки 230100 «Информатика и вычислительная техника» («Профессиональный цикл. Вариативная часть. Дисциплина по выбору студента»), а также задачами, стоящими перед Новосибирским государственным университетом по реализации Программы развития НГУ.Авторы:
Малышкин Виктор Эммануилович, д.т.н., профессор, Перепелкин Владислав Александрович, ассистент Факультет информационных технологий Кафедра параллельных вычислений 1. Цели освоения дисциплины Целью освоения дисциплины «Введение в технологии параллельного решения больших задач» является приобретение знаний и умений для организации параллельного решения больших задач на мультикомпьютерах с комплексным учетом как свойств алгоритмов решения задач так и особенностей архитектуры вычислителей и их системного программного обеспечения.
Для достижения поставленной цели выделяются задачи курса:
Изучение технологий и основного инструментария разработки параллельных программ, реализующих параллельно большие численные модели.
Изучение влияния различных факторов (архитектура и конфигурация вычислителя, его системное программное обеспечение, свойства и структура прикладных алгоритмов, необходимые свойства результирующей прикладной параллельной программы) на принимаемые проектные решения.
Изучение принципов разработки параллельных программ, реализующих параллельно большие численные модели.
Выполнение учебно-тренировочного проекта по разработке параллельного программного обеспечения, реализующую большую математическую модель.
Цель освоения дисциплины в полной мере отвечают основным целям программы бакалавриата по направлению 230100.62 «Информатика и вычислительная техника»:
«ООП бакалавриата по направлению подготовки 230100 «Информатика и вычислительная техника» имеет своей целью развитие у студентов личностных качеств, а также формирование общекультурных-универсальных (общенаучных, социально-личностных, инструментальных) и профессиональных компетенций в соответствии с требованиями ФГОС ВПО по данному направлению подготовки».
«В области обучения общими целями основной образовательной программы бакалавриата являются: подготовка в области основ гуманитарных, социальных, экономических, математических и естественнонаучных знаний, получение высшего профессионального образования, позволяющего выпускнику успешно проводить ориентированные на производство разработки и научные исследования, направленные на развитие и применение информационных технологий, оформлять результаты научных исследований в виде публикаций в научных изданиях, излагать результаты в виде презентаций перед различными аудиториями.
Миссией ООП является подготовка высококвалифицированных ИТ-специалистов для науки, образования и высокотехнологичного производства на основе фундаментального образования, позволяющего выпускникам быстро адаптироваться к меняющимся потребностям общества».
«Выпускник по направлению 230100 «Информатика и вычислительная техника» может осуществлять профессиональную деятельность в ИТ-компаниях, в научноисследовательских учреждениях, связанных с развитием и применением информационных технологий, в ИТ-подразделениях других учреждений и организаций.»
2. Место дисциплины «Введение в технологии параллельного решения больших задач» в структуре основной образовательной программы высшего профессионального образования бакалавриата по направлению подготовки 230100 «ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»
Дисциплина «Введение в технологии параллельного решения больших задач» входит в вариативную часть профессионального цикла ООП по направлению подготовки бакалавров 230100. «Информатика и вычислительная техника».
Требования к первоначальному уровню подготовки обучающихся:
Студенты должны знать:
основные понятия и конструкции языков программирования (процедуры, функции, указатели);
основные элементы математической логики;
основы работы в операционных системах семейства Windows;
основы работы в операционных системах семейства GNU/Linux;
основы параллельного программирования для систем с общей и распределенной Студенты должны уметь:
использовать основные законы естественнонаучных дисциплин для понимания преподаваемой дисциплины;
разрабатывать и отлаживать программы на языках программирования высокого использовать средства операционных систем семейства GNU /Linux для разработки использовать средства операционных систем семейства OS Windows для разработки основные технологии программирования, самостоятельно искать информацию в сети Интернет на русском и английском С другими дисциплинами образовательной программы соотносится следующим образом:
знания, приобретаемые студентами, в ходе освоения следующих курсов необходимы для освоения материала курса «Введение в технологии параллельного решения больших задач»: «Информатика», «Математическая логика и теория алгоритмов», «Вычислительная математика», «Программирование», «ЭВМ и периферийные устройства», «Сети и телекоммуникации», «Операционные системы», «Сетевые технологии», «Основы параллельного программирования».
Полезным для самостоятельной работы будет владение английским языком (курсы «Иностранный язык», «Деловой английский язык». Также могут быть востребованы знания, приобретаемые в ходе освоения курсов «Основы культуры речи», «Дискретная математика», «Методы трансляции и компиляции», «Логические основы программирования», «Модели, языки и системы параллельного программирования», «Архитектура современных микропроцессоров и мультипроцессоров», «Введение в разработку и моделирование мелкозернистых алгоритмов и структур», «Эффективное программирование современных микропроцессоров и мультипроцессоров», «Комбинаторные алгоритмы»
при освоении дисциплины могут быть использованы знания, приобретаемые при параллельном освоении курсов «Защита информации», «Метрология, стандартизация и сертификация», «Управление производственным процессом разработки программного обеспечения», «Формальные методы программной инженерии», «Технологии системного программирования».
знания, полученные при освоении дисциплины, могут быть использованы при параллельном изучении курсов «Инженерное проектирование систем информационной безопасности», «Защита информации», «Управление производственным процессом разработки программного обеспечения»,, «Технологии системного программирования», при последующем изучении курсов «Распределенные информационные системы», «Введение в организацию распределенных вычислений», в ходе учебной и производственной практики и при работе над выпускной работой бакалавра.
3. Компетенции обучающегося, формируемые в результате освоения дисциплины «Введение в организацию вычислений на кластерах»
В результате освоения дисциплины студент должен:
Иметь представление:
о процессе разработки параллельного программного обеспечения, о методах распараллеливания комплекса алгоритмов большой модели в целом, об организации исполнения параллельных программ, реализующих большую математическую модель, о ходе и этапах проектирования вычислительного процесса и способах их реализации, о способах интегрального учета свойств архитектуры и конфигурации мультикомпьютеров;
о способах организации прохождения задач в мультикомпьютерах;
технологии параллельного решения больших задач на мультикомпьютерах, Об обеспечении безопасности в кластерах;
Об особенностях организации вычислений на мультикомпьютерах, которые должны учитываться при реализации комплексов параллельных программ с целью достижения высокой эффективности решения большой и сложной задачи.
Знать и уметь использовать на практике:
приемы распараллеливания алгоритмов и комплексов алгоритмов в целом, методы обеспечения необходимых свойств параллельных программ и достижения необходимого экстремума в реализации этих свойств, основные инструменты поддержки суперкомпьютерных технологий.
основные технологии параллельного программирования больших задач, программные средства для организации вычислений на мультикомпьютерах разной архитектуры;
основые методы и средства мониторинга задач и ресурсов в мультикомпьютеах;
основы планирования и реализации распределения вычислительной нагрузки между узлами мультикомпьютера;
методы обеспечения надежности вычислений;
методы и средства обеспечения динамических свойства параллельных программ;
средства разработки (в т.ч. отладки и оптимизации) больших комплексных параллельных программ для мультикомпьютеров.
получить практический опыт разработки комплексного прикладного параллельного программного обеспечения, освоить в целом комплексный процесс разработки параллельного программного обеспечения Уметь:
Формулировать спецификации мультикомпьютеров и их системного программного обеспечения, необходимых для решения большой комплексной задачи;
Администрировать системное программное обеспечение вычислительных кластеров;
Проектировать реализацию решения комплексных проблем Разрабатывать комплексы программ с реализацией динамических свойств решения большой задачи;
Использовать современное программное обеспечение для организации вычислений на мультикомпьютерах.
Владеть навыками:
проектирования решения комплексных проблем разработки параллельного программного обеспечения высокопроизводительных вычислителей;
разработки параллельных программ с учетом особенностей организации вычислений на мультикомпьютерах, функциональной и поведенческой отладки параллельных прикладных программ.
В результате освоения дисциплины у учащегося формируются следующие компетенции.
Общекультурные компетенции:
владеет культурой мышления, способен к обобщению, анализу, восприятию информации, постановке цели и выбору путей ее достижения (ОК-1);
готов к кооперации с коллегами, работе в коллективе (ОК-3);
умеет использовать нормативные правовые документы в своей деятельности (ОК-5);
стремится к саморазвитию, повышению своей квалификации и мастерства (ОК-6);
умеет критически оценивать свои достоинства и недостатки, наметить пути и выбрать средства развития достоинств и устранения недостатков (ОК-7);
осознает социальную значимость своей будущей профессии, обладает высокой мотивацией к выполнению профессиональной деятельности (ОК-8);
использует основные законы естественнонаучных дисциплин в профессиональной деятельности, применяет методы математического анализа и моделирования, теоретического и экспериментального исследования (ОК-10);
осознает сущность и значение информации в развитии современного общества;
владеет основными методами, способами и средствами получения, хранения, переработки информации (ОК-11);
имеет навыки работы с компьютером как средством управления информацией (ОКПрофессиональные компетенции:
способность осваивать методики использования программных средств для решения практических задач (ПК-2);
разрабатывать модели компонентов информационных систем, включая модели баз данных (ПК-4);
разрабатывать компоненты программных комплексов и баз данных, использовать современные инструментальные средства и технологии программирования (ПК-5);
обосновывать принимаемые проектные решения, осуществлять постановку и выполнять эксперименты по проверке их корректности и эффективности (ПК-6);
участвовать в настройке и наладке программно-аппаратных комплексов (ПК-9);
сопрягать аппаратные и программные средства в составе информационных и автоматизированных систем (ПК-10);
инсталлировать программное и аппаратное обеспечение для информационных и автоматизированных систем (ПК-11);
Знает современные тенденции развития информационных технологий (ПК-25);
Готов к командному стилю работы - выполнять профессиональные функции в составе коллектива исполнителей (ПК-29);
Способен осваивать новые предметные области и применять для этого соответствующие инструментальные средства (ПК-30);
Умеет реализовать структуры данных и алгоритмы на современных алгоритмических и объектно-ориентированных языках (ПК-32);
Способен выполнять вычислительные эксперименты, вести расчеты, связанные с математическим моделированием (ПК-34);
Понимает основные принципы организации и функционирования ЭВМ (ПК-35);
Владеет основными методами классификации вычислительных систем (ПК-36);
Владеет методами эффективного программирования современных ЭВМ (ПК-37);
Понимает основные принципы организации и функционирования компьютеров с общей и распределенной памятями (ПК-41);
Владеет основными методами и средствами разработки параллельных программ для компьютеров с общей и распределенной памятью (ПК-42);
Владеет методами эффективного программирования для компьютеров с общей и распределенной памятями (ПК-43);
Имеет представление о мелкозернистом и крупнозернистом параллелизме (ПК-45);
Имеет представление о возможностях эффективной реализации данного класса задач на параллельной вычислительной системе с данной архитектурой (ПК-46);
Имеет представление о корректности параллельных программ и способах её достижения (ПК-51);
Знает основы организации параллельной/распределенной обработки информации (ПКИмеет представление о направлении развития индустриальных платформ программирования для построения сложных распределенных программных систем (ПК-71);
Инструментальные компетенции:
Имеет навыки использования инструментальных средств программирования для ОС семейства Unix(ИК-1);
Имеет навыки решения типовых задач программирования и владеет основными моделями и методами их решения (ИК-5) 4. Структура и содержание дисциплины «Введение в технологии параллельного Общая трудоемкость дисциплины составляет 4 зачетных единицы (144 учебных часа, из них 64 – аудиторные занятия, 80 – самостоятельная работа).
вычислительных систем фрагментированного программирования распределенных вычислительных фрагментированных программ.
Свойства run-time системы оптимизация фрагментированных подпрограмм, их свойства и возможности План лекционных занятий 1. Введение. Цели и задачи курса. Модель вычислительной системы. Формирование вычислителей требуемой архитектуры. Расчет необходимой конфигурации вычислителя.
1.1. Цели и задачи курса.
1.2. Области применения комплексных вычислительных систем, классы задач и вычислительных систем.
1.3. Обоснование модели вычислительной системы. Параметры, учитываемые при формировании вычислителей требуемой архитектуры. Правила расчета необходимой конфигурации вычислителя.
2. Организация вычислений сложной структуры на комплексных вычислительных системах. Программное обеспечение комплексных вычислительных систем.
2.1. Обзор комплексных архитектур вычислительных систем для решения разных задач.
2.2. Обзор средств организации вычислений на комплексных вычислительных системах.
2.3. Программное обеспечение комплексных вычислительных систем.
2.4. Обзор средств разработки (в т.ч. оптимизации и отладки) последовательных и параллельных программ.
2.5. Обзор средств управления прохождением задач в комплексных вычислительных 3. Классификация существующих и будущих технологий параллельного программирования.
3.1. Понятие технологии параллельного программирования.
3.2. Характеристика множества допустимых технологий параллельного программирования. Соотношение языковых и автоматических средств разработки, отладки, оптимизации и сопровождения параллельных программ.
3.3. Необходимые функции и реализующие их средства, включаемые в технологии параллельного программирования.
4. Особенности разработки комплексных параллельных программ для неоднородных вычислительных систем.
4.1. Неоднородность вычислений и архитектур.
4.2. Неоднородность топологий коммуникационных подсистем.
4.3. Динамические свойства неоднородных программ 5. Характеристики классов языков фрагментированного программирования.
5.1. Основные разделы языков.
5.2. Средства непроцедурного описания алгоритмов.
5.3. Средства задания управления в программе.
5.4. Средства задания распределения ресурсов.
6. Алгоритмы компиляции фрагментированных программ 6.1. Базовые функции компиляторов.
6.2. Алгоритмы глобального анализа программы и конструирование частично готовых фрагментов вычислений.
6.3. Базовые функции генератора исполняемой программы.
6.4. Базовые функции и алгоритмы реализации run-time подсистемы.
7. Алгоритмы статического распределения ресурсов распределенных вычислительных систем.
7.1. Средства и алгоритмы статического распределения ресурсов на этапе компиляции.
7.2. Средства и алгоритмы статического распределения ресурсов на этапе генерации исполняемой программы 8. Алгоритмы исполнения фрагментированных программ. Свойства run-time системы 8.1. Алгоритмы динамического распределения и перераспределения ресурсов.
8.2. Алгоритмы динамической оптимизации программы 8.3. Алгоритмы динамической настройки программ на все доступные ресурсы вычислительной системы.
9. Профилирование, отладка и оптимизация фрагментированных программ 9.1. Обзор информации, необходимой для динамической оптимизации исполнения параллельной программы.
9.2. Алгоритмы мониторинга исполнения фрагментированной программы 9.3. Модификация результатов компиляции и генерации программ по результатам профилирования их исполнения.
10. Библиотеки параллельных программ. Обзор распространенных библиотек параллельных подпрограмм для решения задач численного моделирования 10.1. Необходимые свойства каждой параллельной подпрограммы для ее включения в параллельную библиотеку.
10.2. Необходимые функции системы сопровождения библиотеки 10.3. Новые возможности библиотек параллельных подпрограмм.
11. Технология проектирования и разработки сложных комплексных проектов для суперкомпьютеров.
11.1. Методология декомпозиции решения комплексной проблемы и синтеза её общего 11.2. Методики применения средств параллельного программирования в разработке сложных комплексных программ 11.3. Обеспечение цикла эволюции сложных параллельных программных комплексов.
12. Тенденции развития средств организации вычислений на кластерах 12.1. Повышение уровня параллельного программирования 12.2. Появление интеллектуальных алгоритмов конструирования параллельных программ.
План лабораторных работ 1. Разработка параллельной программы, реализующей большую численную модель.
2. Разработка параллельной программы, реализующей большую численную модель и обеспечивающий динамические свойства программы.
3. Разработка параллельных программ с использованием библиотек параллельных подпрограмм. Решение типичных задач численного моделирования.
4. Разработка параллельных программ с использованием средств OpenMP и POSIX Threads и в технологии фрагментированного программирования. Сравнение и анализ 5. Профилирование и оптимизация комплексных параллельных фрагментированных 6. Учет результатов профилирования для оптимизации исполнения параллельной 7. Разработка прототипа системы MPI, обеспечивающей надежную доставку сообщений и восстановление вычислений в случае сбоев.
8. Динамическая настройка прикладной параллельной программы на все доступные ресурсы произвольной гетерогенной вычислительной системы.
9. Использование библиотек численных подпрограмм в разработке программ численного моделирования 5. Образовательные технологии В ходе преподавания дисциплины используются следующие виды организации учебного процесса: лекции, лабораторные работы и самостоятельная работа студента.
Каждая тема теоретического материала прорабатывается на лабораторной работе, где у студента формируется связь теоретических знаний с практикой, а затем полученные знания и навыки закрепляются у студента выполнением заданий для самостоятельного выполнения.
При разработке образовательной технологии организации учебного процесса основной упор сделан на соединение активной и интерактивной форм обучения, с переносом «центра тяжести» в интерактивную форму обучения. Интерактивная форма позволяет студентам проявить самостоятельность в освоении теоретического материала и овладении практическими навыками, формирует интерес и позитивную мотивацию к учебе.
На лекциях изложению нового материала предшествуют обсуждение предыдущей темы лекции с целью восстановления и закрепления студентами изученного теоретического материала и ответы на вопросы студентов. Затем излагается материал лекции с использованием мультимедийной презентации. В конце лекции выделяется время для ответов на вопросы по текущему материалу и его обсуждению. В течении семестра провидятся три коллоквиума для проверки теоретических знаний. Такой подход позволяет выявить и устранить пробелы в понимании материала лекций.
Материалам лекций, практических занятий и самостоятельных работ выложены в банке образовательных материалов на сайте кафедры ПВ. Это позволяет реализовать технологию опережающей самостоятельной работы и уделить больше времени интерактивной работе в ходе аудиторных занятий.
Лабораторные занятия проводятся в терминальном классе по следующей схеме. В начале каждого аудиторного занятия рассматривается очередная лабораторная работа, объясняется её суть с привлечением теоретического материала, необходимого для выполнения задания. Затем Студенты выполняют задание, по ходу задавая вопросы преподавателю.
В конце аудиторного занятия проводится разбор решений лабораторных работ в интерактивной форме, и объясняется очередное задание для самостоятельного выполнения студентами. Кроме этого, проводится обсуждение вопросов, возникших у студентов в процессе выполнения предыдущих самостоятельных работ.
Кроме этого, в ходе практического занятия преподаватель индивидуально беседует со студентами и принимает выполненные самостоятельные работы, а студент защищает свою работу, устно отвечая на дополнительные вопросы преподавателя.
Самостоятельная работа студента состоит в повторении и усвоении лекционного материала дома по конспектам лекций, в выполнении самостоятельных заданий в терминальном классе (по согласованию с преподавателем) или дома (при наличии необходимого программного и аппаратного обеспечения) в свободное от аудиторных занятий время. Кроме того, самостоятельная работа включает подготовку к коллоквиумам и экзамену.
При выполнении самостоятельных работ студентам доступны методические материалы, расположенные на сайте кафедры, а также имеется возможность задавать вопросы преподавателю по электронной почте.
По результатам выполнения самостоятельной работы оформляется отчет в виде пояснительной записки по каждому заданию.
По собственному желанию и по согласованию с преподавателем студент может выполнять нестандартное более сложное задание, например, включающее вопросы исследовательского характера, связанное с углубленным изучением материала курса. Такое индивидуальное задание обсуждается с преподавателем и, при успешном выполнении, учитывается при промежуточном контроле успеваемости студента. Аналогично заданиям для самостоятельного выполнения усложнённое задание сопровождается отчётом в форме пояснительной запиской и защищается студентом лично.
Для выполнения практических работ студенты получают доступ к современным высокопроизводительным системам Сибирского суперкомпьютерного центра (ИВМиМГ СО РАН), оборудованию отдела МОВВС ИВМиМГ СО РАН, оборудованию НГУ.
Все виды учебных работ могут быть адаптированы с учетом актуальных знаний и умений конкретных студентов индивидуально для каждого студента (технология индивидуального обучения). Приветствуется самостоятельная формулировка задач студентами для лабораторных и самостоятельных работ. Успевающие студенты участвуют в разработке заданий и соответствующих методических указаний для студентов основной группы.
Студенты приглашаются к участию в качестве слушателей и с докладами по тематике курса в традиционной конференции молодых ученых, проводимой ежегодно в апреле, в ИВМ и МГ СО РАН. Программный комитет конференции, включающий ведущих ученых ИВМ и МГ СО РАН, выполняет отбор докладов. Предусмотрено премирование студентов, занявших первые три места в своей секции.
(http://ssd.sscc.ru/school/index.html), проводимых кафедрой ПВ НГУ на базе отдела МОВВС СО РАН. В ходе школы студенты выполняют проекты, связанные с тематикой курса, в группах по 2-3 человека. Проекты предусматривают решение одной из подзадач реальных научных проектов отдела МОВВС. Таким образом, студенты имеют возможность получить опыт работы в научном учреждении над реальными проектами в кооперации с другими студентами и сотрудниками научного института.
Студенты приглашаются посещать семинары отдела МОВВС ИВМиМГ СО РАН соответствующие тематике курса. О проведении семинаров студенты извещаются по электронной почте.
6. Учебно-методическое обеспечение самостоятельной работы студентов. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины и учебно-методическое обеспечение самостоятельной работы студентов Для аттестации студентов по дисциплине «Эффективное программирование современных микропроцессоров и мультипроцессоров» используется модульно-рейтинговая система. Итоговая успеваемость студента за семестр оценивается суммой баллов по следующим показателям: практические занятия, самостоятельные работы и зачет.
Максимальная сумма баллов за семестр составляет 100 баллов (текущий рейтинг – 80 баллов, итоговая аттестация – 20 баллов). Максимальные количества баллов по каждому показателю приведены ниже в таблице.
Текущий контроль. В течение семестра проверяются навыки и теоретические знания путем защиты практических занятий и самостоятельных работ. На защите практического занятия и самостоятельной работы студенту предлагаются 3-6 вопросов, проясняющих уровень понимания студентом соответствующей темы. Максимальное количество баллов за текущую аттестацию составляет 80 (см. табл.). Количество максимальных баллов, которые может получить студент за выполнение конкретного задания определяется преподавателем в зависимости от сложности задания.
Промежуточный контроль. Для оценки теоретических знаний студентов в конце семестра проводится зачет. Максимальная сумма баллов за зачет составляет 20 баллов.
Правила промежуточной аттестации студентов.
1. К зачету у не допускаются студенты, работа которых на основании текущего контроля оценивается преподавателем менее, чем в 60 баллов и менее.
2. Студенты, которые получили 80 баллов по результатам текущего рейтинга, получают зачет без официальной сдачи зачета.
3. Зачет сдается устно, он включает два теоретических вопроса и один практический.
Вопросы к зачету выложены на сайте кафедры.
Итоговая оценка выставляется в зависимости от числа баллов:
80-100 – «зачет».
60 и менее 60 – «не зачет».
Примерный перечень тем курсовых проектов 1. Функциональная спецификация вычислительной системы для реализации комплексной модели физического явления.
2. Разработка программы для включения в библиотеку параллельных подпрограмм с обеспечением всех необходимых свойств.
3. Спецификация и разработка новых системных средств для поддержки разработки конкретной большой модели.
4. Профилирование и оптимизация параллельной программы, реализующей большую модель, анализ профиля, формирование плана оптимизации программы по результатам анализа и проведение оптимизирующих трансформаций программы и настроек общесистемного окружения.
Перечень примерных тем рефератов 1. Обзор библиотек параллельных подпрограмм для численного моделирования.
2. Обзор крупномасштабных вычислительных задач.
3. Исторический обзор вычислительных систем.
4. Исторический обзор развития средств параллельного программирования.
5. Обзор технологий параллельного программирования больших заддач.
6. Обзор методов оптимизации параллельных программ в разных вычислительных Перечень примерных контрольных и экзаменационных вопросов:
1. Понятие неоднородной вычислительной системы.
2. Модель неоднородной вычислительной системы 3. Объяснить, как в архитектуре вычислительной системы учитываются особенности решаемых задач.
1. Особенности средств программирования неоднородных вычислительных систем.
2. Особенности совместного применения программирования разнородных программных компонентов для совместного решения общей задачи.
3. Методы и средства отладки и оптимизации параллельных программ 1. Основные функции технологии параллельного программирования 2. Охарактеризовать множество допустимых технологий параллельного 3. Обосновать соотношение языковых и автоматических средств разработки, отладки, оптимизации и сопровождения параллельных программ.
1. Понятие неоднородности архитектур вычислителя и проблемных алгоритмов.
2. Перечислить и охарактеризовать динамические свойства программ для неоднородных вычислителей.
1. Охарактеризовать основные разделы языков.
2. Определить необходимые средства непроцедурного описания программ 3. Охарактеризовать необходимые средства задания управления в программах 4. Описать средства задания распределения ресурсов.
1. Принципы технологии фрагментированного программирования, базовые функции 2. Особенности разработки фрагментированных программ для распределенных вычислительных систем 3. Охарактеризовать базовые функции и алгоритмы реализации run-time подсистемы 1. Перечислить средства и алгоритмы статического распределения ресурсов на этапе компиляции. Показать возникающие проблемы конструирования приемлемого распределения.
2. Охарактеризовать средства и алгоритмы статического распределения ресурсов на этапе генерации исполняемой программы.
1. Описать и охарактеризовать алгоритмы динамического распределения и перераспределения ресурсов 2. Описать и охарактеризовать алгоритмы динамической оптимизации программы 1. Указать информацию, необходимую для динамической оптимизации исполнения параллельной программы, охарактеризовать ее влияние на ту или иную оптимизирующую модификацию прикладной программы 2. Описать возможные модификации результатов компиляции и генерации программ по результатам профилирования их исполнения Принципы построения библиотек параллельных подпрограмм Обзор библиотек параллельных программ для решения задач численного Какими свойствами должна обладать параллельная программа, чтобы ее можно было включить в библиотеку? Обосновать требования.
1. Как производить анализ декомпозицию сложной задачи математического 2. Как обеспечить эволюцию сложных параллельных программных комплексов 1. Какими способами повышается уровень параллельного программирования?
2. Какие интеллектуальные свойства должны быть присущи системам конструирования параллельных програии.
7. Учебно-методическое и информационное обеспечение дисциплины «Введение в технологии параллельного решения больших задач»
а) основная литература:
1. Вальковский В.А., Малышкин В.Э. Синтез параллельных программ и систем на вычислительных моделях. Издательство "Наука", Сибирское отд-е, Новосибирск, 1988г. 129 стр. (V.Valkovskii, V.Malyshkin. Parallel Programs and Systems Synthesis on the basis of Computational Models. Nauka, Novosibirsk, 1988, pp.129) 2. К.Е.Афанасьев, С.В.Стуколов. Многопроцессорные вычислительные системы и параллельное программирование. – Учебное пособие, Кемеровский госуниверситет, 3. Корнеев В.В. Параллельное программирование в MPI. Москва-Ижевск: институт компьютерных исследований, 2003.
4. В.В.Воеводин, Вл.В.Воеводин. Параллельные вычисления. СПб.: БХВ-Петербург.
5. V.E.Malyshkin, A.A.Romanenko. GEPARD. General Parallel Debugger for MVS-1000/M.
In LNCS, vol. 2763, 2003, Springer Verlag, pp 519-523.
6. Kraeva M.A., Malyshkin V.E. Assembly Technology for Parallel Realization of Numerical Models on MIMD-Multicomputers. In the Journal on Future Generation Computer Systems.
Elsiever Science, Vol.17 (2001), No. 6, pp. 755-765.
7. В.Э.Малышкин. Введение в параллельное программирование мультикомпьютеров.
Новосибирск, 2003, ИВМ и МГ СО РАН, 268 стр.
8. Абрамов С.М. Суперкомпьютерные технологии России: объективные потребности и реальные возможности // CAD/cam/cae Observer #2 (54), 2010, с. 1- 9. Андреев С.С., Давыдов А.А., Дбар С.А., Лацис А.О., Плоткина Е.А. О моделях и технологиях программирования суперкомпьютеров с нетрадиционной архитектурой //Труды Международной суперкомпьютерной конференции "Научный сервис в сети Интернет: суперкомпьютерные центры и задачи". г. Новороссийск, 20-25 сентября 2010 г. стр. 186-187 (CD) ISBN 978-5-211-05916- 10. R. Chow and T. Johnson, Distributed Operating Systems & Algorithms, Addison-Wesley (1997) ISBN 0-201-49838- 11. G. Coulouris, J. Dollimore, and T. Kindberg, Distributed Systems: Concepts & Design, 3rd edition, Addison-Wesley (2001) ISBN 0-201-61918- б) дополнительная литература 1. Криштофик А.М., Заднепровский В.Ф. Использование суперкомпьютерных технологий для решения актуальных задач нефтегазового сервиса // Третья Международная научная конференция «Суперкомпьютерные системы и их применение» (SSA'2010): доклады конференции (25-27 мая 2010 года, Минск). Минск: ОИПИ НАН Беларуси, 2010. - Т. 2. С. 178-184.
2. Горбунов В.С., Лацис А.О., Иванов А.Н. О построении суперкомпьютеров на основе интерфейса PCE-EXPRESS //Материалы международной научно-технической конференции "Суперкомпьютерные технологии: разработка, программирование, применение" (СКТ-2010), 27сентября— 2октября 2010, Дивноморское, Россия. — Таганрог: Издательство Технологического института Южного федерального университета, том 1, стр. 55—57. ISBN 978-5-8327-0383-1.
3. T. L. Casavant and M. Singhal, Distributed Computing Systems, IEEE Computer Society Press (1994) ISBN 0-8186-3032- 4. C. Leopold, Parallel and Distributed Computing, John Wiley & Sons (2001) ISBN 0-471G. J. Nutt, Centralized and Distributed Operating Systems, Prentice-Hall (1992) ISBN 0в) программное обеспечение и Интернет-ресурсы:
1. ОС Linux, компиляторы языка Си 2. Доступ в интернет по протоколам HTTP и SSH для доступа к ресурсам кафедры 3. OpenOffice/MS Office (Word, Excel, PowerPoint).
4. SSH-клиент (PuTTY) 5. Средства разработки и выполнения программ MPI (MPICH-2.0) 6. Средства разработки программ OpenMP (GNU gcc/g++) 8. Материально-техническое обеспечение дисциплины Аудиторный класс Компьютерный класс Ноутбук и мультимедиа проектор для презентаций Обеспечен доступ с персональных компьютеров и ноутбуков к вычислительным и информационным ресурсам и услугам локальной сети отдела МОВВС ИВМ и МГ СО РАН, Сибирского суперкомпьютерного центра ИВМиМГ СО РАН, НГУ. Предоставляется возможность выполнения лабораторных работ в терминальном классе ИВМ и МГ СО РАН.
Рецензент (ы) _ Программа одобрена на заседании Методической комиссии ФИТ от _ года, протокол № _.