Parallel Braings - Параллельные Мозги - Семинар 1

Семинары по параллельному программированию

Рыбинск, РГАТА 2007

Список семинаров Форум Ссылки

Семинар 1 - Вводный семинар. Многоядерные процессоры
Проведен 29 сентября

Краткое содержание:

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

  2. Задачи параллельного программирования
    Среди задач параллельного программирования можно выделить следующие две группы задач:

    Параметр \ Задача Большая задача Задача реального времени
    Объем данныхТерабайты\ПетабайтыТерабайты\Петабайты
    Тип данныхСтатичные данныеДинамические потоки данных
    Реальное времяНетДа
    НадежностьПроизвольнаКритична
    Число одновременно решаемых задачДесятки крупных задачМножество («мелкозернистых») задач
    Режим работыПакетный (Offline)Непрерывный (Online)
    Взаимодействие с внешней средойПочти отсутствуетИнтенсивное
    Требования к производительностиПиковая производительность для данной задачиПиковая пропускная способность
    ПримерыHPC:задачи гидро- и аэродинамики, моделирование климата, моделирование в области астрономии или ядерной физики DSP, Embedded, телеком:задачи распознавания, планирования, задачи массового обслуживания, диагностики и контроля, задачи управления

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

  4. FLOPS и сравнительная табличка
    Про FLOPS читать тут. Интересно посмотреть на сравнение "флопсовой производительности" систем (по убывающей, Tera = 10^12):
  5. Распределенные GRID системы. SETI@home
  6. Суперкомпьютеры. Blue Gene/L
  7. Консоли. Sony PlayStation 3 (на базе процессоров Cell)
  8. Одноядерные процессоры. Intel PIII 1ГГц
  9. КПК. КПК 400 МГц
  10. 799 Teraflops
    280,6 Teraflops
    2 Teraflops
    320 Megaflops
    1.3 Megaflops

  11. Закон Мура. Как маркетологи извратили Закон Гордона Мура.
    Читать тут.

  12. Фильм - Исследовательский проект Intel по разработке Терафлопсного многоядерного процессора
    Пересказывать фильм надобности не вижу. Оригинал и озвученный мной перевод будут доступны на сервере кафедры.

  13. Flash-презентация - Многоядерный процессор вызов будущему (Eng)
    Flash-презентация (600kb, требует установленного Flash Player).

  14. Проблемы многоядерных процессоров
    Очевидно, что многоядерные процессоры - это то с чем всем нам придется работать в ближайщие 5-10 лет, причем как дома, так и на работе. Наряду с очевидной проблемой программирования таких процессоров (а в частности этой проблеме посвящен весь курс и семинары), существуют и другие более "низкоуровневые" проблемы. Одной из таких проблем является задержка (latency). Подробное объяснение что такое задержка и чем она отличается от пропускной способности можно найти здесь.

    Следующая таблица демонстрирует сложность решения проблемы сокращения задержки обращения к памяти:

    Характеристика1980СегодняПрирост по сравнению с 1980
    Частота (MHz)63000+500x
    Объем памяти (RAM, MB)22000+1000x
    Пропускная способность памяти (MB/s)137000 (read)
    2000 (write)
    +540x
    +150x
    Задержка памяти (ns)225~70+3x
    Задержка памяти (циклы процессора) 1.4 210-150x

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

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

    1. Каким образом в консолях удалось достичь терафлопсной производительности (процессоры Cell (см. выше)).
    2. Каким образом в многоядерных процессорах удается контролировать температуру и состояние каждого ядра (см. презентацию выше)
    3. Квантовые компьютеры - конкуренты многоядерых процессоров...?

  16. Дополнительные статьи и литература:
    Данные статьи и заметки помогут, на мой взгляд, побыстрей "въехать" в тему прикладного параллельного программирования Также обратите внимание на раздел ссылки данного сайта.
    1. Столпы параллелизма Herb Sutter DDJ 2007
    2. Проблемы с потоками Эдвард А. Ли 2006
    3. Google+Параллелизм: экспансия продолжается
    4. Параллельное программирование. Что делать?
    5. Лед тронулся…?
Сайт создан в системе uCoz