LINUX.ORG.RU

Основные тенденции параллельного программирования


0

0

Перевод статьи Mainstream Parallel Programming на примере организации распределенной обработки изображения, рассказывается об основах параллельного программирования с использованием интерфейса MPI.

>>> Статья



Проверено: Shaman007 ()

Спасибо.. Любопытное чтиво.. ;-)

MiracleMan ★★★★★
()

это что? тенденции развития? вроде все давно лелают это....

anonymous
()

Кластер для фильтров в GIMP - это по нашему! Adobe просто отдыхает. Осталось дождаться GEGL, добавить поддержку MPI, после чего лениво водя мышкой работать с уличными плакатами, в натуральную величину. Irsi удавится от зависти... ;-)

atrus ★★★★★
()

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

vpol
()

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

От этого ведь по границам разбиения косяки появятся.

anonymous
()
Ответ на: комментарий от anonymous

Ну уж наверное не полные дураки этим занимаются.

anonymous
()
Ответ на: комментарий от anonymous

>От этого ведь по границам разбиения косяки появятся.

Залезающие границы надо делать при разбиении.

r ★★★★★
()

это, уважаемые, чушь, а не "тенденции". Это всего лишь пример программирования на MPI. Если это тенденции, то тушите свет. для SMP это по определению не годится, кроме того кластеры - это лишь малая часть в мире параллельных вычислителей, а по значению в мире суперкомпьютинга - еще более малая.

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

anonymous
()
Ответ на: комментарий от anonymous

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

Вроде в Top500 - сплошь кластеры?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> Вроде в Top500 - сплошь кластеры?

если ты имеешь в виду массивно-параллельные вычислители, то это не есть кластеры. Кластеры это когда вычислители низкой категории из массового сегмента объединяются друг с другом по интерфейсам опять же из дешевой категории, типа ethernet.

Интерфейсы типа Myrinet это уже более тяжелая весовая категория, а в TOP500 к тому же в основном присутсвуют железные решения совсем не массового типа, там и топология и шины и схема работы I/O достаточно нетривиальные.

dea
()
Ответ на: комментарий от anonymous

Спецслужбы США признали существование "закладок" в микрокоде лазерных принтеров

>то всего лишь пример программирования на MPI. Если это тенденции, то тушите свет. для SMP это по определению не годится, кроме того кластеры - это лишь малая часть в мире параллельных вычислителей, а по значению в мире суперкомпьютинга - еще более малая

Малая ? Я пацтулом ;) в top500 когда последний раз заглядывали ?

>А для многоголовых писюшек домохозяйкам лучше OpenMP использовать, даю справку, кстати.

Шо ? Сурьёзно ? ;)

И почём нынче чего нибудь 20-головое на SMP ? ;)

hint: Message Passing парадигма прекрасно ложиться на SMP, а вот Shared Memory парадигма на кластер ложится действительно с очень большими оверхедами (посредством DSM)

sS ★★★★★
()
Ответ на: комментарий от dea

Спецслужбы США признали существование "закладок" в микрокоде лазерных принтеров

>если ты имеешь в виду массивно-параллельные вычислители, то это не есть кластеры.

Ой, а что же это тогда тут стоит передо мной ? ;) Ну ты меня однако озадачил ;)

>Кластеры это когда вычислители низкой категории из массового сегмента объединяются друг с другом по интерфейсам опять же из дешевой категории, типа ethernet.

А чё не по dial-up-у ? ;)

>Интерфейсы типа Myrinet это уже более тяжелая весовая категория, а в TOP500 к тому же в основном присутсвуют железные решения совсем не массового типа, там и топология и шины и схема работы I/O достаточно нетривиальные.

Тупо смотрю на стойку с 10-нодовым кластером на 2-х головых блейдах с IB ...

И чё тут нетривиального в упор понять не могу.

Народ, кончайте пургу гнать про то, о чём только в новостях на LOR читаете.

sS ★★★★★
()

>>А для многоголовых писюшек домохозяйкам лучше OpenMP использовать, даю справку, кстати.

>Шо ? Сурьёзно ? ;)

>И почём нынче чего нибудь 20-головое на SMP ? ;)

ну а почему на 200 головое? прежде чем по клаве барабанить надо прочитать то, на что отвечаешь.

hint: VS2005 под оффтопиком умеет OpenMP, про SUN я уже и говорить не буду, а Fedora недавно импортировала OpenMP в gcc (официально он в gcc будет с 4.2).

>hint: Message Passing парадигма прекрасно ложиться на SMP,

ага, ложится и лежит ;-) на 8-головых половина тестов идет медленнее 1-головых конфигураций

>а вот Shared Memory парадигма на кластер ложится действительно с очень большими оверхедами (посредством DSM)

вот и сиди на своем кластере и клацай :-))))

anonymous
()
Ответ на: комментарий от anonymous

...

>И почём нынче чего нибудь 20-головое на SMP ? ;)

>ну а почему на 200 головое?

Вопросом на вопрос ныне модно отвечать ? ;)

Для примера 20 головый кластер (40 ядер) в компактном исполнении (в виде блейдов) с IB тянет сейчас всего на 70 штук зелени(в полной комплектации под ключ). Ближайший аналог с shared memory NUMA это альтикс (не знаю уж продадут ли вам с 20 процами, у него ближайшая стандартная комплектация 32 штуки) ну пусть будет 32 vs 40. Ну так я слушаю вашу цену ? ;)

>hint: VS2005 под оффтопиком умеет OpenMP, про SUN я уже и говорить не буду, а Fedora недавно импортировала OpenMP в gcc (официально он в gcc будет с 4.2).

ЖЖош камрада ;)) "Fedora недавно импортировала OpenMP" Гы. Ты про GOMP чего нибудь слышал ?

Санки покамест в глубокой альфе.

Реально сейчас поддерживают OpenMP 3 более менее стабильных компилера (не считая оффтопикового VS2005 )

- Intel (худо бедно) - PathScale - PGI

на подходе gcc 4.2 (который включит в себя gomp-xxx-branch это такая ветка была gcc еще во времена 3.xx ) на какчество будем посмотреть.

Но по любому по деньгам оно нафиг не нужно. Ну разве что сделать 2-х уровневую декопмозицию задачи (хотя нафига оно нужно непонятно)

>ага, ложится и лежит ;-) на 8-головых половина тестов идет медленнее 1-головых конфигураций

Какие тесты ? Какой интерконнект ? Какая версия MPI ? hint: есть такие тесты что и на SMP будут масштабироваться в минус ;)

Существует куча задач которые на кластере масштабируются почти _линейно_ даже на таком тухлом интерконнекте как встроенный GigabitEthernet с MPI пущенным поверх TCP/IP

>вот и сиди на своем кластере и клацай :-))))

Отож ;) Сидим и бум сидеть ;)

sS ★★★★★
()
Ответ на: ... от sS

> Для примера 20 головый кластер (40 ядер) в компактном исполнении (в виде блейдов) с IB тянет сейчас всего на 70 штук зелени(в полной комплектации под ключ). Ближайший аналог с shared memory NUMA это альтикс (не знаю уж продадут ли вам с 20 процами, у него ближайшая стандартная комплектация 32 штуки) ну пусть будет 32 vs 40. Ну так я слушаю вашу цену ? ;)

моя твоя не понимай, да? ты ссылку в топике читал? там домохозяйкам GIMP предлагается параллелить, это для альтикса задача, а? Особенно MPI для домохозяек очень в самый раз, эта идиотская гомогенная архитектура... уж лучше тогда PVM использовать.

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

> ЖЖош камрада ;)) "Fedora недавно импортировала OpenMP" Гы. Ты про GOMP чего нибудь слышал ?

именно его Шапка и влила в gcc. поставь fedora5 и удивись.

> Существует куча задач которые на кластере масштабируются почти _линейно_

ну, открыл Америку, ну молодец! зато эта куча - o(кучи) которая не масштабируется линейно и ваабче никак не масштабируется.

ты вот мне методом Гаусса посчитай чего-нибудь на клацтере, тогда посмотрим ;-)

anonymous
()
Ответ на: комментарий от anonymous

...

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

CFD от 10 млн. узлов и выше годится ? ;) (FNS с кинетикой и всякими турбуленциями с многофазностью в nonsteady + всякие cопряженные задачи) Это байду не то, что на кластере считают. Её и обрабатывать потом на кластере неплохо бы (постпроцессинг результатов к примеру идёт на 2-х головом оптероне с 16 гектарами мозгов по полчаса)

Только знаешь с кластерами засада ? Лицензии на соотв. софт там выдаётся на 1 хост (хорошо хоть не на ядро). Так что отдать $3000 за год еще можно а вот $60 000 это уже сравнимо со стоимостью железяки. ;)

>уж лучше тогда PVM использовать.

А мы по вашему что используем ;) Но MPI более распространён и многие вендоры интерконнекта пишут свои версии MPI дабы не плодить лишние оверхеды

>ну, открыл Америку, ну молодец! зато эта куча - o(кучи) которая не масштабируется линейно и ваабче никак не масштабируется.

Дык это вы открыли для себя OpenMP ;) То, что ты не сможешь смаштабировать на MPI не больно то будет масштабироваться и в OpenMP (всякая сильносвязанная хрень)

hint: поставь нормальный интерконект и всё, что может масштабироваться на OpenMP будет делать то же самое и на MPI только на большем числе процессоров и за более скромные деньги.

латенции нормального интерконнекта сейчас на уровне 5 мкс при пропускной способности в районе 800 Мб/сек что по _порядку_ цифр уже приближается к shared memory

>ты вот мне методом Гаусса посчитай чего-нибудь на клацтере, тогда посмотрим ;-) Имеется ввиду метод решения ЛУ ? ;)) Нах ? Им _вообще_ кто нибудь чего нибудь сейчас считает ? Ну или хотяб кто нить матрицы такого размера, где реально почувствовать эффект от распараллеливания в реальной жизни использует ?

Это всё сферические кони в вакууме.

Вообще учимся выбирать инструмент соответстующий задаче. ray tracing всякий, монте-карлы там - вот задачи для кластеров.

sS ★★★★★
()
Ответ на: ... от sS

> CFD от 10 млн. узлов и выше годится ? ;)

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

А ядерщикам, к примеру что делать? Я гаусса только в пример привел, а вообще для любой задачи с сильносвязанной матрицей клацтер - тормозная и дорогостоящая игрушка.

> латенции нормального интерконнекта сейчас на уровне 5 мкс при пропускной способности в районе 800 Мб/сек что по _порядку_ цифр уже приближается к shared memory

вот это как раз и есть сферический конь, ты костьми ляжешь чтобы такой латенции на реальной системе добиться, или ты думаешь IBM зря миллиарды в свой суперкомпьютинг грохает, встаивая в железо пачками FPGA и т.п.?

OpenMP я "открыл" больше десятка лет назад, но я и не утверждаю что это - решение. Ничерта это не решение, но оно вполне годится для домохозяечных писюков для задач описанных в топике, и оно запросто делает MPI по простоте и эффективности.

anonymous
()
Ответ на: комментарий от anonymous

...

>OpenMP я "открыл" больше десятка лет назад,

Как вам это удалось ;)))

Спецификация 1.0 если мне мой склероз не изменяет датирована 1997 годом ;)

Я впервые попробовал PGI (PGCC) с поддержкой OpenMP куда как позже.

>но я и не утверждаю что это - решение. Ничерта это не решение, но оно вполне годится для домохозяечных писюков для задач описанных в топике, и оно запросто делает MPI по простоте и эффективности.

По простоте для кодописателя отчасти а по эффективности - увольте.

sS ★★★★★
()
Ответ на: ... от sS

>OpenMP я "открыл" больше десятка лет назад,

>Как вам это удалось ;)))

места надо знать :)))

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

>По простоте для кодописателя отчасти а по эффективности - увольте.

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

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.