Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »Остальные рефераты

Что такое OpenMP?

Тип: реферат
Категория: Остальные рефераты
Скачать
Купить
http://parallel.ru/tech/tech_dev/openmp.html © Лаборатория Параллельных Информационных Технологий, НИВЦ МГУНиже приводится материал, полностью содержащийся на данной ссылкеЧто такое OpenMP?Содержание документа1. Введение. Основные идеи, причина возникновения, модель программирования. Для чего создан новый интерфейс? Кто разрабатывает? Что входит в стандарт? Сравнение с MPI и другими средствами. POSIX threads и основные понятия, связанные с нитями. Механизм работы - директивы (спецкомментарии), инкрементальное распараллеливание. Пример - параллельное вычисление числа Пи. Примечание. В разделах 2-4 не ставится целью точно определить синтаксис OpenMP, но дается общее представление о назначении и функциональности директив и процедур OpenMP. За точным определение синтаксиса, обращайтесь, пожалуйста к спецификациям. 2. Основные конструкции (директивы). PARALLEL - порождение нитей. DO/SECTIONS - распределение работы; распределение итераций в циклах. Средства синхронизации. 3. Классы переменных (PRIVATE,SHARED,REDUCTION, etc.) 4. Run-time-поддержка. Процедуры, переменные среды,. 5. Привязки к C/C++. 6. Поддержка производителями и разработчиками. Реализации. Компиляторы и препроцессоры. Приложения. Будущее развитие, место среди средств параллельного программирования. Конференции. 7. Справочная информация. Документы для загрузки. Ссылки. 1. ВведениеЧто такое OpenMP? Интерфейс OpenMP задуман как стандарт для программирования на масштабируемых SMP-системах (SSMP,ccNUMA, etc.) в модели общей памяти (shared memory model). В стандарт OpenMP входят спецификации набора директив компилятора, процедур и переменных среды. Примерами систем с общей памятью, масштабируемых до большого числа процессоров, могут служить суперкомпьютеры Cray Origin2000 (до 128 процессоров), HP 9000 V-class (до 32 процессоров в одном узле, а в конфигурации из 4 узлов - до 128 процессоров), Sun Starfire (до 64 процессоров). Кто разрабатывает стандарт? Разработкой стандарта занимается организация OpenMP ARB (ARchitecture Board), в которую вошли представители крупнейших компаний - разработчиков SMP-архитектур и программного обеспечения. Спецификации для языков Fortran и C/C++ появились соответственно в октябре 1997 года и октябре 1998 года. Открыт список рассылки для публичного обсуждения OpenMP (omp@openmp.org). Где найти информацию? Основной источник информации - сервер www.openmp.org. На сервере доступны спецификации, статьи, учебные материалы, ссылки. Зачем нужен новый стандарт? До появления OpenMP не было подходящего стандарта для эффективного программирования на SMP-системах. Наиболее гибким, переносимым и общепринятым интерфейсом параллельного программирования является MPI (интерфейс передачи сообщений). Однако модель передачи сообщений 1) недостаточно эффективна на SMP-системах; 2) относительно сложна в освоении, так как требует мышления в "невычислительных" терминах. Проект стандарта X3H5 провалился, так как был предложен во время всеобщего интереса к MPP-системам, а также из-за того, что в нем поддерживается только параллелизм на уровне циклов. OpenMP развивает многие идеи X3H5. POSIX-интерфейс для организации нитей (Pthreads) поддерживается широко (практически на всех UNIX-системах), однако по многим причинам не подходит для практического параллельного программирования:
  • нет поддержки Fortran-а,
  • слишком низкий уровень,
  • нет поддержки параллелизма по данным,
  • механизм нитей изначально разрабатывался не для целей организации параллелизма.
  • OpenMP можно рассматривать как высокоуровневую надстройку над Pthreads (или аналогичными библиотеками нитей). Многие поставщики SMP-архитектур (Sun,HP,SGI) в своих компиляторах поддерживают спецдирективы для распараллеливания циклов. Однако эти наборы директив, как правило, 1) весьма ограничены; 2) несовместимы между собой; в результате чего разработчикам приходится распараллеливать приложение отдельно для каждой платформы. OpenMP является во многом обобщением и расширением упомянутых наборов директив. Какие преимущества OpenMP дает разработчику? 1. За счет идеи "инкрементального распараллеливания" OpenMP идеально подходит для разработчиков, желающих быстро распараллелить свои вычислительные программы с большими параллельными циклами. Разработчик не создает новую параллельную программу, а просто последовательно добавляет в текст последовательной программы OpenMP-директивы. 2. При этом, OpenMP - достаточно гибкий механизм, предоставляющий разработчику большие возможности контроля над поведением параллельного приложения. 3. Предполагается, что OpenMP-программа на однопроцессорной платформе может быть использована в качестве последовательной программы, т.е. нет необходимости поддерживать последовательную и параллельную версии. Директивы OpenMP просто игнорируются последовательным компилятором, а для вызова процедур OpenMP могут быть подставлены заглушки (stubs), текст которых приведен в спецификациях. 4. Одним из достоинств OpenMP его разработчики считают поддержку так называемых "orphan" (оторванных) директив, то есть директивы синхронизации и распределения работы могут не входить непосредственно в лексический контекст параллельной области. Как это работает? Согласно терминологии POSIX threads, любой UNIX-процесс состоит несколько нитей управления, которые имеют общее адресное пространство, но разные потоки команд и раздельные стэки. В простейшем случае, процесс состоит из одной нити. Нити иногда называют также потоками, легковесными процессами, LWP (light-weight pr...
    Другие файлы:

    Аналітичний огляд технології проектування паралельних застосувань: Open MP
    Технологія OpenMP як найпопулярніший засіб програмування комп'ютерів із загальною пам'яттю. Типи конструкцій OpenMP: функції виконуючого середовища Op...

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

    Динамический контроль корректности OpenMP-программ
    Разработка и реализация алгоритма динамического контроля корректности использования директив OpenMP в программах, написанных на языке Fortran. Минимиз...

    Сравнительная отладка OpenMP программ
    Модели параллельного программирования; отладка параллельных программ. Реализация экспериментальной версии системы сравнительной отладки Fortran-OpenMP...

    Система автоматизации распараллеливания. Отображение на SMP-кластер
    Разработка блока распараллеливания последовательной программы с языка Fortran на язык Fortran-DVM/OpenMP. Реализация блока DVM/OpenMP-эксперт на основ...