WWW.KNIGA.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА - Книги, пособия, учебники, издания, публикации

 

ПАРАЛЛЕЛЬНЫЕ И РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ

План лекций

№ Тема Вопросы

1 Введение в предмет. Основные понятия и Структура учебного плана. Литература. Понятие

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

параллельных вычислений. Сдерживающие факторы.

Характеристика необходимых знаний и умений.

Содержание курса. Вопросы для обсуждения.

2 Принципы построения параллельных Основные виды ЭВМ. Принципы фон-Неймана.

вычислительных систем Структура традиционных ЭВМ. Как повышают производительность компьютеров. Вопросы для обсуждения.

3 Классификация параллельных компьютеров и Классификация Флинна, Хокни, Шнайдера.

систем Взаимосвязь классификаций. Параллельные компьютеры с общей и разделенной памятью.

Параллельные компьютеры с сетевой структурой.

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

Вопросы для обсуждения.

4 Концепция GRID и метакомпьютинг Концепция GRID и метакомпьютер. Особенности распределения задач и передачи данных.

Классификация GRID-систем.. Вопросы для обсуждения.Вопросы для обсуждения.

5 Технологии параллельного программирования Программирование для систем с разделяемой памятью: Open MP. Систем Linda. Программирование для систем с передачей сообщений: MPI. Реализации интерфейса программирования MPI.

6 Библиотека MPI. Общие процедуры. Общие процедуры MPI. Прием/передача сообщений между отдельными процессами. Объединение запросов на взаимодействие. Совмещенные прием/передача сообщений. Вопросы для обсуждения.

7 Библиотека MPI. Коллективные взаимодействия Коллективные взаимодействия процессов.

процессов. Синхронизация процессов. Работа с группами процессов. Группы и коммутаторы. Эффективность параллельных вычислений. Вопросы для обсуждения.

8 Библиотека MPI. Пример программирования Матричные задачи. Системы линейных приложений. алгебраических уравнений. Параллелизм в решении задач криптоанализа. Вопросы для обсуждения.

9 Моделирование и анализ параллельных Модель вычислений в виде графа. Описание схемы вычислений параллельного исполнения алгоритма. Определение времени выполнения параллельного алгоритма.

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




Вопросы для обсуждения.

10 Модели функционирования параллельных Концепция процесса. Понятие ресурса. Организация программ программ как системы процессов. Взаимодействие и взаимоисключение процессов. Модель программы в виде дискретной системы.

11 Модель программы в виде сети Петри Сети Петри. Моделирование программ с использованием сетей Петри. Вопросы для обсуждения.

12 Учебно-практическая задача: решение Последовательные методы решения задачи Дирихле.

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

Введение в предмет. Основные понятия и определения.

Содержание 1. Структура учебного плана.

2. Литература.

3. Понятие параллельных вычислений.

4. Необходимость параллельных вычислений.

5. Сдерживающие факторы.

6. Характеристика необходимых знаний и умений.

7. Содержание курса.

8. Вопросы для обсуждения.

1. Структура учебного плана - Лекции – 24 часа (каждый понедельник по 2 часа).

- Лабораторные работы – 24 часов (каждая пятница по 2 часа, вычислительный центр).

- Самостоятельная работа – 102 часа.

- 3 модуля по 8 лекций.

- Экзамен.

2. Литература 1. Воеводин В.В. Модели и методы в параллельных процессах. - М.: Наука, 1986.

2. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. -С.Птб.: BHV-Петербург, 2002, -608 c.

3. Гергель В.П., Стронгин Р.Г. Основы параллельных вычислений для многопроцессорных вычислительных систем. – Н.Новгород, ННГУ, 2001.

4. Шпаковский Г.И., Серикова Н.В. Программирование для многопроцессорных систем в стандарте MPI:

Пособие / Минск: БГУ, 2002, -324 c.

5. Антонов А.С. Параллельное программирование с использованием технологии MPI. –M.: изд. Московского университета, 2004, -71 c.

6. http://www.parallel.ru * Источники [1-5] в электронном виде можно найти в Интернете по адресу http://www.transmarket.net/learning 3. Понятие параллельных вычислений.

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

При этом:

- Параллельные вычисления не сводятся к использованию только к многопроцессорных вычислительных систем (существуют ли последовательные компьютеры !?).

- Одновременные выполняемые операции должны быть направлены на решение общей задачи.

- Параллельные вычисления следует отличать от многозадачных (многопрограммных) режимов работы последовательных ЭВМ.

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





1. Опережение потребности вычислений быстродействия существующих компьютерных систем (ex., Problems of Grand Challenge) – проектирование интегральных схем, – анализ загрязнения окружающей среды, – создание лекарственных препаратов и др.

Оценка необходимой производительности –1012 операций (1 Tflops) 2. Теоретическая ограниченность роста производительности последовательных компьютеров 3. Резкое снижение стоимости многопроцессорных (параллельных) вычислительных систем 5. Сдерживающие факторы Несмотря на острую необходимость параллельных вычислительных систем для решения ряда сложных задач, следует отметить, что до сих пор применение параллелизма не получило столь широкого распространения, как это уже многократно предсказывалось многими исследователями. Возможными причинами подобной ситуации могут являться:

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

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

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

- потери производительности для организации параллелизма – согласно гипотезе Минского (Minsky), ускорение, достигаемое при использовании параллельной системы, пропорционально двоичному логарифму от числа процессоров (т.е. при 1000 процессорах возможное ускорение оказывается равным 10).

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

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

- постоянное совершенствование последовательных компьютеров – в соответствии с широко известным законом Мура (Moore) мощность последовательных процессоров возрастает практически в 2 раза каждые 18- месяцев (исторический экскурс показывает, что быстродействие ЭВМ увеличивалось на порядок каждые 5 лет) и, как результат, необходимая производительность может быть достигнута и на "обычных" последовательных компьютерах.

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

- существование последовательных вычислений – в соответствии с законом Амдала (Amdahl) ускорение процесса вычислений при использовании p процессоров ограничивается величиной где f есть доля последовательных вычислений в применяемом алгоритме обработки данных.

Закон Амдала определяет принципиально важные для параллельных вычислений положения:

1. Ускорение зависит от потенциального параллелизма задачи (величина 1– f) и параметров аппаратуры (числа процессоров n).

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

Пусть, например, f = 0,2 (что является реальным значением), тогда ускорение не может превосходить 5 при любом числе процессоров, то есть максимальное ускорение определяется потенциальным параллелизмом задачи. Очевидной является чрезвычайно высокая чувствительность ускорения к изменению величины f.

Данное замечание характеризует одну из самых серьезных проблем в области параллельного программирования (алгоритмов без определенной доли последовательных команд практически не существует). Однако часто доля последовательных действий характеризует не возможность параллельного решения задач, а последовательные свойства применяемых алгоритмов. Как результат, доля последовательных вычислений может быть существенно снижена при выборе более подходящих для распараллеливания алгоритмов - существующее программное обеспечение ориентировано в основном на последовательные ЭВМ.

Данное возражение состоит в том, что для большого количества задач уже имеется подготовленное программное обеспечение и все эти программы ориентированы главным образом на последовательные ЭВМ – как результат, переработка такого количества программ для параллельных систем вряд ли окажется возможным.

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

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

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

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

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

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

6. Характеристика необходимых знаний и умений Проблематика параллельных вычислений является чрезвычайно широкой областью теоретических исследований и практически выполняемых работ. Материал данного курса ориентирован в первую очередь на изучение практических аспектов построения параллельных и распределенных компьютерных систем и будет охватывать следующие направления деятельности:

- архитектура параллельных вычислительных систем;

- модели вычислений и методы анализа сложности;

- параллельные методы вычислений;

- параллельное программирование (языки, среды разработки, библиотеки).

7. Содержание курса Таким образом курс «Параллельные и распределенные вычисления» состит из 3 самостоятельных частей:

- архитектура параллельных ЭВМ и их классификация (4 лекции).

- технологии разработки параллельных программ (4 лекции): системы программирования Open MP, Linda, MPI.

- моделирование и анализ параллельных вычислений.

8. Вопросы для обсуждения - За время существование вычислительной техники быстродействие вычислений увеличилось в 105 раз. Существует ли предел роста быстродействия?

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

- Согласны ли Вы с утверждением: развитие вычислительной техники – это история совершенствования архитектуры и практическое использование параллелизма.

- Как вы думаете, верно ли утверждение: чем мощнее компьютер, тем быстрее на нем можно решить данную задачу?

Принципы построения параллельных вычислительных систем Содержание 1. Основные виды ЭВМ.

2. Принципы фон-Неймана.

3. Структура традиционных ЭВМ.

4. Как повышают производительность компьютеров.

5. Вопросы для обсуждения.

1. Основные виды ЭВМ.

Электронные Вычислительные Машины (ЭВМ) разделяются на аналоговые (АВМ) и дискретные (ЦВМ) машины.

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

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

Другой, наиболее распространенный тип ЭВМ - цифровые вычислительные машины (ЦВМ) или машины дискретного действия. В машинах такого типа вся информация представляется в виде цифровых.

Базовые элементы вычислительной техники, классические ЭВМ - это вычислительные машины фонНейманновской архитектуры (Von Neumann architecture).

2. Принципы фон-Неймана. Структура традиционных ЭВМ.

Основные архитектурные принципы построения ЦВМ были разработаны и в 1946 г. опубликованы Дж. фон Нейманом (John Louis von Neumann), Г. Голдстайном (H. Goldstine) и А. Берксом в отчете: "Предварительное обсуждение логического конструирования электронного вычислительного устройства". Ниже перечислены эти принципы:

1. Программное управление работой ЭВМ.

Программа состоит из последовательности команд, хранимых в Оперативном Запоминающем Устройстве (ОЗУ); каждая команда задает единичный акт преобразования информации. ЭВМ поочередно выбирает команды программы и выполняет предписанные в них дискретные вычисления. В любой момент времени работы ЭВМ выполняется только одна команда программы.

Так алгоритм вычисления площади трапеции с основаниями А и В, высотой Н {S=0.5*(А+В)*Н} можно представить в виде последовательности (шагов) элементарных вычислений - команд ЭВМ (трех-адресных):

Команды Комментарий /,P2,’’0.5’’,S; S=R2/0.5.

2. Принцип условного перехода.

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

Так, определение максимального числа может быть выполнено программой:

L..............

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

3. Принцип хранимой программы Принцип заключается в том, что команды представляются в числовой форме и хранятся в том же Оперативном Запоминающем Устройстве (ОЗУ), что и исходные данные. ОЗУ – структурно состоит из пронумерованных ячеек. Над программой можно производить арифметические действия, изменяя ее динамически.

4. Использования двоичной системы счисления для представления информации в ЭВМ.

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

3. Структура традиционных ЭВМ Классические (Von Neumann architecture) ЭВМ имеют следующую структуру:

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

- АЛУ (Арифметико- Логическое Устройство, устройство, которое выполняет операции над данными:

аргументы и результаты операции считываются и записываются из (в) ОЗУ.

- УУ (Устройства Управления), устройство, которое последовательно выбирает команды из ОЗУ, дешифрирует их и организует выполнение заданных операций в АЛУ.

- кд........кд.....кд последовательность команд и данных, причем данные как читаются из ОЗУ, так и туда же записываются.

Совокупность АЛУ и УУ принято называть процессором (ЦПУ, CPU). В современных микропроцессорах, микросхема процессора размещается на одном кристалле (чипе), это: УУ + АЛУ + набор регистров + кэш память. В приведенной схеме не отражены устройства ввода/вывода информации, массовая память для постоянного хранения информации.

4. Как повышают производительность компьютеров.

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

1. Усложнение и наращивание аппаратных средств Существует лишь два способа параллельной обработки данных: собственно параллелизм и конвейерность.

Параллельная обработка.

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

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

Теперь допустим, что у нас есть два точно таких же устройства, которые могут работать одновременно и независимо друг от друга. Для простоты будем рассматривать идеальную ситуацию, когда нет никаких дополнительных накладных расходов, связанных с получением устройствами входных данных и сохранением результатов. Постоянно загружая каждое устройство элементами входных массивов, можно получить искомую сумму уже за 250 тактов— ускорение выполнения работы в два раза. В случае 10 подобных устройств время получения результата составит всего 50 тактов, а в общем случае система из /V устройств затратит на суммирование время около 500/N.

Кстати, пионером в параллельной обработке потоков данных был академик А.А.Самарский, выполнявший в начале 50-х годов расчеты, необходимые для моделирования ядерных взрывов. Самарский решил эту задачу, посадив несколько десятков барышень с арифмометрами за столы. Барышни передавали данные друг другу просто на словах и откладывали необходимые цифры на арифмометрах. Таким образом, в частности, была расчитана эволюция взрывной волны. Работы было много, барышни уставали, а Александр Андреевич ходил между ними и подбадривал.

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

Конвейерная обработка.

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

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

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

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

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

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

Казалось бы конвейерную обработку можно с успехом заменить обычным параллелизмом, для чего продублировать основное устройство столько раз, сколько ступеней конвейера предполагается выделить. В самом деле, пять устройств предыдущего примера обработают 100 пар аргументов за 100 единиц времени, что быстрее времени работы конвейерного устройства! В чем же дело? Ответ прост, увеличив в пять раз число устройств, мы значительно увеличиваем как объем аппаратуры, так и ее стоимость. Представьте себе, что на автозаводе решили убрать конвейер, сохранив темпы выпуска автомобилей. Если раньше на конвейере одновременно находилась тысяча автомобилей, то действуя по аналогии с предыдущим примером надо набрать тысячу бригад, каждая из которых (1) в состоянии полностью собрать автомобиль от начала до конца, выполнив сотни разного рода операций, и (2) сделать это за то же время, что машина прежде находилась на конвейере. Представили себестоимость такого автомобиля? Нет? Согласен, трудно, разве что Ламборгини приходит на ум, но потому и возникла конвейерная обработка...

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

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

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

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

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

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

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

VLIW-процессоры (Very Large Instruction Word) работают практически по правилам обычного компьютера.

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

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

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

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

5. Вопросы для обсуждения.

- Структура фон Неймана устарела ?

- Является ли ЭВМ, цифровая машиной с новыми принципами физической организации аппаратных средств, например с квантовами. А как называть пневматическую дискретную вычислительную машину?

- Почему числа - степень двойки предпочтительны для измерения параметров оборудования ЭВМ. Почему нумерация строк ОЗУ начинает с нуля.

Содержание 1. Классификация Флинна, Хокни, Шнайдера. Взаимосвязь классификаций.

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

3. Параллельные компьютеры с сетевой структурой.

4. Характеристика типовых схем коммуникации в многопроцессорных вычислительных системах 5. Вопросы для обсуждения.

1. Классификация вычислительных машин. Взаимосвязь классификаций.

Все современные микропроцессоры имеют фон Нейманновскую архитектуру. Для ускорения вычислений предложено ряд параллельных архитектур вычислительных машин, для классификации которых, можно использовать нотацию М. Флинна (М.Flynn).

Классификация М. Флинна (М. Flynn). По-видимому, самой ранней и наиболее известной является классификация архитектур вычислительных систем, предложенная в 1966 году М. Флинном. Классификация базируется на понятии потока, под которым понимается последовательность команд или данных, обрабатываемая процессором. На основе числа потоков команд и потоков данных Флинн выделяет четыре класса архитектур.

SISD (Single Instruction stream/Single Data stream) — одиночный поток команд и одиночный поток данных (рис. 3.1). На рисунках, иллюстрирующих классификацию М. Флинна, использованы следующие обозначения:

ПР — это один или несколько процессорных элементов, УУ — устройство управления, ПД — память данных. К классу SISD относятся, прежде всего, классические последовательные машины или, иначе, машины фоннеймановского типа, например, PDP-11 или VAX 11/780. В таких машинах есть только один поток команд, все команды обрабатываются последовательно друг за другом и каждая команда инициирует одну скалярную операцию. Не имеет значения тот факт, что для увеличения скорости обработки команд и скорости выполнения арифметических операций может применяться конвейерная обработка: как машина CDC 6600 со скалярными функциональными устройствами, так и CDC 7600 с конвейерными попадают в этот класс.

SIMD (Single Instruction stream/Multiple Data stream) — одиночный поток команд и множественный поток данных (см. рис. 3.1). В архитектурах подобного рода сохраняется один поток команд, включающий, в отличие от предыдущего класса, векторные команды. Это позволяет выполнять одну арифметическую операцию сразу над многими данными, например, над элементами вектора. Способ выполнения векторных операций не оговаривается, поэтому обработка элементов вектора может производиться либо процессорной матрицей, как в ILLIAC IV, либо с помощью конвейера, как; например, в машине Сгау-1.

MISD (Multiple Instruction stream/Single Data stream) — множественный поток команд и одиночный поток данных (рис. 3.2). Определение подразумевает наличие в архитектуре многих процессоров, обрабатывающих один и тот же поток данных. Однако ни Флинн, ни другие специалисты в области архитектуры компьютеров до сих пор не смогли представить убедительный пример реально существующей вычислительной системы, построенной на данном принципе. Ряд исследователей относят конвейерные машины к данному классу, однако это не нашло окончательного признания в научном сообществе. Будем считать, что пока данный класс пуст.

MIMD (Multiple Instruction stream/Multiple Data stream) — множественный поток команд и множественный поток данных (см. рис. 3.2). Этот класс предполагает, что в вычислительной системе есть несколько устройств обработки команд, объединенных в единый комплекс и работающих каждое со своим потоком команд и данных.

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

Классификация Р. Хокни (R. Hockney). P. Хокни разработал свой подход к классификации для более детальной систематизации компьютеров, попадающих в класс MIMD по систематике М. Флинна. Как отмечалось выше, класс MIMD чрезвычайно широк и объединяет целое множество различных типов архитектур. Пытаясь систематизировать архитектуры внутри этого класса, Р. Хокни получил иерархическую структуру, представленную на рис. 3.3.

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

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

Среди MIMD-машин с переключателем Хокни выделяет те, в которых вся память распределена среди процессоров как их локальная память. В этом случае общение самих процессоров реализуется с помощью сложного переключателя, составляющего значительную часть компьютера. Такие машины носят название MIMD-машин с распределенной памятью. Если память это разделяемый ресурс, доступный всем процессорам через переключатель, то MIMD-машины являются системами с общей памятью (BBN Butterfly, Cray С90). В соответствии с типом переключателей можно проводить классификацию и далее: простой переключатель, многокаскадный переключатель, общая шина и т. п. Многие современные вычислительные системы имеют как общую разделяемую память, так и распределенную локальную. Такие системы автор рассматривает как гибридные MIMD с переключателем.

При рассмотрении MIMD-машин с сетевой структурой считается, что все они имеют распределенную память, а дальнейшая классификация проводится в соответствии с топологией сети: звездообразная сеть (ЮАР), регулярные решетки разной размерности (Intel Paragon, Cray T3D), гиперкубы (NCube, Intel iPSC), сети с иерархической структурой, такой как деревья, пирамиды, кластеры (Cm*, CEDAR) и, наконец, сети, изменяющие свою конфигурацию.

Классификация Л. Шнайдера (L. Snyder). В 1988 году Л. Шнайдер предложил выделить этапы выборки и непосредственно исполнения в потоках команд и данных. Именно разделение потоков на адреса и их содержимое позволило описать такие ранее "неудобные" для классификации архитектуры, как компьютеры с длинным командным словом, систолические массивы и целый ряд других.

Введем необходимые для дальнейшего изложения понятия и обозначения. Назовем потоком ссылок S некоторой вычислительной системы конечное множество бесконечных последовательностей пар:

S={(a1t1)(a2t2),(b1u1),(b2u2) где первый компонент каждой пары — это неотрицательное целое число, называемое адресом, второй компонент — это набор из п неотрицательных целых чисел, называемых значениями, причем п одинаково для всех наборов всех последовательностей. Например, пара (b2 и2) определяет адрес b2 и значение и2. Если значения рассматривать как команды, то из потока ссылок получим поток команд I; если же значения интерпретировать как данные, то соответствующий поток — это поток данных D.

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

Пусть S произвольный поток ссылок. Последовательность адресов потока S, обозначаемая Sa, это последовательность наборов, сформированная из адресов каждой последовательности из S:

Последовательность значений потока S, обозначаемая Sv, это последовательность наборов, сформированная из значений каждой последовательности из S.

Если Sx — последовательность элементов, где каждый элемент является набором из п чисел, то для обозначения "ширины" последовательности будем пользоваться обозначением: w(Sx)=n Из определений Sa, Sv и Sw следует, что если S это поток ссылок со значениями из я чисел, то w(Sa) = |S| и w(Sv) = n|S|, где \S\ обозначает мощность множества S.

Каждую пару (/, D) с потоком команд I и потоком данных D будем называть вычислительным шаблоном, а все компьютеры будем разбивать на классы в зависимости от того, какой шаблон они могут исполнить. В самом деле, компьютер может исполнить шаблон ( I, D) если он в состоянии:

• выдать w(Ia) адресов команд для одновременной выборки из памяти;

• декодировать и проинтерпретировать одновременно w(Iv) команд;

• выдать одновременно w(Da) адресов операндов;

• выполнить одновременно w(Dv) операций над различными данными.

Если все эти условия выполнены, то компьютер может быть описан как Iw(Ia)w(Iv)Dw(Da)w(Dv) Для более детальной классификации Шнайдер вводит три предопределенных значения, которые могут принимать величины w(Ia),w(Iv),w(Da),w(Dv).

• с - значение от 1 до некоторой (небольшой) константы;

• m - значение от 1 до произвольно большого конечного числа.

В частности, в этих обозначениях фоннеймановская машина принадлежит к классу ISSDSS.

На основе этих обозначений можно вьщелить следующие классы компьютеров: П ISSDSS — классические машины фоннеймановского типа;

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

ISSDSm - SIMD-компьютеры без возможности получения уникального адреса для данных в каждом процессорном элементе. Сюда входят, например, МРР, Connection Machine 1 и систолические массивы;

ISSDmm - SIMD-компьютеры, имеющие возможность независимой модификации адресов операндов в каждом процессорном элементе, например, ILLIAC IV и Connection Machine 2;

ISCDCC - вычислительные системы, выбирающие и исполняющие одновременно несколько команд, для доступа к которым используется один адрес. Типичным примером являются VLIW-компьютеры;

ImmDmm — к этому классу относятся все компьютеры типа MIMD.

Классификация Д. Скилликорна (D. Skillicorn). В 1989 году была сделана очередная попытка расширить классификацию Флинна и тем самым преодолеть ее недостатки. Д. Скилликорн разработал подход, пригодный для описания свойств многопроцессорных систем и некоторых нетрадиционных архитектур, в частности, dataflow.

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

• процессор команд (IP — Instruction Processor) — функциональное устройство, работающее как интерпретатор команд; в системе, вообще говоря, может отсутствовать;

• процессор данных (DP — Data Processor) — функциональное устройство, работающее как преобразователь данных в соответствии с арифметическими операциями;

• иерархия памяти (IM — Instruction Memory, DM — Data Memory) — запоминающее устройство, в котором хранятся данные и команды, пересылаемые между процессорами;

• переключатель — абстрактное устройство, обеспечивающее связь между процессорами и памятью.

Функции процессора команд во многом схожи с функциями устройств управления последовательных машин и, согласно Д.

Скилликорну, сводятся к следующим. На основе своего состояния и полученной от DP информации IP выполняет такие действия: определяет адрес команды, которая будет выполняться следующей; осуществляет доступ к IM для выборки команды;

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

Функции процессора данных делают его во многом похожим на арифметическое устройство традиционных процессоров. DP получает от IP команду, которую надо выполнить; получает от IP адреса операндов; выбирает one ранды из DM; выполняет команду; запоминает результат в DM; возвращает в IP информацию о состоянии после выполнения команды.

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

• 1 — 1 — переключатель такого типа связывает пару функциональных устройств;

• n— n— переключатель связывает каждое устройство из одного множества устройств с соответствующим ему устройством из другого множества, т. е. фиксирует попарную связь;

• 1 - п — переключатель соединяет одно выделенное устройство со всеми функциональными устройствами из некоторого набора;

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

Примеров подобных переключателей можно привести много. Так, все матричные процессоры имеют переключатель типа 1 п для связи единственного процессора команд со всеми процессорами данных. В компьютерах семейства Connection Machine каждый процессор данных имеет свою локальную память, следовательно, такая связь будет описываться как п — п. В то же время, каждый процессор команд может связаться с любым другим процессором, что отвечает описанию п х п.

Классификация Д. Скилликорна строится на основе следующих восьми характеристик:

1. количество процессоров команд IP;

2. число запоминающих устройств (модулей памяти) команд IM;

3. тип переключателя между IP и IM;

4. количество процессоров данных DP;

5. число запоминающих устройств (модулей памяти) данных DM;

6. тип переключателя между DP и DM;

7. тип переключателя между IP и DP;

8. тип переключателя между DP и DP.

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

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

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

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

Компьютеры с общей и распределенной памятью, появились не случайно. Они отражают две основные задачи параллельных вычислений. Первая задача заключается в построении вычислительных систем с максимальной производительностью. Это легко позволяет сделать компьютеры с распределенной памятью. Уже сегодня существуют установки, объединяющие тысячи вычислительных узлов в рамках единой коммуникационной среды. Да что говорить, даже Интернет можно рассматривать как самый большой параллельный компьютер с распределенной памятью, объединяющий миллионы вычислительных узлов. Но как такие системы эффективно использовать? Как убрать большие накладные расходы, идущие на взаимодействие параллельно работающих процессоров? Как упростить разработку параллельных программ? Практически единственный способ программирования подобных систем — это использование систем обмена сообщениями, например, PVM или MPI, что не всегда просто. Отсюда возникает вторая задача — поиск методов разработки эффективного программного обеспечения для параллельных вычислительных систем.

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

3. Параллельные компьютеры с сетевой структурой Идея построения вычислительных систем данного класса очень проста. Берется какое-то количество вычислительных узлов, которые объединяются друг с другом некоторой коммуникационной средой. Каждый вычислительный узел имеет один или несколько процессоров и свою собственную локальную память, разделяемую этими процессорами. Распределенность памяти означает то, что каждый процессор имеет непосредственный доступ только к локальной памяти своего узла. Доступ к данным, расположенным в памяти других узлов, выполняется дольше и другими, более сложными способами. В последнее время в качестве узлов все чаще и чаще используют полнофункциональные компьютеры, содержащие, например, и собственные внешние устройства. Коммуникационная среда может специально проектироваться для данной вычислительной системы либо быть стандартной сетью, доступной на рынке.

Преимуществ у такой схемы организации параллельных компьютеров много. В частности, покупатель может достаточно точно подобрать конфигурацию в зависимости от имеющегося бюджета и своих потребностей в вычислительной мощности. Соотношение цена/производительность у систем с распределенной памятью ниже, чем у компьютеров других классов. И главное, такая схема дает возможность практически неограниченно наращивать число процессоров в системе и увеличивать ее производительность. Большое число подключаемых процессоров даже определило специальное название для систем данного класса: компьютеры с массовым параллелизмом или массивнопараллельные компьютеры. Уже сейчас в мире существуют десятки компьютеров, в составе которых работает более тысячи процессоров.

Помимо традиционных суперкомпьютеров, класс компьютеров с распределенной памятью в последнее время активно расширяется за счет вычислительных кластеров. Сразу оговоримся, что в компьютерной литературе понятие "кластер" употребляется в различных значениях. В частности, "кластерная" технология используется для повышения скорости работы и надежности серверов баз данных или Web-серверов. Здесь мы будем говорить только о кластерах, ориентированных на решение задач вычислительного характера.

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

Если говорить кратко, то вычислительный кластер есть совокупность компьютеров, объединенных в рамках некоторой сети для решения одной задачи (рис. 3.16). В качестве вычислительных узлов обычно используются доступные на рынке однопроцессорные компьютеры, двух- или четырех-процессорные SMP-серверы. Каждый узел работает под управлением своей копии операционной системы, в качестве которой чаще всего используются стандартные ОС: Linux, Windows NT, Solaris и т. п. Состав и мощность узлов могут меняться даже в рамках одного кластера, что дает возможность создавать неоднородные системы. Выбор конкретной коммуникационной среды определяется многими факторами: особенностями класса решаемых задач, доступным финансированием, необходимостью последующего расширения кластера и т. п. Возможно включение в конфигурацию кластера специализированных компьютеров, например, файл-сервера. Как правило, предоставляется возможность удаленного доступа на кластер через Интернет.

Ясно, что простор для творчества при проектировании кластеров огромен. Узлы могут не содержать локальных дисков, коммуникационная среда может одновременно использовать различные сетевые технологии, узлы не обязаны быть одинаковыми и т. д. Рассматривая крайние точки, кластером можно считать как пару ПК, связанных локальной 10-мегабитной Ethernet-сетью, так и вычислительную систему, создаваемую в рамках проекта Cplant в Национальной лаборатории Sandia: 1400 рабочих станций на базе процессоров Alpha объединены высокоскоростной сетью Myrinet.

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

5. Вопросы для обсуждения.



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

«I (Акты, принятые в рамках договоров об учреждении ЕС/Евратома, публикация которых является обязательной) РЕГЛАМЕНТЫ Регламент Комиссии (ЕС) № 798/2008 от 8 августа 2008 излагающий список третьих стран, территорий, зон, компартментов, из которых можно импортировать домашнюю птицу и продукты из мяса домашней птицы в Сообщество, осуществляя их транзит через территорию Сообщества, а также требования к ветеринарным сертификатам (Текст имеет отношение к ЕЭЗ) КОМИССИЯ ЕВРОПЕЙСКИХ СООБЩЕСТВ, Учитывая...»

«Годовой отчёт клуба краеведов Старый Томск Ответственный за выпуск - председатель Клуба В.В.Манилов. Оформление и компьютерный набор- Е.В.Дворядкина. Корректор - Е.В.Дворядкина. На первой странице обложки: Ю.В.Флек. Вид города Томска, 60-ые годы X I X в. Литография. Лекционная работа Клуба, В 2003 году клуб Старый Томск традиционно проводил ежемесячные собрания каждый второй понедельник с перерывом на летние каникулы в июле и августе. Собрания проходили в здании Пушкинской библиотеки по адресу:...»

«И. Л. МИНИНЗОН ЗАПИСКИ НАТУРАЛИСТА НИЖНИЙ НОВГОРОД 2008 СОДЕРЖАНИЕ Случай на границе (вместо предисловия) Тайны Ботанического сада I. Заколдованное место Альпийская горка Трясина Исчезнувший браконьер Зверолов Мониторинг Лозоходцы Черный лес Смотритель оранжереи По весям Нижегородского края II. Веточка восковника Лес рубят. Убрать конкурента Голубок и голубка Деревенский Мастер На городских перекрестках III. Трагедия лесного озера Бермудский треугольник Зона отчуждения Чудо-дерево Зуб мудрости...»

«ББК 63.3(2) А 46 Вниманию оптовых покупателей! Книги различных жанров можно приобрести по адресу: 129348, Москва, ул. Красной сосны, 24, издательство Вече. Телефоны: (095) 188-88-02, 188-16-50, 182-40-74; т/факс: 188-89-59, 188-00-73. E-mail: veche@veche.ru http://www.veche.ru http://www.100top.ru С лучшими книгами издательства Вече можно познакомиться в Интернете на сайте www.100top.ru © Александров А.А., 2003. ISBN 5-94538-381-3 © ООО Издательство Вече 2000, 2003. ПЯТЬ ВОЕННЫХ ЛЕТ Эта книга...»

«Природный (автомобильный) маршрут  Natura Bella Dvina      Природный (автомобильный) маршрут Natura Bella Dvina Рецепт счастья предельно прост: будь ближе к природе и дыши с ней в унисон. В регионе Белла Двина это очень легко осуществить: путешественников ждут спокойные чистые реки и прозрачные озера, удивительные холмистые ландшафты – наследство отступившего давным-давно ледника, буйство животного и растительного мира в лесах, таинственные тропы на болотах. Протяженность маршрута около 800 км...»

«Попова Е.А, Киенко К.А. Семейство Лютиковые (Ranunculaceae) Семейство лютиковых включает около 50 родов и свыше 2000 видов, представленных преимущественно в умеренных и холодных областях земного шара. Они широко распространены по всем континентам, особенно в северной внетропической зоне. Наиболее богато родами и видами лютиковых Голарктическое царство. В его пределах только в Восточно-Азиатской флористической области сосредоточены две трети всех родов (36 родов, из которых 11 — только в этой...»

«1 Электронная тайга Югры 2009, № 1, 19 января Содержание: К 15-летию Ханты-Мансийской авиабазы охраны лесов от пожаров: пожароопасный сезон завершен – готовимся к следующему. Подготовка к тушению лесных пожаров – не в пожарном порядке! Материалы семинара в Ханты-Мансийске А.В.Костомаров. Сохранили при реорганизации в работоспособном состоянии основные звенья пожаротушения авиаотделения и ПХС П.Е.Мезенцев. Теперь о проблемах. И.П.Шевцов. Сегодня наша задача - авиационная и наземная охрана лесов...»

«010028 Настоящая заявка испрашивает приоритет по заявкам США 60/447690 от 19 февраля 2003, и 60/462684 от 15 апреля 2003, содержание которых полностью включено в настоящую заявку по ссылке. Область техники Настоящее изобретение относится к органическим соединениям железа (III), способам получения органических соединений железа (III) и к применению органических соединений железа (III) при лечении различных нарушений. Уровень техники В тексте настоящей заявки приведены ссылки на различные...»

«наше Время – плюС! стр. Сегодня В номере 12+ 10 рекламно-информационное издание добро из-под палки? Жизнь в позитиве Адрес приема рекламы и объявлений: ул. Ленина, 28 (гостиница), 2 этаж, офис 9, пн-чт с 11.00 до 18.00 Афиша двух Рекламный отдел: т. 8(913)-800-0471, 8(906)-947-4810, e-mail: nv.plus.reklama@mail.ru городов Редакция газеты: т. 77-44-07, 8-983-343-2569, e-mail: nv.plus@mail.ru № 14 (66) | 05.04. стр. 3, • фото недели • В потоке хаоса стр. ноВоСти коротко В эфире – управляющие...»

«Администрация Архангельской области Управление по делам архивов администрации Архангельской области Государственный архив Архангельской области Поморский государственный университет имени М. В. Ломоносова Межрегиональный Ломоносовский фонд Н.А. ШУМИЛОВ РОД ЛОМОНОСОВЫХ Поколенная роспись Издание переработанное и дополненное Архангельск 2001 УДК 001 (47 + 57) (092) + 929 Ломоносов + 929,5 ББК 72,3 + 63,214 Ш 96 Печатается по решению Научного совета Управления по делам архивов администрации...»

«Дорога в Эдем //АСТ, Москва, 2001 ISBN: 5-17-005234-0 FB2: Roland, 08 June 2008, version 1.0 UUID: 680b9548-86a2-102b-bf1a-9b9519be70f3 PDF: fb2pdf-j.20111230, 13.01.2012 Пэтти Коплэнд Дорога в Эдем Поселившийся в забытой Богом горной долине южного Висконсина скромный фермер и ветеринар Адам Вагнер привык считать своим уделом одиночество, но в один прекрасный день неожиданно для себя оказался благородным спасителем заблудившейся туристки. Да какой туристки – Евы Саттон, блистательной дочери...»

«Гражданский кодекс Российской Федерации (часть четвертая) от 18.12.2006 N 230-ФЗ (ред. от 23.07.2013) (с изм. и доп., вступающими в силу с 01.09.2013) Документ предоставлен КонсультантПлюс www.consultant.ru Дата сохранения: 19.09.2013 Гражданский кодекс Российской Федерации (часть четвертая) от 18.12.2006 N 230-ФЗ Документ предоставлен КонсультантПлюс Дата сохранения: 19.09.2013 (ред. от 23.07.2013) (с изм. и доп., вступающими в силу с 01.09.2013) 18 декабря 2006 года N 230-ФЗ ГРАЖДАНСКИЙ...»

«1 глава вгуст – самый тяжёлый, атмосферный месяц. Почти все человеческие глупости, важные счастливые и роковые встречи, шаманские пляски, все горькие расставания и разочарования – здесь, в августе, в нём, любимом. Уходящее лето бьет пинком под зад, смывая дождями все иллюзии, а наступающая осень напоминает о том, что с каждым прожитым летом ты становишься старше. Август, нескончаемый праздник переломных дат и мыслей. Такое красивое, созревшее лето. Тепло. Зеленый цвет темнеет, уже нет...»

«От редактора. Привет, читатель! Вот и пришло время выхода второго номера регулярного издания с картинками PROухо. Печатная версия первого выпуска (благо была выпущена в одном экземпляре) быстро разошлась. Электронная версия лихо пробежалась по сети, оставив лёгкий след в виртуальном пространстве. Завиртуалились, друзья! - Тебя где искать, в Фейсбуке или в Контакте? А что, живьём уже никак? Работаем в 1С, слушаем музыку на Трубе, выпиваем в какой-то дебильной игрушке, ходим на свидание в...»

«Министерство образования и науки Российской Федерации ЮЖНО-УРАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ УТВЕРЖДАЮ: Начальник УМУ И.В. Сидоров _2013 года ОТЧЕТ о работе отдела практики и трудоустройства студентов за 2012–2013 уч.г. Начальник ОПТС _ С.Б. Коваль Челябинск 2013 Содержание ВВЕДЕНИЕ 1. Итоги проведения практики студентов 2. Итоги работы комиссии по содействию трудоустройству выпускников 3. Портрет выпускника 2013 года 4. Мониторинг удовлетворенности работодателей качеством подготовки...»

«1 Александр Русалов ПУТЬ К ИСТИНЕ (Азы Сокровенных Знаний) КНИГА II Что посеешь – то и пожнёшь 2 Последние полтора месяца существенно изменили мой распорядок дня. Теперь вместо бездумного просмотра телепередач перед сном, особенно комментариев к фактам, то есть новостей, я углублял свои познания в наследии Предков. Собираясь на очередной просмотр и обсуждение сериала Сергея Стрижака Игры Богов, я просматривал свой конспект по трём сериям фильма Правильное образование, который я назвал...»

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

«s Eastern Europe Security Bulletin # 8 (сентябрь-октябрь 2006 г.) Издание о проблемах контроля над легким и стрелковым вооружением в России, СНГ и странах Восточной Европы В этом номере 2 МЕЖДУНАРОДНЫЕ ИНИЦИАТИВЫ 2 Комитет ООН проголосовал за начало разработки нового международного договора о контроле над экспортом оружия 3 Всемирный Совет Церквей приветствует решение ООН о подготовке договора по контролю над торговлей вооружениями 4 ИНИЦИАТИВЫ ПРАВИТЕЛЬСТВА РОССИИ И СТРАН СНГ Негуманное...»

«СЕВЕРО-ЗАПАД НОВОРИЖСКОЕ Ш., ПР-Т МАРШАЛА ЖУКОВА, ЗВЕНИГОРОДСКОЕ Ш., ВОЛОКОЛАМСКОЕ Ш. ЛАМСКОЕ ДВОЙНЫЕ MR7.RU 22 февраля 2013 г. СТАНДАРТЫ За разгон Болотной омоно новцам дают квартиры, а з фанатов — нет 4- за Близкие новости мегаполиса УРОК. 73-летняя Лина Ишкильдина на компьютерных курсах в досуговом центре Соколинка. На учебу ее отправили дети, а для мотивации подарили ноутбук. Фото Екатерины АКИМОВОЙ НЕ ОТСТАТЬ ОТ ВНУКОВ Где бабушек и дедушек научат пользоваться компьютером и выходить в...»

«ОРГАНИЗАЦИЯ CERD ОБЪЕДИНЕННЫХ НАЦИЙ МЕЖДУНАРОДНАЯ Distr. GENERAL КОНВЕНЦИЯ CERD/C/PAK/20 О ЛИКВИДАЦИИ 27 March 2008 ВСЕХ ФОРМ РАСОВОЙ ДИСКРИМИНАЦИИ RUSSIAN Original: ENGLISH КОМИТЕТ ПО ЛИКВИДАЦИИ РАСОВОЙ ДИСКРИМИНАЦИИ ДОКЛАДЫ, ПРЕДСТАВЛЯЕМЫЕ ГОСУДАРСТВАМИ-УЧАСТНИКАМИ В СООТВЕТСТВИИ СО СТАТЬЕЙ 9 КОНВЕНЦИИ Двадцатые периодические доклады государств-участников, подлежащие представлению в 2008 году Добавление Пакистан* ** [4 января 2008 года] Настоящий документ содержит представленные в виде одного...»





Загрузка...



 
© 2014 www.kniga.seluk.ru - «Бесплатная электронная библиотека - Книги, пособия, учебники, издания, публикации»

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