МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Суперкомпьютеры

    Однако скорость работы самого быстрого внешнего устройства, а по тем

    временам это магнитная лента, была в 1000 раз меньше скорости процессора,

    поэтому во время операций ввода/вывода процессор фактически простаивал. В

    1958г. к компьютеру IBM 704 присоединили 6 независимых процессоров

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

    основным процессором, а сам компьютер переименовали в IBM 709. Данная

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

    продано около 400 экземпляров, причем последний был выключен в 1975 году -

    20 лет существования!

    1961г. Создается компьютер IBM STRETCH, имеющий две принципиально

    важные особенности: опережающий просмотр вперед для выборки команд и

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

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

    1963г. В Манчестерском университете разработан компьютер ATLAS,

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

    разбито на 4 стадии: выборка команды, вычисление адреса операнда, выборка

    операнда и выполнение операции, позволившие уменьшить время выполнения

    команд в среднем с 6 мкс до 1,6 мкс. Справедливости ради надо отметить, что

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

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

    мультипрограммная операционная система, основанная на использовании

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

    1964г. Фирма Control Data Corporation (CDC) при непосредственном

    участии одного из ее основателей, Сеймура Р.Крэя (Seymour R.Cray) выпускает

    компьютер CDC-6600 - первый компьютер, в котором использовалось несколько

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

    приведем некоторые параметры компьютера: время такта 100нс,

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

    на 32 банка по 4096 60-ти разрядных слов, цикл памяти 1мкс, 10 независимых

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

    активно вытесняя машины фирмы IBM.

    1969г. CDC выпускает компьютер CDC-7600 с восемью независимыми

    конвейерными функциональными устройствами - сочетание параллельной и

    конвейерной обработки.

    В 1967 году были начаты работы над проектом ILLIAC IV, первым матричным

    процессором, объединяющим 256 синхронно работающих процессорных элементов.

    К концу 1971 года изготовлена система из 64-х процессоров, в 1974г. она

    введена в эксплуатацию, однако доводка шла до 1975 года. Несмотря на то,

    что построили в 4 раза меньше задуманного, да и то лишь в одном экземпляре,

    а денег в результате затратили в 4 раза больше, данный проект оказал

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

    как PEPE, BSP, ICL DAP и ряда других.

    В 1972 году С.Крэй покидает CDC и основывает свою компанию Cray

    Research, которая в 1976г. выпускает первый векторно-конвейерный компьютер

    CRAY-1: время такта 12.5нс, 12 конвейерных функциональных устройств,

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

    память до 1Мслова (слово - 64 разряда), цикл памяти 50нс. Главным

    новшеством является введение векторных команд, работающих с целыми

    массивами независимых данных и позволяющих эффективно использовать

    конвейерные функциональные устройства.

    На этом означенный экскурс в историю можно смело закончить, поскольку

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

    очевидна.

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

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

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

    сообщению Electronic Frontier Foundation, Джон Гилмор (John Gilmore) и Поль

    Кочер (Paul Kocher) смогли взломать 56-битный код, используемый банками и

    некоторыми военными организациями США, с помощью собранной в домашних

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

    Раскрытый алгоритм шифрования, известный как DES (Data Encryption

    Standard), использует 56-битные ключи, и это при том, что сейчас в реальных

    ситуациях во многих случаях используются лишь 40-битные. До настоящего

    момента правительственные органы США утверждали, что ни террористы, ни

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

    взламывающий DES.

    Вся работа по расшифровке была проделана за 56 часов на компьютере,

    состоящем из более чем 1000 процессоров: 27 плат по 64 процессора в каждой.

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

    всем процессом. Гилмор назвал свою систему Deep Crack - мягкий намек на

    шахматный компьютер Deep Blue от IBM. Вечером 17 июля этого года после

    проверки 17,902,806,669,197,312 ключей компьютер определил, что

    зашифрованным предложением было: "It's time for those 128-, 192-, and 256-

    bit keys."

    А что же сейчас используют в мире?

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

    вычислительной техники в настоящее время? Таких направлений четыре.

    1. Векторно-конвейерные компьютеры. Особенностью таких машин являются,

    во-первых, конвейерные функциональные устройства и, во-вторых, набор

    векторных инструкций в системе команд. В отличие от традиционного подхода,

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

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

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

    компании Cray Research.

    2. Массивно-параллельные компьютеры с распределенной памятью. Идея

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

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

    посредством некоторой коммуникационной среды, например, сетью - вот и все.

    Достоинств у такой архитектуры масса: если нужна высокая

    производительность, то можно добавить еще процессоров, а если ограничены

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

    подобрать оптимальную конфигурацию.

    Однако есть и решающий "минус", сводящий многие "плюсы" на нет. Дело в

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

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

    процессорами. Именно поэтому написать эффективную программу для таких

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

    невозможно. К данному классу можно отнести компьютеры Intel Paragon, IBM

    SP1, Parsytec, в какой-то степени IBM SP2 и CRAY T3D/T3E, хотя в этих

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

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

    дешевую альтернативу крайне дорогим суперкомпьютерам.

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

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

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

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

    нельзя сделать большим. В данное направление входят многие современные

    многопроцессорные SMP-компьютеры, например, сервер HP T600 или Sun Ultra

    Enterprise 5000.

    4. Кластеры. Последнее направление, строго говоря, не является

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

    нескольких процессоров, традиционных или векторно-конвейерных, и общей для

    них памяти сформируем вычислительный узел. Если вычислительной мощности

    полученного узла не достаточно, то объединим несколько узлов

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

    такому принципу построены CRAY SV1, HP Exemplar, Sun StarFire, NEC SX-5,

    последние модели IBM SP2 и другие. Именно это направление является наиболее

    перспективным в настоящее время.

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

    мощных вычислительных установок мира (Top500). Последняя редакция списка

    вышла в ноябре этого года, согласно которой первое место занимает компьютер

    Earth-Simulator, а на второй позиции стоит компьютер ASCI Q - AlphaServer

    от Hewlett-Packard, объединяющий 8192 процессора Sc45.

    Если где-то прибудет, то где-то обязательно уменьшится

    К сожалению, чудеса в жизни редко случаются. Гигантская

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

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

    У вас есть программа и доступ, скажем, к 256-процессорному компьютеру. Что

    вы ожидаете? Да ясно что: вы вполне законно ожидаете, что программа будет

    выполняться в 256 раз быстрее, чем на одном процессоре. А вот как раз

    этого, скорее всего, и не будет.

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

    выполнять последовательно, равна f, где 0<=f<=1 (при этом доля понимается

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

    выполнения). Крайние случаи в значениях f соответствуют полностью

    параллельным (f=0) и полностью последовательным (f=1) программам. Так вот,

    для того, чтобы оценить, какое ускорение S может быть получено на

    компьютере из p процессоров при данном значении f, можно воспользоваться

    законом Амдала:

    Если вдуматься как следует, то закон, на самом деле, страшный.

    Предположим, что в вашей программе лишь 10% последовательных операций, т.е.

    f=0.1 . Что утверждает закон? А он говорит о том, что сколько бы вы

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

    раз никак не получите... да и то 10 - это теоретическая верхняя оценка

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

    :((

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

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

    является таковым) надо основательно подумать: "А не будет ли потом

    мучительно больно за увиденный результат и стоит ли овчинка выделки?".

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

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

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

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

    сложно. Допустим, что в программе есть следующий фрагмент для вычисления

    суммы n чисел:

    s = 0

    Do i = 1, n

    s = s + a(i)

    EndDo

    По своей природе он строго последователен, так как на i-й итерации

    цикла требуется результат с (i-1)-й и все итерации выполняются одна за

    одной. Имеем 100% последовательных операций, а значит и никакого эффекта от

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

    Поскольку в большинстве реальных случаев нет существенной разницы, в каком

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

    пар соседних элементов: a(1)+a(2), a(3)+a(4), a(5)+a(6) и т.д. Заметим, что

    при такой схеме все пары можно складывать одновременно! На следующих шагах

    будем действовать абсолютно аналогично, получив вариант параллельного

    алгоритма.

    Казалось бы в данном случае все проблемы удалось разрешить. Но

    представьте, что доступные вам процессоры разнородны по своей

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

    трудится, а кто-то уже все сделал и бесполезно простаивает в ожидании. Если

    разброс в производительности компьютеров большой, то и эффективность всей

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

    Но пойдем дальше и предположим, что все процессоры одинаковы. Проблемы

    кончились? Опять нет! Процессоры выполнили свою работу, но результат-то

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

    передачу уходит время... и в это время процессоры опять простаивают...

    Словом, заставить параллельную вычислительную систему или супер-ЭВМ

    работать с максимальной эффективностью на конкретной программе - это, прямо

    скажем, задача не из простых. Да что там 'заставить работать', иногда даже

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

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

    задачу. Ответ противоположный ожидаемому. Действительно, это не верно, что

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

    1м*1м*1м за 1 час, то два таких же землекопа это сделают за 30 мин - в это

    можно поверить. А за сколько времени эту работу сделают 60 землекопов?

    Неужели за 1 минуту? Конечно же нет! Начиная с некоторого момента они будут

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

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

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

    т.п., чем непосредственно полезной работой.

    Вообще замечено, что эмоциональное состояние человека, впервые

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

    испытывает что-то вроде эйфории, начитавшись рекламных данных о компьютере

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

    проблем. После первого запуска возникает недоумение и подозрение, что что-

    то он сделал не так - больно уж реально достигнутая производительность

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

    если и меняется в лучшую сторону, то очень слабо. Он идет к местному

    компьютерному гуру, и тут-то его поджидает настоящий удар. Оказывается,

    что, во-первых, полученные им 5% от максимальной производительности

    компьютера это еще не самый худший вариант. Во-вторых, если он хочет

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

    начинается. Во многих случаях это сделать можно, а как - это искусство.

    Приложение

    Первые 25 суперкомпьютеров из списка Top500 (ноябрь 2003):

    |Класс |Многопроцессорная векторная система (несколько |

    |архитектуры |векторных процессоров работают на общей памяти). |

    |Предшественники |CRAY Y-MP C90, CRAY X-MP. |

    |Модели |Серия T90 включает модели T94, T916 и T932. |

    |Процессор |Системы серии T90 базируются на векторно-конвейерном |

    | |процессоре Cray Research с пиковой производительностью |

    | |2GFlop/s. |

    |Число |Система T932 может включать до 32 векторных процессоров|

    |процессоров |(до 4-х в модели T94, до 16 модели T916), обеспечивая |

    | |пиковую производительность более 60GFlop/s. |

    |Масштабируемость|Возможно объединение нескольких T90 в MPP-системы. |

    |Память |Система T932 содержит от 1GB до 8GB (до 1 GB в модели |

    | |T94 и до 4GB в модели T916) оперативной памяти и |

    | |обеспечивает скорость обменов с памятью до 800MB/sec. |

    |Системное ПО |Используется операционная система UNICOS. |

    IBM RS/6000 SP

    |Производитель |International Business Machines (IBM), подразделение |

    | |RS/6000. |

    |Класс |Масштабируемая массивно-параллельная вычислительная |

    |архитектуры |система (MPP). |

    |Узлы |Узлы имеют архитектуру рабочих станций RS/6000. |

    | |Существуют несколько типов SP-узлов, которые |

    | |комплектуются различными процессорами: PowerPC |

    | |604e/332MHz, POWER3/200 и 222 MHz (более ранние системы|

    | |комплектовались процессорами POWER2). High-узлы на базе|

    | |POWER3 включают до 8 процессоров и до 16 GB памяти. |

    |Масштабируемость|До 512 узлов. Возможно совмещение узлов различых типов.|

    | |Узлы устанавливаются в стойки (до 16 узлов в каждой). |

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

    | |коммутатором (IBM high-performance switch), который |

    | |имеет многостадийную структуру и работает с коммутацией|

    | |пакетов. |

    |Cистемное ПО |OC AIX (устанавливается на каждом узле), система |

    | |пакетной обработки LoadLeveler, параллельная файловая |

    | |система GPFS, параллельная СУБД INFORMIX-OnLine XPS. |

    | |Параллельные приложения исполняются под управлением |

    | |Parallel Operating Environment (POE). |

    |Средства |Оптимизированная реализация интерфейса MPI, библиотеки |

    |программирования|параллельных математических подпрограмм - ESSL, OSL. |

    Cray T3E

    |Производитель |Cray Inc. |

    |Класс |Масштабируемая массивно-параллельная система, состоит из |

    |архитектуры |процессорных элементов (PE). |

    |Предшественники|Cray T3D |

    |Модификации |T3E-900, T3E-1200, T3E-1350 |

    |Процессорный |PE состоит из процессора, блока памяти и устройства |

    |элемент |сопряжения с сетью. Используются процессоры Alpha 21164 |

    | |(EV5) с тактовой частотой 450 MHz (T3E-900), 600 MHz |

    | |(T3E-1200), 675 MHz (T3E-1350) пиковая производительность|

    | |которых составляет 900, 1200, 1350 MFLOP/sec |

    | |соответственно. Процессорный элемент располагает своей |

    | |локальной памятью (DRAM) объемом от 256MB до 2GB. |

    |Число |Системы T3E масштабируются до 2048 PE. |

    |процессоров | |

    |Коммутатор |Процессорные элементы связаны высокопроизводительной |

    | |сетью GigaRing с топологией трехмерного тора и |

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

    | |достигает 500MB/sec в каждом направлении. |

    |Системное ПО |Используется операционная система UNICOS/mk. |

    |Средства |Поддерживается явное параллельное программирование c |

    |программировани|помощью пакета Message Passing Toolkit (MPT) - реализации|

    |я |интерфейсов передачи сообщений MPI, MPI-2 и PVM, |

    | |библиотека Shmem. Для Фортран-программ возможно также |

    | |неявное распараллеливание в моделях CRAFT и HPF. Среда |

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

    | |анализа и отладки параллельных программ. |

    Список использованной литературы:

    1. Материалы сайта http://www.parallel.ru

    2. Материалы сайта http://www.top500.org

    3. Материалы сайта http://www.osp.ru/archive/56.htm

    4. Материалы сайта http://www.netlib.org/linpack/

    Страницы: 1, 2


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.