WWW.NAUKA.X-PDF.RU
БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА - Книги, издания, публикации
 


«Реферат к кандидатскому экзамену «История и философия науки» (раздел «История отрасли науки») ФИЗИКО-МАТЕМАТИЧЕСИКЕ НАУКИ Тема: История развития параллельных вычислительных систем с ...»

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

ВОЛГОГРАДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ

УНИВЕТСИТЕТ

ФАКУЛЬТЕТ ЭКОНОМИКИ И УПРАВЛЕНИЯ

КАФЕДРА ФИЛОСОФИИ

Реферат к кандидатскому экзамену

«История и философия науки»

(раздел «История отрасли науки»)



ФИЗИКО-МАТЕМАТИЧЕСИКЕ НАУКИ

Тема: История развития параллельных вычислительных систем с распределнной памятью Выполнил: аспирант Новокщнов А.А.

Кафедры: Высшая математика Специальность: 01.04.04 «Физическая электроника»

Первичная экспертиза:

Проф., д.т.н.

Горобцов А.С.

Проверил:

Волгоград Оглавление Введение

История развития вычислительных систем

Классификация вычислительных систем

Мультипроцессоры и мультикомпьютеры

Заключение

Список литературы

Введение В настоящее время сфера применения электронных вычислительных систем (ВС) охватывает практически все сферы деятельности человека.

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

Суперкомпьютерное моделирование возникло примерно в конце 40-х — начале 50-х годов XX века. Тогда компьютерная эра только зарождалась, появился первый компьютер ENIAC в Америке, а также первый российский компьютер, который сделал академик Лебедев. Но, их использование было не столь широко.

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

Для создания первого электронного вычислительного компьютера пришлось приложить очень большие силы не только физиков, но и математиков-вычислителей и разработчиков компьютерной техники.

Причем в Советском Союзе все это было очень секретно, поэтому о наших ядерных физиках, конструкторах авиационной и космической техники знали, а имя академика Лебедева, замечательного инженера и генерального конструктора Брука, не было никому известно. С американской стороны это был легендарный фон Нейман. Это человек, известный в математике, механике и компьютерной технике. Но все-таки первый электронный вычислительный компьютер был создан примерно в 1951 году школой академика Лебедева. Почти через год аналогичный полностью электронный компьютер знаменитого фон Неймана появился в Америке. Хотя первый компьютер, конечно, был сделан в Америке в 1946 году, но он был частично электронный, частично механический. А вот полностью электронный был сделан только в 1951 году.

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

Тогда же начали развиваться первые вычислительные методы.

Выдающиеся исследователи в этой области — Лакс, Вендрофф, Курант, Годунов, Харлоу, Гельфанд, Белоцерковский — первый человек, который смог численно решить задачу об обтекании спускаемого в атмосфере аппарата, — академик Самарский, академик Дородницын, Яненко. Все эти люди параллельно развивали вычислительную технику и вычислительные методы.





Тогда появились знаменитые схемы Лакса, Лакса — Вендроффа, метод Годунова, который до сих пор не потерял актуальности, хотя прошло уже более 60 лет. Кроме того, был создан знаменитый метод Белоцерковского — Дородницына, который используется и сейчас. Тогда же были предложены схемы академика Самарского, по которым сейчас решаются многие математически сложные задачи.

Конечно, наличие этих задач подхлестывало развитие вычислительной техники. Примерно до середины 1960-х годов мы шли параллельно с американцами. Но потом некоторые решения в самых верхах правительства привели к тому, что развитие нашей техники и ее финансирование сокращалось, и было в основном направлено на закупку американской вычислительной техники. Но наша вычислительная техника очень долго служила и работает до сих пор — в основном для решения специальных задач.

Современные суперкомпьютеры — это очень мощные вычислительные системы. Скорость их работы уже достигает десяти и более петафлоп. Хотя буквально 3–5 лет назад речь шла о терафлопах. А сейчас уже заходит речь об экзафлопных задачах. Сейчас это кажется фантастикой. Но такой же фантастикой несколько лет назад казались петафлопные, еще ранее — терафлопные и гигафлопные компьютеры.

Мощность вычислительной техники увеличивается с поразительной скоростью. Правда, физики тоже не отстают, и с развитием вычислительной техники они ставят задачи соответствующей сложности. Последнее десятилетие дало удивительный скачок в решении сложнейших задач.

Сейчас множество работ проводится на системах с распределенной памятью. Они очень хороши тем, что могут использовать много процессоров и обширную память, как, например, система MPI — самая распространенная на сегодняшний день в мире. OpenMP — это очень хорошая система, но ее недостатком является ограниченное количество процессоров, которые можно использовать в вычислениях. Кроме того, в последние годы стала очень популярной система CUDA, которая работает на графических процессорах, у нее есть очень яркое свойство — она дает большое ускорение (в десятки раз) по сравнению с компьютерами на центральных процессорах. Но и есть, конечно же, недостаток — это ограниченная память.

С помощью суперкомпьютеров решаются различные задачи. Вопервых, системы уравнений механики сплошных сред. Что они собой представляют? Современный уровень в развитии численных методов и компьютерной техники позволяет решать трехмерные динамические задачи.

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

Бывают еще стационарные системы уравнений, это системы эллиптического типа, уравнения типа Лапласа - Пуассона, которые описывают стационарные вычислительные процессы, а также уравнения второго порядка по координатам. Их методы решения, как правило, итерационные, и они неплохо «параллелятся».

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

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

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

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

История развития вычислительных систем

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

Первая механическая счетная машина появилась 1740-ые. Электронные же машины появились только после появления триггеров. Данный период, проходящий до появления первых ЭВМ, иногда называют нулевым поколением. Некоторый прогресс в создании цифровых вычислительных машин произошел после второй мировой войны. В 1944 г. Они стали появляться в США, и на них еще не было операционных систем (ОС).

Устройства ввода/вывода здесь – бумажные носители. Пользователи имели полный доступ к машинному языку, все программы писались непосредственно в машинных командах.

С 50-х годов начинается первое поколение вычислительных систем.

Основные направления развития на данном этапе заключались в автоматизации ввода/вывода (перфокарты, перфоленты), зарождении BIOSа, а также это экономия времени (малые машины для ввода/вывода рядом с большой вычислительной машиной) и появление операторов ЭВМ. Первая ОС – начало 50-х годов: General Motors для IBM 701. ОС были разработаны с целью ускорения и упрощения перехода с задачи на задачу. Назначение ОС обеспечение пакетного режима (пакетная обработка, которая предусматривала объединение отдельных задач в группы или пакеты).

Повторяющиеся команды были выделены в отдельные процедуры. Созданы stdio, стандарты ввода/вывода.

Поколение №2: 60-е годы. Основные направления: многозадачная пакетная логика, многопользовательские режимы, чисто многозадачный режим. Происходит бурное развитие ОС и различных теорий ОС.

Развиваются ОС пакетной обработки, многозадачные и многопользовательские системы, ОС с транзакциями. Появились методы, обеспечивающие независимость программирования от внешних устройств (ВУ). Начали создаваться многопроцессорные машины, появились ОС реального времени. Пример глобальной сложной системы: Multics. К большой машине стыковались по последовательному порту терминалы (символьные). К концу 60-х годов начали появляться распределенные машины.

Поколение №3: 70-е годы. Появилась научная дисциплина «проектирование программ», созданы совместимые системы, созданы эмуляторы, началась разработка специализированных ОС. Разрабатывается модульное процедурное программное обеспечение. Совместимость ОС и программных средств (обеспечения) впервые организовала фирма IBM. Было много фирм, их машины и системы команд были разными. Очень сложно было переходить к вычислительной машине другого класса. IBM создала линейку вычислительных машин совместимых снизу вверх: IBM System 360 и ОС, совместимую со всеми машинами этой линейки (OS/360), е аналог в СССР – ЕС-ЭВМ. Для облегчения перехода с других машин на эту линейку фирма IBM создала эмуляторы других систем на своей системе. Позднее будут созданы DEC-PDP и ОС UNIX. Для данного периода характерны сложность проектирования отладки и поддержки ОС, которые породили технологию конструирования программ – модульность, совместимость и мобильность ОС.

Поколение №4: 80-е годы. ОС становятся ещ более функционально насыщенными. ОС общего назначения становятся сетевыми. Появляются распределенные вычислительные системы. Развиваются средства управления базами данных. Данные стали рассматриваться как объект управления. С точки зрения совместимости широко развивается концепция виртуальной машины. Появляются различные удобства для пользователя (системы управления при помощи меню и так далее). Появляются первые персональные компьютеры. Программирование (а точнее интегрированная оболочка программирования) становится более удобным. В 70-е годы появляется язык C, язык высокого уровня. В 80-е годы появился C++ – объектно-ориентированный язык программирования. В эти годы произошло разделение производителей и появление большого количества независимых фирм, разрабатывающих ОС.

Поколение №5: 90-е годы. Принцип распределенной обработки данных перешел на принцип распределенных сетевых ОС, в которых основные функции реализуются на распределенных в пределах сети процессорах.

Начинает развиваться глобальная сеть. Интерфейс становится более дружественным (интуитивно понятный интерфейс). Появляется новый класс ОС, специализированных для процессоров ЦОС.

Поколение №6: настоящее время. ОС на современном этапе развиваются в направлении: повышения функциональной сложности, насыщенности и производительности, повышение степени абстрагирования от аппаратуры (мобильности), повышение степени дружественности к оператору и повышение распределенности обработки.

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

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

Одной из самых распространнных классификаций вычислительных систем является классификация Майкла Флинна, предложенная в 1966 году.

Она основана на количестве потоков входных данных и количестве потоков команд, которые эти данные обрабатывают:

Рисунок 1 - Классификация Флинна SISD (Single Instruction Single Data): программа работает с одним потоком данных и выполняет один поток инструкций по обработке этих данных. Инструкции выполняются последовательно друг за другом.

MISD (Multiple Instruction Single Data): несколько потоков инструкций выполняются с одними данными. Разные инструкции оперируют одними и теми же данными и на выходе системы мы имеем один поток данных. К таким системам относят различные системы дублирования и др. Иногда к этой категории относят конвейерные архитектуры.

SIMD (Single Instruction Multiple Data): один поток инструкций выполняет вычисления одновременно с различными данными. Такие компьютеры называются векторными. Зачастую векторные инструкции присутствуют в дополнение к обычным «скалярным» инструкциям (векторное расширение). Примеры SIMD-расширений: MMX, 3DNow!, SSE, AVX, AVX2 и др.

MIMD (Multiple Instruction Multiple Data): разные потоки инструкций оперируют различными данными. Это системы наиболее общего вида, поэтому их проще всего использовать для решения различных параллельных задач. MIMD-системы принято разделять (классификация Джонсона) на системы с общей и с распределенной памятью. Также существуют системы с неоднородным доступом к памяти (NUMA) — в них доступ к памяти других вычислителей намного медленнее, чем доступ к собственной памяти.

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

Рис.2 – Классификация архитектур ВС параллельного действия

Системами с общей памятью называют системы, в которых несколько процессоров имеют общую оперативную память. Чаще всего встречающиеся системы этого типа — компьютеры с многоядерными процессорами (multicore).

У данных систем есть как свои достоинства, так и недостатки. Для начала давайте рассмотрим преимущества.

Не требуется обмен данными: данные, помещнные в память одним процессором, автоматически становятся доступными другим процессорам.

Соответственно, система не должна тратить время на пересылку данных.

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

Еще одно преимущество - компактность систем: она может быть реализована в виде нескольких процессоров на одной материнской плате, и/или в виде нескольких ядер внутри процессора.

Теперь рассмотрим недостатки. Допустим, у нас есть объект, содержащий числа A и B, и для правильной работы объекта нужно, чтобы A + B всегда было равно нулю. Если первый процесс изменит A, и не успеет изменить B прежде, чем второй процесс прочтт A и B, то второй процесс получит неправильный объект, в котором A + B не равно нулю. Для решения подобных проблем можно использовать критические секции. Если поток инструкций первого процесса входит в критическую секцию с идентификатором N, то поток инструкций другого процесса не сможет войти в критическую секцию с тем же идентификатором, и будет ждать, пока первый процесс не выйдет из этой секции. В данной ситуации можно выделить такие проблемы, появляющиеся при работе с системами общей памяти:

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

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

Проблема медленного обращения к оперативной памяти и е ограниченного объма: процессор работает быстро, а память — медленно, поэтому даже одному процессору приходится ждать загрузки данных из оперативной памяти. Если же процессоров несколько, то им приходится ждать ещ дольше. Скорость работы каждого процессора с памятью становится тем меньше, чем большее число процессоров имеется в системе. Кроме того, объм памяти не может быть сделан сколь угодно большим, так как для этого придтся увеличивать разрядность шины памяти.

Проблема масштабируемости: очень сложно сделать подобную систему с большим числом процессоров, так как очень сильно возрастает стоимость и падает эффективность работы из-за описанных выше проблем.

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

Системы с распределнной памятью, в которых каждый вычислительный узел представляет собой полноценный компьютер со своей копией операционной системы, называют кластерными (или «кластерами»). Кластеры обычно представляют собой шкафы с компактными системными блоками, которые соединены друг с другом каналами связи (посредством специальных коммутаторов), передающими данные со скоростью 10 Гбит/сек и более.

Преимущества таких систем:

Простота и дешевизна построения: можно взять большое количество обычных компьютеров, соединить их каналами связи (например, Ethernet), и получить кластер.

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

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

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

Недостатки также имеются:

Проблема обмена данными: обмен данными в таких системах обычно идт очень медленно по сравнению со скоростью вычислений (и с большими задержками). Поэтому задачи, требующие интенсивного обмена, невозможно решить на таких системах эффективно.

Сложное программирование: программист должен продумать обмен данными, который будет присутствовать в системе, должен сам запрограммировать этот обмен (например, с помощью MPI). При неправильном программировании велика вероятность взаимных блокировок: когда, например, два процессора ждут данных друг от друга. Проблема блокировок есть и в системах с общей памятью, но здесь она проявляет себя гораздо чаще. Автоматическая организация обмена данными возможна лишь для некоторых частных случаев.

Большой размер систем и большое энергопотребление: кластерные системы занимают целые комнаты (рисунок 1) и даже здания.

Еще один тип систем – Гибридные системы. Многие современные системы представляют собой иерархию описанных выше систем. Например, современные процессоры являются конвейерными процессорами, и имеют набор векторных инструкций (MMX, SSE и т.п.), позволяющих выполнять одновременные вычисления с разными данными. Кроме того, процессор может иметь два ядра, или может быть несколько процессоров в компьютере. Таким образом, на этом уровне система представляет собой систему с общей памятью. Затем можно соединить несколько таких компьютеров в кластер, образовав новый уровень иерархии: систему с распределнной памятью.

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

Рис.3 – Структура мультипроцессоров с разделяемой памятью В небольшом мультипроцессоре, имеющем от двух до (порядка) 30 процессоров, соединительная сеть реализована в виде шины памяти или, возможно, матричного коммутатора. Такой мультипроцессор называется однородным (UMA machine – от uniform memory access), поскольку время доступа каждого из процессоров к любому участку памяти одинаково.

Однородные машины также называются симметричными мультипроцессорами. В больших мультипроцессорах с разделяемой памятью, включающих десятки или сотни процессоров, память организована иерархически. Соединительная сеть имеет вид древообразного набора переключателей и областей памяти. Следовательно, одна часть памяти ближе к определенному процессору, другая — дальше от него. Такая организация памяти позволяет избежать перегрузки, возникающей при использовании одной шины или коммутатора, и приводит к неравным временам доступа, поэтому такие мультипроцессоры называются неоднородными (NUMA machines).

В машинах обоих типов у каждого процессора есть собственный кэш. Если два процессора ссылаются на разные области памяти, их содержимое можно безопасно поместить в кэш каждого из них. Проблема возникает, когда два процессора обращаются к одной области памяти примерно одновременно. Если оба процессора только считывают данные, в кэш каждого из них можно поместить копию данных. Но если один из процессоров записывает в память, возникает проблема согласованности кэша: в кэш-памяти другого процессора теперь содержатся неверные данные.

Значит, необходимо либо обновить кэш другого процессора, либо признать содержимое кэша недействительным. В каждом мультипроцессоре протокол согласования кэш памяти должен быть реализован аппаратно. Один из способов состоит в том, что бы каждый кэш следил за адресной шиной, отлавливая ссылки на области памяти, находящиеся в нем. Запись в память также приводит к проблеме согласованности памяти: когда в действительности обновляется первичная память? Например, если один процессор выполняет запись в область памяти, а другой позже считывает данные из этой области, будет ли считано обновленное значение?

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

Последовательная согласованность — это наиболее сильная модель. Она гарантирует, что обновления памяти будут происходить в некоторой последовательности, причем каждому процессору будет видна одна и та же последовательность. Согласованность процессоров — более слабая модель.

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

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

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

Вдобавок, эти действия должны быть неделимыми. Вот почему в мультипроцессорах обычно реализуется более слабая модель согласования памяти, а программистам необходимо вставлять инструкции синхронизации памяти. Это часто обеспечивают компиляторы и библиотеки, так что прикладной программист этим может не заниматься. Как было отмечено, строки кэш-памяти часто содержат последовательности слов, которые блоками передаются из памяти и обратно. Предположим, что переменные x и y занимают по одному слову и хранятся в соседних ячейках памяти, отображенных в одну и ту же строку кэш-памяти. Пусть некоторый процесс выполняется на процессоре 1 мультипроцессора и производит записи и чтения переменной х. Наконец, допустим, что еще один процесс, выполняемый на процессоре 2, считывает и записывает переменную y. Тогда при каждом обращении процессора 1 к переменной х строка кэш-памяти этого процессора будет содержать и копию переменной y. Аналогичная картина будет и в кэше процессора 2. Ситуация, описанная выше, называется ложным разделением: процессы в действительности не разделяют переменные х и у, но аппаратная часть кэш-памяти интерпретирует обе переменные как один блок. Следовательно, когда процессор 1 обновляет переменную х, должна быть признана недействительной и обновиться строка кэша в процессоре 2, содержащая и х, и y. Таким же образом, когда процессор 2 обновляет значение у, строка кэш-памяти, содержащая значения х и у, в процессоре 1 тоже должна быть обновлена или признана недействительной.

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

В мультипроцессоре с распределенной памятью тоже есть соединительная сеть, но каждый процессор имеет собственную память. Как показано на рис. 4, соединительная сеть и модули памяти меняются местами по сравнению с их положением в мультипроцессоре с разделяемой памятью.

Соединительная сеть поддерживает передачу сообщений, а не чтение и запись в память. Следовательно, процессоры взаимодействуют, передавая и принимая сообщения. У каждого процессора есть свой кэш, но из-за отсутствия разделения памяти нет проблем согласованности кэша и памяти.

Рис.4 – Структура машин с распределенной памятью

Мультикомпьютер (многомашинная система) — это мультипроцессор с распределенной памятью, в котором процессоры и сеть расположены физически близко (в одном помещении). По этой причине такую многомашинную систему часто называют тесно связанной (спаренной) машиной. Она одновременно используется одним или небольшим количеством приложений; каждое приложение задействует выделенный набор процессоров. Соединительная сеть с большой пропускной способностью предоставляет высокоскоростной путь связи между процессорами. Обычно она организована в гиперкуб или матричную структуру. (Машины со структурой типа гиперкуб были одними из первых многомашинных систем.) Сетевая система — это многомашинная система с распределенной памятью, узлы которой связаны с помощью локальной сети типа Ethernet или такой глобальной сети, как Internet. Сетевые системы называются слабо связанными мультикомпьютерами. Здесь процессоры взаимодействуют также с помощью передачи сообщений, но время их доставки больше, чем в многомашинных системах, и в сети больше конфликтов.

С другой стороны, сетевая система строится на основе обычных рабочих станций и сетей, тогда как в многомашинной системе часто есть специализированные компоненты, особенно у связующей сети. Сетевая система, состоящая из набора рабочих станций, часто называется сетью рабочих станций (network of workstations — NOW) или кластером рабочих станций (cluster of workstations — COW). Все рабочие станции выполняют одно или несколько приложений, возможно, связанных между собой.

Популярный сейчас способ построения недорогого мультипроцессора с распределенной памятью — собрать так называемую машину Беовулфа (Beowulf). Она состоит из базового аппаратного обеспечения и таких бесплатных программ, как чипы к процессорам Pentium, сетевые карты, диски и операционная система Linux. (Имя Беовулф взято из старинной английской поэмы, первого шедевра английской литературы.) Существуют также гибридные сочетания мультипроцессоров с распределенной и разделяемой памятью. Узлами системы с распределенной памятью могут быть мультипроцессоры с разделяемой памятью, а не обычные процессоры.

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

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

Заключение

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

Совсем недавно на международной научной конференции «Параллельные вычислительные технологии (ПаВТ) 2015» в Екатеринбурге объявлена очередная, 22 редакция рейтинга самых высокопроизводительных вычислительных систем СНГ.

И впервые в опубликованном рейтинге присутствует вычислительная система из Волгограда. Это многопроцессорный вычислительный комплекс (кластер) Волгоградского государственного технического университета, занявший 49 место из всех систем, 18-е из систем, используемых в науке и образовании, и 14-е – из систем, установленных в университетах. Согласно текущей редакции рейтинга ВолгГТУ располагается на 8 месте среди университетов России и 9 - среди университетов СНГ по производительности располагаемой вычислительной системы.

Вычислительный кластер построен силами сотрудников и студентов кафедры ЭВМиС факультета электроники и вычислительной техники ВолгГТУ из оборудования, приобретенного в конце 2014 года по программе «Новые кадры для оборонно-промышленного комплекса», а также в 2013годах по Программе стратегического развития ВолгГТУ.

Кластер состоит из 13 вычислительных узлов, оснащенных современными процессорами Xeon E5 и сопроцессорами Xeon Phi. Узлы соединены скоростной сетью Infiniband FDR 56Гбит/с. Пиковая производительность кластера – 33.8 ТФлопс, производительность на тесте Linpack – 23,22 ТФлопс. На кластере помимо средств разработки и другого системного программного обеспечения установлены современные пакеты моделирования: система конечно-элементного анализа ANSYS Mechanical, российский пакет вычислительной гидродинамики FlowVision, пакет математических расчетов Mathematica и пакет инженерного анализа FRUND, разработанный в ВолгГТУ.

Как и ранее установленная вычислительная система, непрерывно развивавшаяся на кафедре ЭВМиС с 2007 года, новый кластер предназначен для широкого круга исследователей ВолгГТУ, как использующих готовые пакеты моделирования, так и разрабатывающих новые высокопроизводительные программные решения.

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

Развитие компьютерных технологий происходит непрерывно и вычислительные системы с каждым годом становятся все мощнее. Постоянно появляются различные высокопроизводительные средства, которые позволяют улучшать текущие программные пакеты. Разработчикам программного обеспечения зачастую приходится переписывать свои приложения, чтобы добиться увеличения эффективности и производительности своих программ. Непрерывное развитие в данной области позволяет решать все более сложные задачи, а также расширять круг задач, которые можно решить. И вычислительные системы с распределенной памятью играют в этом развитии одну из главенствующих ролей.

Список литературы

1. Радченко, Г.И. Распределенные вычислительные системы / Г.И.

Радченко. – Челябинск, 2012. – 184 с.

2. Ортега Дж. Введение в параллельные и векторные методы решения линейных систем. — М.: Мир, 1991. — 376 с.

3. Г.Б. Сушко, С.А. Харченко, «Многопоточная параллельная реализация итерационного алгоритма решения систем линейных уравнений с динамическим распределением нагрузки по нитям вычислений». Труды международной научной конференции «Параллельные вычислительные технологии» (ПаВТ'2008), Санкт-Петербург, 28 января

– 1 февраля 2008 г. Челябинск, Изд. ЮУрГУ, 2008, с. 452-457.

4. Беляев А.А. Векторные АЛУ и архитектура SIMD: два уровня параллелизма в архитектуре сигнальных процессоров / А.А. Беляев // Техника и технология. – 2011. - №2. – С. 23-25.

5. Баранов Л.Д. Технологии организации параллельных вычислений / Л.Д.

Баранов, Г.Н. Петрова, М.И. Чельдиев // Вопросы радиоэлектроники. – 2010. - №2. – С. 11-17.

6. Эндрю Таненбаум, Мартин ван Стеен Распределенные системы.

Принципы и парадигмы = Andrew S. Tanenbaum, Maarten van Steen.

"Destributed systems. Principles and paradigms". — Санкт-Петербург:

Питер, 2003. — 877 с.

7. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. СПб., 2002.

608 с.

8. Технологии параллельного программирования MPI и OpenMP [Текст] :

учебное пособие для студ. вузов, обуч. по напр. ВПО 010400 "Прикладная математика и информатика" и 010300 "Фундаментальная информатика и информационные технологии" / А. С. Антонов ; Моск.

гос. ун-т им. М.В. Ломоносова. - Москва : Московский университет, 2012. - 339 с.

9. Основы многопоточного, параллельного и распределенного программирования [Текст] : пер. с англ. / Г.Р. Эндрюс. - М. : ИД "Вильямс", 2003. - 512 с.

10. Линев А.В., Боголепов Д.К., Бастраков С.И. Технологии параллельного программирования для процессоров новых архитектур: Учебник / Под ред. В.П. Гергеля. М.: Изд-во Московского университета, 2010. — 160 с.

11. Яблонский С.В. Тенденции развития суперкомпьютеров // Вестник МГОУ. Серия «Техника и технология». — 2010. — № 1. — С.

5—10.

12. Яблонский С.В., Конева Н.Е., Конев Ф.Б. Современные суперкомпьютерные технологии // Вестник МГОУ. Серия «Техника и технология». — 2011. — № 1. — С. 5—8.

13. Agulleiro J.I. Vectorization with SIMD extensions speeds up reconstruction in electron tomography / J.I. Agulleiro, E.M. Garzn, A.I. Garc, J.J.

Fernndez // Journal of structural biology. – 2010. – Т. 170. - № 3. – С. 570Almgren A. Optimization of geometric multigrid for emerging multi- and manycore processors / A. Almgren, A.M. Deshpande, P. Dubey, D.D.

Kalamkar, L. Oliker, J. Shalf, A. Singh, M. Smelyanskiy, B. Van Straalen, S. Williams // High Performance Computing, Networking, Storage and Analysis (SC). – 2012. – С. 1-11

15. Chakroun I. Combining multi-core and gpu computing for solving combinatorial optimization problems / I. Chakroun, N. Melab, M. Mezmaz, D. Tuyttens // Journal of Parallel and Distributed Computing. – 2013. – Т.

73. - №12. – С. 1563-1577.

16. Jordan H. F., Alaghband F. Fundamentals of Parallel Processing. — Pearson Education, Inc., Upper Saddle River, NJ 07452, 2003. — с. 578.



 


Похожие работы:

«Ирина Ю. Станковская Фантастические миниатюры. Сборник рассказов http://www.litres.ru/pages/biblio_book/?art=9529073 ISBN 978-5-4474-0728-5 Аннотация В сборнике представлены миниатюры и микрорассказы на стыке разных жанров, написанные автором в течение последних нескольких лет. И. Ю. Станковская. «Фантастические миниатюры. Сборник рассказов» Содержание Пожирающий Космос 5 Мечта о море 7 Обычная эльфийка 9 Три слагаемых успеха 10 Игрушечная философия 12 Ещё о теории эволюции 13 У и астероид, или...»

«Департамент образования Администрации города Ноябрьска муниципальное бюджетное общеобразовательное учреждение муниципального образования город Ноябрьск «Средняя общеобразовательная школа микрорайона Вынгапуровский» Аналитический отчёт о работе творческой группы «Проектная деятельность в условиях реализации компетентностного подхода» Представлен на заседании творческой группы. Протокол № 4 от 24 мая 2014 года. Руководитель творческой группы Копылова Н.В. 2013-2014 учебный год Проект это особая...»

«1 [3] 201 Фонд поддержки социальных исследований «Хамовники» Рустем Вахитов Судьбы универСитета в роССии: имперский, советский и постсоветский раздаточный мультиинститут Страна Оз Москва • УДК 378(470+571) ББК 74.58(2Рос) В Издание подготовлено на средства Фонда поддержки социальных исследований «Хамовники» (проект 2012 001). Научный редактор: кандидат философских наук, ординарный профессор Национального исследовательского университета «Высшая школа экономики» Кордонский Симон Гдальевич Научные...»

«Annotation Первый вариант книги «Психолог в концлагере». Знаменитая книга выдающегося философа и психолога про силу человеческого духа и стремление к смыслу, помогающие выжить и выстоять даже в лагерях смерти. Виктор Франкл Предисловие ПСИХОЛОГ В КОНЦЛАГЕРЕ Неизвестный заключенный Активный и пассивный отбор Отчет заключенного № 119104 (психологический опыт) Фаза первая: прибытие в лагерь Станция Аушвиц Первая селекция Дезинфекция Что остается человеку: голое существование Первые реакции...»

«Майкл Суэнвик Хроники железных драконов (сборник) Серия «Железные драконы» Издательский текст http://www.litres.ru/pages/biblio_book/?art=9009291 Хроники железных драконов: Азбука, Азбука-Аттикус; СПб.; 2015 ISBN 978-5-389-09624-0 Аннотация Майкл Суэнвик – американский писатель-фантаст, неоднократный лауреат множества литературных наград и премий («Небьюла», «Хьюго», Всемирная премия фэнтези, Мемориальные премии Теодора Старджона и Джона Кемпбелла, премии журналов «Азимов», «Локус»», «Аналог»,...»

«Рецензенты: Шарафат Гусейнли, учитель Мехтиева технико-гуманитарного лицея г. Баку Г., Керимова Б. Акиф Гусейнли доктор философии по географии, М 44 учитель лицея имени Гейдара Алиева Познание мира. Перевод: Эльшады Азизовой Учебник для 4-го класса общеобразовательных школ. Баку, «Aspoliqraf», 2015, 104 стр. Авторские права защищены. Перепечатывать это издание или какую-либо его часть, копировать и распространять в электронных средствах информации без специального разрешения противозаконно. ©...»

«РАЗДЕЛ 1. Исходные данные и конечный результат освоения дисциплины 1.1.Цели и задачи дисциплины, ее место в учебном процессе. 1.1.1. Основной целью изучения дисциплины является формирование у будущих бакалавров знания категориального аппарата философии, умения правильно ориентироваться в социоприродном мире, методологически грамотно мыслить при овладении учебными дисциплинами и творчески решать научно-технические и практические задачи. Изучение философии направлено на развитие навыков...»

«РАЗДЕЛ 1. Исходные данные и конечный результат освоения дисциплины 1.1.Цели и задачи дисциплины, ее место в учебном процессе. 1.1.1. Основной целью изучения дисциплины является формирование у будущих бакалавров знания категориального аппарата философии, умения правильно ориентироваться в социоприродном мире, методологически грамотно мыслить при овладении учебными дисциплинами и творчески решать научно-технические и практические задачи. Изучение философии направлено на развитие навыков...»

«Бредихин Владимир Евгеньевич ИСПОЛЬЗОВАНИЕ МАТЕРИАЛОВ НАУЧНЫХ ЖУРНАЛОВ ИЗДАТЕЛЬСТВА ГРАМОТА В УЧЕБНОМ КУРСЕ ПОЛИТИКА И ПРАВО В статье раскрываются возможности использования материалов научных журналов издательства Грамота Исторические, философские, политические и юридические науки, культурология и искусствоведение. Вопросы теории и практики и Альманах современной науки и образования в преподавании элективного курса Политика и право. Определена учебно-практическая ценность публикаций...»

«ГЕРОИ НАШЕГО ВРЕМЕНИ В НООСФЕРЕ ПОКОЛЕНИЙ Если бы этот мальчик остался жить, не нужны были ли бы ни я, ни Достоевский Л.Н. Толстой о М.Ю. Лермонтове Василий Василенко, доктор философских наук, главный редактор электронного альманаха «Ноосфера XXI века» В предисловии 2-ого издания романа «Героя нашего времени» (1840 г.; тираж 1000 экз.) 26-летний автор М.Ю. Лермонтов заявил: Эта книга испытала на себе еще недавно несчастную доверчивость некоторых читателей и даже журналов к буквальному значению...»

«РАЗДЕЛ 1. Исходные данные и конечный результат освоения дисциплины 1.1.Цели и задачи дисциплины, ее место в учебном пролцессе. 1.1.1. Основной целью изучения дисциплины является формирование у будущих бакалавров знания категориального аппарата философии, умения правильно ориентироваться в социоприродном мире, методологически грамотно мыслить при овладении учебными дисциплинами и творчески решать научно-технические и практические задачи. Изучение философии направлено на развитие навыков...»

«КОММУНИКАТИВНЫЕ ИССЛЕДОВАНИЯ * 2014 * № 2 Редакционная коллегия Editorial Staff Главный редактор Editor-in-Chief д-р филол. наук, проф. Ph.D., Prof. O.S. Issers О.С. Иссерс (Омск, Россия) (Omsk, Russia) д-р философии, проф. Ph.D., Prof. R. Anderson Р. Андерсон (Лос-Анджелес, США) (Los Angeles, USA) д-р филол. наук, проф. Ph.D., Prof. A.N. Baranov А.Н. Баранов (Москва, Россия) (Moscow, Russia), д-р филол. наук, проф. Ph.D., Prof. N.V. Bogdanova-Beglaryan Н.В. Богданова-Бегларян (St. Petersburg,...»

«Ирина Ю. Станковская Фантастические миниатюры. Сборник рассказов http://www.litres.ru/pages/biblio_book/?art=9529073 ISBN 978-5-4474-0728-5 Аннотация В сборнике представлены миниатюры и микрорассказы на стыке разных жанров, написанные автором в течение последних нескольких лет. И. Ю. Станковская. «Фантастические миниатюры. Сборник рассказов» Содержание Пожирающий Космос 5 Мечта о море 7 Обычная эльфийка 9 Три слагаемых успеха 10 Игрушечная философия 12 Ещё о теории эволюции 13 У и астероид, или...»

«ISSN 1606-6251 РОССИЙСКАЯ АКАДЕМИЯ НАУК РОССИЙСКОЕ ФИЛОСОФСКОЕ ОБЩЕСТВО РОССИЙСКОГО ФИЛОСОФСКОГО ОБЩЕСТВА 4 (68) МОСКВА ГЛАВНЫЙ РЕДАКТОР А.Н. Чумаков ОТВЕТСТВЕННЫЙ СЕКРЕТАРЬ Л.Ф. Матронина РЕДАКЦИОННАЯ КОЛЛЕГИЯ: Адров В.М., Бирюков Н.И., Билалов М.И., Бучило Н.Ф., Кацура А.В., Королёв А.Д., Крушанов А.А., Лисеев И.К., Малюкова О.В., Павлов С.А., Порус В.Н., Пырин А.Г., Сорина Г.В. РЕДАКЦИОННЫЙ СОВЕТ: Васильев Ю.А., Драч Г.В., Кирабаев Н.С., Любутин К.Н., Мантатов В.В., Микешина Л.А., Миронов...»

«Утверждена на заседании Ученого совета Московского государственного института культуры 23 марта 2015 года, протокол №8.Авторы-составители: Аронов А.А., доктор педагогических наук, доктор культурологии, профессор, Гертнер С.Л., доктор философских наук, доцент, Гриненко Г.В., профессор, Китов Ю.В., доктор философских наук, профессор, Самарина Н.Г., кандидат исторических наук, доцент, Хмельницкая И.Б., кандидат исторических наук, доцент. Введение Содержание вступительного экзамена по специальности...»

«НАУЧНО-ТЕОРЕТИЧЕСКИЙ ЖУРНАЛ ИЗДАЕТСЯ ПРИ СОДЕЙСТВИИ РОССИЙСКОЙ ЭКОЛОГИЧЕСКОЙ АКАДЕМИИ (РЭА) РОССИЙСКОГО ФИЛОСОФСКОГО ОБЩЕСТВА (РФО) Выходит 2 раза в год Издается с 2008 г. Шеф-редактор Л. Е. Гринин Главный редактор А. Н. Чумаков Редакционная коллегия: Барлыбаев Х. А., Гирусов Э. В., Ивахнюк И. В., Ильин И. В., Калачёв Б. Ф., Калиниченко П. А., Кацура А. В., Мамедов Н. М., Митрофанова А. В., Мозговой С. А., Попков В. В., Пырин А. Г., Режабек Б. Г., Снакин В. В. Международный редакционный совет:...»

«ISSN 1606-6251 РОССИЙСКАЯ АКАДЕМИЯ НАУК РОССИЙСКОЕ ФИЛОСОФСКОЕ ОБЩЕСТВО РОССИЙСКОГО ФИЛОСОФСКОГО ОБЩЕСТВА 4 (64) МОСКВА ГЛАВНЫЙ РЕДАКТОР А.Н. Чумаков ОТВЕТСТВЕННЫЙ СЕКРЕТАРЬ Л.Ф. Матронина РЕДАКЦИОННАЯ КОЛЛЕГИЯ: Адров В.М., Бирюков Н.И., Билалов М.И., Бучило Н.Ф., Кацура А.В., Королёв А.Д., Крушанов А.А., Лисеев И.К., Малюкова О.В., Павлов С.А., Порус В.Н., Пырин А.Г., Сорина Г.В. РЕДАКЦИОННЫЙ СОВЕТ: Васильев Ю.А., Драч Г.В., Кирабаев Н.С., Любутин К.Н., Мантатов В.В., Микешина Л.А., Миронов...»

«ТЕМАТИЧЕСКИЙ ПЛАН Часть I. Философия: общие проблемы 1. Предмет философии и ее роль в жизни человека и общества.2. Исторические типы философии.3. Философское понимание мира.4. Проблема сознания в философии.5. Познание, его возможности и границы. Часть II. Социальная философия 6. Природа социально-философского познания.7. Деятельность как способ существования человека и общества. 8. Общество, его структура и особенности развития. 9 Духовная жизнь общества. 10. Человек, его природа, сущность и...»

«китап елЪяЗМасЫ книжная летопись 1938 елдан бирле чыга Издается с 1938 года №2 (458 – 887) 0 ГоМУМи БЊлек оБЩиЙ отДел 00 Фђн џђм мђдђниятнећ гомуми мђсьђлђлђре общие вопросы науки и культуры 001 Фн м гыйлем наука и знание в целом 458. Международный конкурс научных работ молодежи из России и Германии : сб. науч. работ победителей конкурса / Казан. нац. исслед. технол. ун-т; [отв. ред. В. Ф. Шкодич, С. В. Наумов]. – Казань : КНИТУ, 2012. – 428 с.: рис., табл.; 20 см. – В содерж. авт.: В. А....»

«ISSN 1606-6251 РОССИЙСКАЯ АКАДЕМИЯ НАУК РОССИЙСКОЕ ФИЛОСОФСКОЕ ОБЩЕСТВО РОССИЙСКОГО ФИЛОСОФСКОГО ОБЩЕСТВА 3 (75) МОСКВА ГЛАВНЫЙ РЕДАКТОР А.Н. Чумаков ОТВЕТСТВЕННЫЙ СЕКРЕТАРЬ Л.Ф. Матронина РЕДАКЦИОННАЯ КОЛЛЕГИЯ: Адров В.М., Билалов М.И., Бирюков Н.И., Бучило Н.Ф., Кацура А.В., Королёв А.Д., Крушанов А.А., Лисеев И.К., Малюкова О.В., Павлов С.А., Порус В.Н., Пырин А.Г., Сорина Г.В. РЕДАКЦИОННЫЙ СОВЕТ: Васильев Ю.А., Драч Г.В., Кирабаев Н.С., Любутин К.Н., Мантатов В.В., Микешина Л.А., Миронов...»







 
2016 www.nauka.x-pdf.ru - «Бесплатная электронная библиотека - Книги, издания, публикации»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.