The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Проект HPC выпустил распараллеливающий компилятор Par4All 1.4

31.05.2012 13:42

Проект HPC представил новую версию (1.4) своей открытой платформы для паралеллизации вычислений и обеспечения исполнения кода для гетерогенных сред - Par4All, в которой расширены средства обработки и генерации кода CUDA и OpenCL. Кроме того, в новой версии завершен анализ зависимостей, возникающих при доступе к глобальным переменным, что позволило улучшить в Par4All поддержку распараллеливания процессов.

В рамках проекта Par4All развивается автоматизированный оптимизирующий и распараллеливающий компилятор для традиционных "последовательных" программ, написанных на языках C и Fortran. На базе оригинального исходного кода приложения Par4All создаёт вариант кода с задействованием техник распараллеливания, а также c использованием CUDA и OpenCL для выноса вычислительных задач на плечи GPU. Главная цель такой кросс-компиляции исходных текстов в том, чтобы достичь на специфическом многоядерном (многопроцессорном) оборудовании максимальной (пиковой) производительности, при этом, никак не переписывая изначальную программу, а получая на выходе уже оптимизированный и адаптированный под её параллельное исполнение код.

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

Главная цель Par4all – способствовать миграции, а также оптимизации обычного программного обеспечения на современные многоядерные процессоры, а также на специализированные высокопроизводительные системы (кластеры) из параллельно и совместно работающих процессоров. Проект HPC основан в декабре 2007 года и базируется на материалах 20-летнего академического исследования государственной американской исследовательской программы "InterProcedural Parallelisation of scientific programs".

Среди главных преимуществ подхода, реализованного в Par4all:

  • Оригинальный исходный код программы никак не модифицируется;
  • Генерируется максимально оптимизируемый код для широкого набора вариантов процессорного оборудования;
  • Предусмотрена возможность и средства для ручной оптимизации исходного кода для нестандартных случаев.
  • Сгенерированные новые исходные тексты далее могут быть обработаны (скомпилированы) с использованием стандартных компиляторов, таких как:
    • Обычные компиляторы с набором требуемых оптимизирующих настроек для конкретного процессора или платформы;
    • Компилятор конкретного вендора для встраиваемых систем;
    • Для CUDA (поддержка только Cи);
    • Для OpenCL (поддержка только Cи);
    • Для OpenMP;
    • Возможно связыванием с MPI и другими библиотеками.

В ближайших планах проекта реализация поддержки кросс-компиляции для Java- и Python-программ, а также обеспечение интеграции и поддержки популярной среды разработки Eclipse. Также идет работа над существенно улучшенной поддержкой CUDA.

  1. Главная ссылка к новости (http://hpc-project.com/2012/05...)
  2. OpenNews: В рамках проекта Gdev подготовлена открытая реализация фреймворка CUDA
  3. OpenNews: NVIDIA передала CUDA Compiler в руки сообщества LLVM
  4. OpenNews: Релиз StarPU 1.0.0, дополнения к GCC для создания гибридных программ, использующих CPU и GPU
  5. OpenNews: Увидела свет спецификация OpenCL 1.2
  6. OpenNews: Выпущен первый релиз платформы Fabric Engine
Автор новости: Igor Savchuk
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/33974-hpc
Ключевые слова: hpc, cuda, par4all
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (35) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, eugenyn (ok), 14:54, 31/05/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Очень интересно.

    > Возможно связыванием с MPI и другими библиотеками.
    > В ближайших планах проекта ... обеспечение интеграции и поддержки популярной среды разработки Eclipse.

    А кто-нибудь знает, есть ли сейчас поддержка в Eclipse для "MPI и других библиотек"?

    Что-то на этот счет есть в Sun-овской IDE (Oracle-ская теперь, NetBeans-based которая).

    А вот для Eclipse что-то не доводилось видеть...

     
     
  • 2.4, an. (?), 15:48, 31/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > А кто-нибудь знает, есть ли сейчас поддержка в Eclipse для "MPI и других библиотек"?

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

     
     
  • 3.6, eugenyn (ok), 17:07, 31/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Какая поддержка? Подсветка синтаксиса, автоподстановка параметров с возможностью выбора из списка допустимых для конкретной языковой конструкции библиотеки, проверка корректности кода, хотфиксы, профилировщик, мастер добавления поддержки библиотеки в конкретный Eclipse-проект (такие мастера дают дополнительные фичи - например после отработки работы такого мастера - появляются новые контекстные меню в Eclipse, добавляются кнопки быстрого доступа на панели задач, добавляется нужная структура каталогов к имеющимся в проекте, все это автоматически включается в пути для компиляции и для дебагинга), ну и еще десятки возможностей - всякие снипеты, интеграции с _независимо_ реализованными в Eclipse системами логгирования, тестирования, деплойта (они уже есть, разработаны другими программистами). Например для технологии JSF (технология относится к Java, является, утрированно говоря, внешней библиотекой к языку Java) - все это реализовано и в Eclipse, и в NetBeans. Я могу сказать, что в одном проекте с использованием библиотеки JSF - при каждом клике пользователя на веб-странице - происходило от 1500 до 3000 вызовов "строчек кода" только в нашем проекте (плюс десятки тысяч строчек кода в стандартных библиотеках J2EE) - такие вещи отлаживать простым текстовым редактором можно, но трудоемкость разработки возрастет в разы. В новости, кстати, Java упоминается. Но если про именно С и многопоточность, то я смотрел некоторые тренинги от разработчиков Sun, где они показывали - как пользоваться профилировщиком в их среде разработки (NetBeans-based), для конкретно таких библиотек многопоточного программирования.

    Что именно должно быть поддержано? Библиотеки MPI (http://ru.wikipedia.org/wiki/Message_Passing_Interface), OpenMP (http://ru.wikipedia.org/wiki/OpenMP) - как минимум.

     
     
  • 4.10, Eugeni Dodonov (ok), 18:39, 31/05/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    http://www.eclipse.org/ptp/ ?
     
     
  • 5.13, eugenyn (ok), 21:23, 31/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Большое спасибо, посмотрю что и как там...
     
  • 4.12, an. (?), 19:15, 31/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну по поводу OpenMP - согласен, требуется отдельная поддержка, т.к. вводятся новые конструкции в язык (через прагмы, насколько я помню). И насколько я знаю, такой поддержки там нет.

    А по поводу MPI - это такая же библиотека, как и все остальные. Не понимаю, почему для нее должна быть какая-то специальная поддержка. Вам же не нужна специальная поддержка для, например, Boost или Qt?

     
     
  • 5.21, pavlinux (ok), 01:41, 01/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кнопочку он хочет волшебную - [РАСПАРАЛЛЕЛИТЬ ВСЁ]

    Выделяешь цикл:



    for (i=0; i < ROW; i++)
       for (i=0; i < COL; i++)
              A[i][j] *= B[j][i], B[i][j] += A[i][i];


    а оно должно за тебя подумать, и выдать



    omp_lock_t ArrayLock;
    omp_init_lock(&ArrayLock);

    #pragma omp parallel num_threads(8);
    {
      #pragma omp for
      for (i=0; i < ROW; i++)
         #pragma omp for
          for (j=0; j < COL; j++)
              A[i][j] *= B[j][i];
              omp_set_lock(&ArrayLock);
              B[i][j] += A[i][i]
             omp_unset_lock(&ArrayLock);
    }


    Я тоже хочу такую кнопку...
    Правда загадка, как она допрёт, что мне надо 8 потоков,
    а секция B[i][j] += A[i][i] - критическая, нипанятна.  :)

     

  • 1.5, Аноним (-), 17:06, 31/05/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    что-то падучий он слишком

    ни один мой тест не смог прожевать на openmp
    дальше не пробовал

     
     
  • 2.27, как4екумек (?), 21:11, 01/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >ни один мой тест не смог прожевать на openmp

    It is important to write programs that are compliant with the current state of Par4All and pips and that maximize the precision of analyses and thus help the tool in generating efficient code. To get more information on Par4All coding rules please refer to http://download.par4all.org/doc/p4a_coding_rules.

     

  • 1.7, Аноним (-), 17:11, 31/05/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Проект амбициозный с огромным потенциалом. + На выходе получаем исходник, который можно проанализировать и доработать.
     
  • 1.9, Аноним (-), 18:23, 31/05/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Проект HPC основан в декабре 2007 года и базируется на материалах 20-летнего академического исследования государственной американской исследовательской программы "InterProcedural Parallelisation of scientific programs".

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

     
     
  • 2.11, Eugeni Dodonov (ok), 18:47, 31/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Которое в очередной раз показывает что математически доказать корректность параллельно выполняющейся программы — невозможно.

    За полиноминалиное время - да, невозможно (http://en.wikipedia.org/wiki/Multiprocessor_scheduling).

     
     
  • 3.15, Mna (??), 00:56, 01/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А какая связь между Multiprocessor *scheduling* ("Given a set J of jobs where job ji has length li and a number of processors mi, what is the minimum possible time required to schedule all jobs in J on m processors such that none overlap?")
    и доказательством правильности выполнения параллельной программы? частный случай даже: "многопоточной" программы
     
     
  • 4.18, Eugeni Dodonov (ok), 01:23, 01/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > А какая связь между Multiprocessor *scheduling* ("Given a set J of jobs
    > where job ji has length li and a number of processors
    > mi, what is the minimum possible time required to schedule all
    > jobs in J on m processors such that none overlap?")
    > и доказательством правильности выполнения параллельной программы? частный случай даже:
    > "многопоточной" программы

    Ммм чтобы проверить правильность выполнения программы ее надо выполнить, либо формально проверить. Формальная верификация - это np-complete (http://dl.acm.org/citation.cfm?id=2150582, хотя кроме этой публикации еще должны быть, но я их особо не искал), а эффективное параллельное выполнение - это тоже NP-hard. Так что проверить, конечно, возможно, но не за полиноминальное время.

    Ну и в общем, программу можно привести к виду булевых формул, что тоже np-complete (http://en.wikipedia.org/wiki/Boolean_satisfiability).

    Хотя, возможно, что-то упустил, тогда признаю что не прав.

     
     
  • 5.23, pavlinux (ok), 01:53, 01/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > это тоже NP-hard.

    NP-hard вроде имеет сложность O(N²), но где-то на просторах сети,
    шастал математик из МГУ, который клялся, что задачу об оптимальной
    упаковке свёл к логарифмической.

     
  • 2.14, Аноним (-), 23:38, 31/05/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >математически доказать корректность параллельно выполняющейся программы — невозможно.

    Можно немного подробнее?

     
  • 2.16, gregethtr (?), 00:57, 01/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Которое в очередной раз показывает что математически доказать корректность параллельно  выполняющейся программы — невозможно. И в итоге получается что берётся последовательный  код и делается из него неопределённо—как—работающий.

    А где я могу скачать математический доказыватель для моего последовательного кoда?


     
  • 2.17, Mna (??), 01:00, 01/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> Проект HPC основан в декабре 2007 года и базируется на материалах 20-летнего академического исследования государственной американской исследовательской программы "InterProcedural Parallelisation of scientific programs".
    > Которое в очередной раз показывает что математически доказать корректность параллельно
    > выполняющейся программы — невозможно.

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

    > И в итоге получается что берётся последовательный
    > код и делается из него неопределённо—как—работающий.

    да, хорошо, если из неопределенно-как работающего получается такой же, неопределённо—как—работающий.

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

     
  • 2.19, eugenyn (ok), 01:25, 01/06/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Любая математическая теория строится НА ОСНОВЕ каких-то предположений. В результате получается такой, извините, бред, что известный греческий герой якобы (с математической точки зрения) не может обогнать черепаху.

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

    Все верно? Все хорошо?

    - А не тут то было! Позади вас стоит человек с ружьем и в вас стреляет. Вы падаете и никого вы не догнали.

    А что изменилось? Мы ввели в контекст всего - один дополнительный фактор. Который не углядели сразу (стояли спиной к человеку с ружьем).

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

    ***
    Математика, математическая модель, как и другая модель - чем хороша? - Помогает моделировать какие-то вещи, явления в жизни, но с какой целью - СПРАВИТЬСЯ С БЕЗГРАНИЧНОЙ СЛОЖНОСТЬЮ ЭТОГО МИРА (точно так же, как и науки, изучаемые в школе - они зачем? - они помогают хоть немного - понять, выявить - отдельные "пласты", "срезы" безграничного хаоса Вселенной, нашего мира).

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

    Математика такая математика.

    ;)

     
     
  • 3.20, eugenyn (ok), 01:38, 01/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Еще пример - физики 19-го века полагали, что Солнце состоит из угля.

    Наука такая наука.

     
     
  • 4.32, Аноним (-), 17:56, 02/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Еще пример - физики 19-го века полагали, что Солнце состоит из угля.

    Пруф?

     
     
  • 5.33, eugenyn (ok), 03:45, 03/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Просто энергию ядерного распада открыли на заре XX века А до этого - одним из н... большой текст свёрнут, показать
     
  • 3.22, eugenyn (ok), 01:48, 01/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    И еще пример. Сорос когда-то предполагал, что в России будут приватизировать одну из отраслей. Ну и что он сможет вложить свой капитал в этот процесс разгосударствления.

    На деле оказалось, что вместо настоящей приватизации - произошел раздел гос. имущества - между двумя группировками российских олигархов. Два клана поделили меж собой. Сорос "умылся" российскими реалиями бизнеса (факт абсолютно точный, Сорос сам о нем рассказал в недавнем интервью Блумбергу ТВ, на РБК показывали с русским переводом).

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

     
     
  • 4.25, Аноним (-), 10:53, 01/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >факт абсолютно точный,
    >Сорос сам о нем рассказал

    :D

    >Реалии жизни. Неполнота изначальной информации. Маленький нюанс, не учтенный

    Вами? ;)


     
  • 4.26, как4екумек (?), 20:53, 01/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Еще пример - физики 19-го века полагали, что Солнце состоит из угля.

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

    >А ведь, с "математической точки зрения" - Сорос мог что-то купить. На деле же - у него не было и одной миллионной шанса.

    Джордж Сорос (George Soros) не намерен выходить из консорциума Mustcom, владеющего блокирующим пакетом акций холдинга "Связьинвест". Об этом американский финансист заявил вчера на пресс-конференции в Вильнюсе.
    http://vip.stepenko.com/george-soros/634-dzhordzh-soros-ne-otdast-svyazinvest

     
     
  • 5.28, eugenyn (ok), 23:34, 01/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > ну не будем обсуждать историю физики, так как в ней разбираются все, поговорим о вещах более серьезных

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

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

    Да и такое явление, как срок действия IT-сертификата, зачастую обозначенное всего несколькими годами - прямо указывает, что люди со временем многое забывают.

    > Джордж Сорос (George Soros) не намерен

    Не знаю, чем вызвано разночтение. Лично я доверяю каналу Блумберг ТВ и РБК, в этом плане, тем более, что в самом начале передачи на РБК (http://rbctv.rbc.ru/archive/markets_glob/562949983875211.shtml) - несколько слов сказал главный редактор программы "Рынки" этого канала, прокомментировал то, о чем говорил Сорос. - Никаких опровержений ни Блумберг ТВ, ни РБК не сделали. Может Сорос ПОТОМ как-то, но "закупился". И совершенно не на тех условиях, про которые думал изначально, предполагая рыночную среду в России. Вот у него обида и осталась. Возможна и другая интерпретация разночтения. Лично я на этом форуме привел смысловые оттенки, озвученные самим Соросом и не опровергнутые двумя бизнес-каналами, имеющими охват аудитории в сотни миллионов зрителей, включая всем известных финансистов, политиков и т.д. т.п.

     
     
  • 6.29, Аноним (-), 16:27, 02/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Лично я доверяю каналу Блумберг ТВ и
    > РБК,

    ССЗБ


     
     
  • 7.30, eugenyn (ok), 16:52, 02/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Контекст только не надо обрезать.

    У меня было написано "в этом плане". А не что вообще и во всем можно доверять ТВ каналам о бизнесе.

    Например, если бы Сорос сказал, что это именно он устроил революцию 1917 г., то бизнес-каналы его бы поправили.

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

     
     
  • 8.34, dwefdewf (?), 01:30, 04/06/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не ну вы юморист ей богу Ну да юморист точно Особенно кстати смешно про собстве... текст свёрнут, показать
     
     
  • 9.35, eugenyn (ok), 05:12, 04/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Приведите свои версии Чтобы и другие могли посмеяться Не пропустите свои комме... текст свёрнут, показать
     
     
  • 10.36, efdr3fref (?), 20:43, 04/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Уважаемый экономист Если вы не знаете как Сорос ведет бизнес, то вы явно кандид... текст свёрнут, показать
     
     
  • 11.37, eugenyn (ok), 22:04, 04/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Не смешите Сорос там не один участвовал, это во-первых, во-вторых при анализе п... текст свёрнут, показать
     
  • 11.38, eugenyn (ok), 01:19, 05/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    И еще момент выше было обозначено, что Сорос - обычный спекулянт, или инвестор,... большой текст свёрнут, показать
     
  • 3.24, Аноним (-), 10:50, 01/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >безграничного хаоса Вселенной, нашего мира

    хаос, он в головах. ;)

     
  • 2.31, Аноним (-), 17:52, 02/06/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Которое в очередной раз показывает что математически доказать корректность параллельно
    > выполняющейся программы — невозможно.

    А ее вообще доказать в общем случае для произвольной программ невозможно. Доказано еще Тюрингом. Про параллельность там вообще ни звука не было.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру