dluciv: (большой брат)
[personal profile] dluciv
Вопрос к Паре–тройке человек, которые понимают в параллельных вычислениях.

Часть задач хорошо представляются форме MIMD и неплохо выполняются на параллельных CPU (и даже на «полутораядерных» процессорах с Intel HyperThreading). Это те задачи, которые разбиваются на сравнительно небольшое количество массивных кусков с хорошей кучностью, предсказуемостью и «монотонностью» обращения к данным. Например, сжатие видео и звука или даже перемножение матриц как тривиальным способом, так и алгориѳмом Штрассена вполне к ним относится. А сортировки одномерных массивов — не вполне, т.к. скачут по памяти, как ненормальные.

Другая же часть хорошо представляется как SIMD и может работать, например, на GPU (хотя сам факт того, что такие хорошие параллельные вычислительные модули намертво вмуровывают в графические ускорители, возмущает многих, в т.ч. и меня). Здесь требуется ещё больше единообразия, за счёт чего достигается возможность пропустить через несколько десятков туповатых, но шустрых процессоров безумное количество данных. К таким задачам относятся, например, отдельные шаги алгориѳма Гаусса решения СЛАУ (и прочих векторных алгоритмов). А весь метод Гаусса монолитно загонять в SIMD уже смысла нет (а у GPU и ума на него может не хватить).

Для первого класса задач в не таком уж и далёком 1997 году была сделана такая замечательная вещь, как OpenMP, которая года с 2005 без дополнительных усилий поддерживается на системах для домохозяек и для использования требует (а точнее не требует) соответствующей квалификации. И если в конце 1980-х советская домохозяйка могла обсчитать будущее вязаное изделие при помощи, скажем, «Микроши» (http://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%88%D0%B0), то через 20 лет её дочка уже спокойно могла это сделать в несколько потоков при помощи почти (не в терминах теории меры, разумеется) любого ПК с почти любой ОС.

Для второго же класса задач до сих пор требуется хорошенько помучиться с вещами типа OpenCL, например. Вроде как сами по себе они относительно удобные, но пока настроишь, забудешь для чего вообще собрался их использовать.

Теперь полтора вопроса: есть ли в области SIMD для домохозяек подвижки в направлении чего-нибудь по юзабельности близкого к OpenMP и вообще доколе?

Спасибо.

Date: 2010-04-16 09:08 am (UTC)
From: [identity profile] scavenger-spb.livejournal.com
http://labs.trolltech.com/blogs/2010/04/07/using-opencl-with-qt/

это не то лицо, которое ты ищешь?

Date: 2010-04-16 09:18 am (UTC)
From: [identity profile] dluciv.livejournal.com
О, спасибо, уже гораздо лучше. Насколько я понимаю, штука позволяет, как и OpenMP, оставлять простые программы относительно простыми. Это дорогого стоит.

Алсо вот такая штука есть (вернее по большому счёту не есть, а будет): http://www.cs.lth.se/home/Calle_Lejdfors/pygpu/ - тоже ня.

Но тут вот ещё в чём вопрос: и то, и другое убьёшься настраивать. На уровне буквально сисадмина, а не программиста. Потому как видеодрова, если их не пинать три часа ногами, вроде не дают сами по себе такого интерфейса. Я что-то слышал про DirectX 11, но для таких целей хотелось бы открытой реализации под все ОС.

А вот OpenMP уже давно не надо настраивать. Оно само и везде.

Date: 2010-04-16 09:25 am (UTC)
From: [identity profile] dluciv.livejournal.com
Хотя та, которую я нашёл, работает не через OpenCL, а через Cg, так что может и ничего...
Надо под линухом дома попробовать будет...

Date: 2010-04-16 09:33 am (UTC)
From: [identity profile] dours.livejournal.com
openCL это то, что Nvidia предоставляет?
у них же есть система для программирования на псевдо С++ для CUDA. Она хуже openMP? Или тоже надо долго настраивать?

Date: 2010-04-16 09:36 am (UTC)
From: [identity profile] dluciv.livejournal.com
NVidia даёт CUDA, ATI - Stream. OpenCL - стандарт, который они все поддерживают.
Но на самом деле глянь в Педивикии примеры кода OpenCL и OpenMP и почувствуй разницу.

Алсо см. комменты выше - пара разумных ссылочек н аэту тему уже есть.

February 2022

S M T W T F S
  12345
6789101112
13141516 171819
20212223242526
2728     

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 10th, 2026 12:11 pm
Powered by Dreamwidth Studios