Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Министерство образования и науки Российской Федерации

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ

МНОГОПОТОЧНОЕ ПРОГРАММИРОВАНИЕ

Учебное пособие

Description: logo_clear_b-w_2

Санкт-Петербург

2010

Содержание

Содержание. 2

Введение. 4

1 Введение в многопоточное программирование. 6

1.1 Классификация параллельных аппаратных архитектур по Флинну. 6

1.2 Понятия процессов и потоков. Основные определения. 12

1.3 Переключение задач в многозадачных ОС. Многозадачность. 18

2 Аппаратная поддержка многозадачности. 20

2.1 Способы повышения быстродействия компьютеров. 20

2.2 Параллельные компьютеры с общей памятью.. 22

2.3 Вычислительные системы с распределённой памятью.. 25

2.4 GRID.. 26

2.5 Классификация параллельных компьютеров и систем. 28

2.6 Производительность параллельных компьютеров. 33

3 Основы многопоточных программ. 49

3.1 Основные определения. 49

3.2 Виды ресурсов. 51

3.3 Типы взаимодействия процессов. 52

3.4 Основные средства синхронизации. 53

4 Реализация многопоточности на различных платформах. 71

4.1 BSD, UNIX System V, POSIX, XPG.. 71

4.2 WinAPI 73

4.3 .NET. 75

4.4 Java. 77

5 Управление и синхронизация процессов и потоков. 80

5.1 Функции создания процессов и управления ими. 80

5.2 Функции создания потоков и управления ими. 82

5.3 Функции работы со средствами синхронизации. 84

6 Системы программирования на основе передачи сообщений. 91

6.1 Основы MPI 91

6.1.1 Сообщения. 92

6.1.2 Коммуникаторы.. 93

6.1.3 Обмен сообщениями. 94

НЕ нашли? Не то? Что вы ищете?

7 Новые средства многопоточного программирования. 97

7.1 Совершенствование пулов потоков. 103

7.2 Транзакционная память. 103

Приложения. 108

Введение

Целью дисциплины «Многопоточное программирование» является сформировать у студентов компетенции, связанные с разработкой кода программного продукта, с пониманием методологий построения многопоточных приложений с использованием традиционных программных и аппаратных средств распараллеливания.

Научить реализовывать многопоточность на различных платформах, получить представление об управлении и синхронизации процессов и потоков, получить практические навыки применения библиотеки MPI.

Способствование развитию таких личностных качеств, как аккуратность, аналитическое мышление, ответственность и исполнительность, умение планировать свою деятельность, осваивать новые методы в области информационных систем.

Содержание дисциплины охватывает круг вопросов, связанных с многопоточным программированием, разработкой параллельных приложений, управлением и синхронизацией процессов и потоков, применением различных библиотек в разработках. Дисциплина нацелена на формирование общекультурных компетенций:

·  способность развивать и совершенствовать свой интеллектуальный и общекультурный уровень;

·  способность к самостоятельному обучению новым методам исследования в области информационных систем;

·  способность проявлять инициативу, брать на себя ответственность;

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

К учебным задачам дисциплины относятся:

·  Рассмотреть основные библиотеки, предназначенные для разработки многопоточных программ: POSIX, WinAPI, .NET, Java, Parallel Extentions.

·  Научить студентов анализировать производительность параллельных программ, а также получить навыки оптимизации.

·  Сформировать практические и теоретические знания в области многопоточного программирования, разработки многопоточных приложений.

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

·  Обучить терминологии предметной области.

·  Готовность к практическому применению полученных знаний и навыков.

·  Научить оперировать базовыми понятиями, понимать принципы и особенности создания многопоточных приложений, анализировать требования.

·  Дать представление об управлении и синхронизации процессов и потоков.

·  Дать теоретические сведения и практические навыки применения библиотеки MPI.

·  Научить обеспечивать согласованное функционирование и требуемый уровень качества разрабатываемых приложений.

·  Научить реализовывать многопоточность на различных платформах. (BSD, UNIX System V, POSIX, UNIX X, WinAPI, .NET, Java).

·  Ознакомить с тенденциями развития средств многопоточного программирования.

Необходимыми условиями для освоения дисциплины «Многопоточное программирование» являются: базовые знания программирования и проектирования ПО, понимание предметной области, знание ООП, парадигм ООП, знакомство с языком программирования C# и платформой . Будет полезен опыт практической работы.

Для выполнения практических занятий необходима рабочая станция с установленной платформой. NET, средой Visual Studio 2010.Все необходимые используемые средства и библиотеки можно найти по нижеуказанным ссылкам:

www. *****,

Microsoft Compute Cluster Pack SDK - http://www. /downloads/details. aspx? familyid=DF68-409D-9CB3-02312BC23BFD&displaylang=en

SDK -

http://www. osl. iu. edu/research//files/1.0.0/%20SDK. msi

1  Введение в многопоточное программирование

1.1  Классификация параллельных аппаратных архитектур по Флинну

Ниже приведена классификация аппаратных архитектур по Флинну.

·  SISD, Single Instruction stream over a Single Data stream

o  ОКОД – вычислительная система с одиночным потоком команд и одиночным потоком данных. На рисунке 1 наглядно представлена схема архитектуры.

блоками питания и т. д.) подключенных к сети (локальной или глобальной) при помощи обычных протоколов, например Ethernet. В отличии от суперкомпьютеров, которые содержат множество процессоров, подключенных к локальной высокоскоростной шине.

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

   В настоящее время выделяют три основных типа GRID-систем:

1. GRID на основе использования добровольно предоставляемого свободного ресурса персональных компьютеров (добровольная GRID);

2. Научная GRID — хорошо распараллеливаемые приложения программируются специальным образом (например, с использованием Globus Toolkit);

3. GRID на основе выделения вычислительных ресурсов по требованию (Enterprise GRID или коммерческая GRID) — обычные коммерческие приложения работают на виртуальном компьютере, который, в свою очередь, состоит из нескольких физических компьютеров, объединённых с помощью GRID-технологий. 

   

Система имеет в основе клиент-серверную архитектуру с, так называемым, "толстым" клиентом - то есть, клиентская часть берет на себя все необходимые данные для расчетов у сервера и затем обращается к нему только с определенным результатом. Задача сервера: корректно обработать запросы клиентов и синхронизировать имеющиеся данные между ними, при этом правильно выводя результаты администратору сети. 

Рисунок 17. Структура GRID

Рассмотрим обобщенную структуру GRID сетей на примере системы обрабатывающей данные с Большого Большого адронного коллайдера CERN (см. рисунок 18) 

    Верхний уровень Tier 0 — получение информации с детекторов, сбор «сырых» научных данных, которые будут храниться до конца работы эксперимента Tier 1 — хранение второй копии этих данных в других уголках мира (11 центров: в Италии, Франции, Великобритании, США, на Тайване, а один центр первого уровня — CMS Tier1 — в ЦЕРНе). Центры обладают значительными ресурсами для хранения данных. Tier 2 — следующие в иерархии, многочисленные центры второго уровня. Наличие крупных ресурсов для хранения данных не обязательно; обладают хорошими вычислительными ресурсами. Российские центры: в Дубне (ОИЯИ, Объединенный институт ядерных исследований), три центра в Москве (НИИЯФ МГУ, ФИАН, ИТЭФ — Институт теоретической и экспериментальной физики), Троицке (ИЯИ, Институт ядерных исследований), Протвино (ИФВЭ, Институт физики высоких энергий) и Гатчине (ПИЯФ). Кроме того, в единую сеть с этими центрами связаны и центры других стран-участниц ОИЯИ — в Харькове, Минске, Ереване, Софии и Тбилиси.

 Более 85 % всех вычислительных задач БАК сейчас выполняется вне ЦЕРНа, из них более 50 % на центрах второго уровня.

    Tier 3 — Институты-участники программы Tier 4 — Рабочие станции пользователей, позволяющих использовать их для нужд проекта

Рисунок 18. Структура CERN GRID

2.5  Классификация параллельных компьютеров и систем

Ранее была рассмотрена классификация Флинна. Её основные недостатки:

·  Векторно-конвейерные машины не достаточно хорошо вписываются в эту классификацию

·  Слишком много архитектур, относящихся к классу MIMD

Термин "Grid-вычисления" (Computing grid), где "grid" означает "решетка, сетка, сеть", по смыслу аналогичен выражению "единая энергосистема". Суть его заключается в стремлении объединить все компьютеры мира в единую систему — в виртуальный суперкомпьютер невиданной мощности, что позволит распределять и перераспределять ресурсы между пользователями в соответствии с их запросами. Именно так человечество пользуется электричеством единых энергетических сетей. Основу подобного объединения можно рассматривать и для транспортных сетей, сетей обеспечения водой, нефтью, газом и т. д.

Имея такой суперкомпьютер, пользователь может в любое время и в любом месте запросить столько вычислительных ресурсов, сколько ему требуется для решения своей задачи. Более того, он может заказать ее решение, послав запрос-заявку на сайт одного из центров обслуживания. Так же, как единая энергосистема локально испытывает переменную нагрузку (потребление электроэнергии в отдельной стране, регионе или населенном пункте изменяется в зависимости от времени суток, года и т. д.), так и система Grid-вычислений способна перераспределять мощности, направляя запросы на недогруженные компьютеры в соответствии с возросшими требованиями.

Предоставление вычислительных ресурсов по требованию связывают с известным понятием "коммунальная услуга", что вполне соответствует тенденции объединения и распределения ресурсов жизнеобеспечения.

Однако на Grid-технологии возложены задачи и информационного характера: сделать всю информацию мира оперативно доступной. Это означает, что пользователь должен ощущать, что вся информация, за которой он обратился, находится здесь, рядом, не далее чем на сервере того провайдера, к которому он подключен.

И мы ловим себя на мысли, что говорим об Интернете!

Да, в сущности, речь идет о смелом, фантастическом развитии именно того, что фантастическим казалось вчера, о развитии всемирной паутины, о внедрении в нее вычислительных функций и о повышении качества информационного обслуживания. Именно так и намечается дальнейший путь развития Интернета: от WWW к GRID1).

Таким образом, для Grid-технологии характерны два (традиционно смешиваемых) направления развития, определяемые их важностью и различиями в исследовании.

Первое направление, связанное с информационными задачами, представляет сегодня сущность Интернета. Это — обмен новостями, приобретение новых знаний, программных средств, мульти-медиа-развлечения, диалоговые системы телеконференции, электронная почта, финансовые операции и т. д. Эти функции "Всемирной Паутины" уже представляются достаточными самым широким слоям населения, покрывая весь компьютерный сервис. Они органично вошли в базовое воспитание детей, определяя уровень грамотности современного человека.

Однако именно здесь существует основная проблема. Неуправляемое стихийное, даже "дикое" развитие Интернета приводит к парадоксу: доступность огромных объемов мировой информации породила значительный вес отказов, ответов о действительной недоступности этой информации, о превышении допустимого времени поиска, об ошибках. Поисковые системы блуждают по иерархической, запутанной системе Web-серверов, натыкаясь на их перегрузку, образуя трафик для обратного движения информации. Мы с отчаянием следим за замершей планкой индикатора, в ожидании выдачи такой знакомой записи "Error..." — с указанием предположения об окончании допустимого времени адресного обращения.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5