uzluga.ru
добавить свой файл
  1 ... 10 11 12 13 14

Принцип организации параллелизма…

  • Принцип организации параллелизма…

  • При выполнении обычного кода (вне параллельных областей) программа выполняется одним потоком (master thread)

  • При появлении директивы #parallel происходит создание “команды“ (team) потоков для параллельного выполнения вычислений

  • После выхода из области действия директивы #parallel происходит синхронизация, все потоки, кроме master, уничтожаются

  • Продолжается последовательное выполнение кода (до очередного появления директивы #parallel)



Положительные стороны:

  • Положительные стороны:

  • Поэтапное (инкрементальное) распараллеливание

  • Единственность разрабатываемого кода

    • Нет необходимости поддерживать последовательный и параллельный вариант программы, поскольку директивы игнорируются обычными компиляторами (в общем случае)
  • Эффективность

    • Учет и использование возможностей систем с общей памятью
  • Стандартизованность (переносимость), поддержка в наиболее распространенных языках (C, Fortran) и платформах (Windows, Unix)



Пример – Сумма элементов вектора:

  • Пример – Сумма элементов вектора:

  • #include

  • #define NMAX 1000

  • main () {

  • int i, sum;

  • float a[NMAX];

  • <инициализация данных>

  • #pragma omp parallel for shared(a) private(i,j,sum)

  • {

  • sum = 0;

  • for (i=0; i

  • sum += a[i];

  • printf ("Сумма элементов вектора равна %f\n«,sum);

  • } /* Завершение параллельного фрагмента */

  • }



Дополнительная информация:

  • Дополнительная информация:

  • В. П. Гергель. Высокопроизводительные вычисления для многоядерных многопроцессорных систем. – (в печати)

  • А.С.Антонов. Параллельное программирование с использованием технологии OpenMP: Учебное пособие. - М.: Изд-во МГУ, 2009. - 77 с.

  • Chandra, R., Dagum, L., Kohr, D., Maydan, D., McDonald, J., and Melon, R.. Parallel Programming in OpenMP. San-Francisco, CA: Morgan Kaufmann Publishers., 2000



Программа HPCS: High Productivity Computing Systems (DARPA)

  • Программа HPCS: High Productivity Computing Systems (DARPA)

  • Цель: Повышение продуктивности в 10 раз к 2010 (Продуктивность=Производительность+Программируемость+Переносимость+Надежность)

  • Phase II: Cray, IBM, Sun (July 2003 – June 2006)

    • Анализ существующих архитектур
    • Три новых языка программирования (Chapel, X10, Fortress)
  • Phase III: Cray, IBM (July 2006 – 2010)

    • Реализация
    • Работа продолжена для всех предложенных языков


Общая характеристика языков программы HPCS:…


<< предыдущая страница   следующая страница >>