LINUX.ORG.RU

Параллельные технологии

 , , , ,


11

5

По договорённости с редакцией Linux Format выложил в открытый доступ цикл статей по параллельному программированию, которые были опубликованы в журнале с февраля по июль этого года.

Кратко рассмотрены пакетные (batch) системы, MPI, CUDA, OpenCL и примеры работы с кластерами. Также во введении есть сопутствующее мини-интервью с Романом Троганом из Parallela.

P.S. Если будет интерес, то начну процедуру выкладывания исходников статей под открытой лицензией.

>>> Сами статьи

★★★★★

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

Ответ на: комментарий от Eddy_Em

Аватарка феерически зачетная. Очень тонко подходит к образу.

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

Практика показывает, что проще всё решить до запуска. А рулят IMHO простые (модификация конкретной версии ядра решение не простое) в настройке решения.

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

У президиума есть на ставке журналист. Она всё это поддерживает, а кто поставил ей такую задачу - я не знаю.

Evgueni ★★★★★ ()

Ждём ускоренного увеличения всемирной суммы биткоинов, благодаря этим статьям.

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

Понятно, спасибо.

В должностной инструкции написано, должно быть.

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

Это не потому, что НИИ не хотят. Это потому, что неразборчивые ругательства

Другое дело во многих университетах есть суперкомпьютерные центры, которые не шибко мягко говоря загружены и схема «ЦПУ» взамен «отчётов» пока замечательно работает. Последняя статья как раз на эту тему. Совсем без затрат безусловно не обойтись — нужен как минимум быстрый линк до универа.

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

решение СЛАУ из миллиона уравнений с миллионом неизвестных займёт примерно 8 (восемь) терабайт оперативы и примерно 2 (два) года машинного времени 1 (одного) ядра не самого современного процессора. Это с реальной производительностью при решении такой задачи, а не пиковой теоретической. И при использовании тупого в лоб алгоритма Гаусса, а не самого оптимального. Да, долго, но не около века.

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

Это не потому, что НИИ не хотят. Это потому, что...

Ну, про причины мы как раз понимаем.

На самом деле задач для минисуперЭВМов можно набросать вагон и маленькую тележку Главное, чтобы результат был НУЖЕН. Ну, и зарплатный фактор админа/программиста etc тоже не последний. Собсна, зарплата как раз и пляшет от применимости результатов.

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

Суперкомпьютеры сейчас почти как тумбочки — ставишь и они работают (университет нам «подарил» четыре крейта блейдов), хотя безусловно согласен, что грамотная поддержка необходимо. У нас конкретно этим занимаются физики.

А по поводу нужен/не нужен — результат без мощи в любом случае будет, только оооочень не скоро. Конкретно мой последний анализ: http://arxiv.org/abs/1311.5005 начинался, когда у нас не было доступа к кластеру (фактически на нём этот доступ и схема виртуализации и тестировался) и первая итерация у меня заняла три недели. Сейчас итерация полной переобработки занимает ночь — у меня их было около сотни.

Evgueni ★★★★★ ()
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от Evgueni

«отчётов» пока замечательно работает

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

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

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

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

вообще вершина качества кода на фортране - дерьмо наподобие:

      SUBROUTINE CELON(EXTERN,A,B,FUN,ZF,NZ,V,EPS,SUM,ERROR)
      EXTERNAL FUN
      COMPLEX FUN,SUM,ERROR
      COMPLEX VV,SUM1,SUM2,ER3,ERN
      REAL ZF(NZ)
      COMPLEX V(NZ,2)
      MSWTCH=2
      AEPS=.3*EPS
      DEPS=.1*AEPS
      SUM1=0.
      SUM2=0.
      ER3=0.
      ER1R=0.
      ER1J=0.
      ER2R=0.
      ER2J=0.
      NMAX=NZ
      I=1
      K=1
      J=2
      Z2=A
      U2=B
      V(1,I)=0.
      V(NZ,I)=0.

      DO 20 N=1,NMAX
      MMAX=N-1
      IF(MSWTCH.EQ.1)GOTO 21
      Z1=Z2
      Z2=ZF(N)
      CALL EXTERN(Z1,Z2,FUN,DEPS,VV)
      V(1,J)=VV+V(1,I)
      ER1R=ABS(REAL(VV))
      ER1J=ABS(AIMAG(VV))
      ERN=CMPLX(DEPS*ER1R,DEPS*ER1J)
      ER3=ER3+ERN
      VR=V(1,J)
      VJ=(0.,-1.)*V(1,J)
C=====!!!!!!!!!!!!!!!!!!!!!
      IF(MMAX.EQ.0)GOTO 133
      DO 13 M1=1,MMAX
      M3=M1+1
      V(M3,J)=0.5*(V(M1,J)+V(M1,I))
      DV31R=V(M3,J)-V(M1,I)
      DV31J=(0.,-1.)*(V(M3,J)-V(M1,I))
      DV11R=V(M1,J)-V(M1,I)
      DV11J=(0.,-1.)*(V(M1,J)-V(M1,I))
      E1R=(ABS(DV31R)+ABS(DV11R))/2.
      E1J=(ABS(DV31J)+ABS(DV11J))/2.
      IF(M1.GE.MMAX)GOTO 11
      DV33R=V(M3,J)-V(M3,I)
      DV33J=(0.,-1.)*(V(M3,J)-V(M3,I))
      E1R=(2.*E1R+ABS(DV33R))/3.
      E1J=(2.*E1J+ABS(DV33J))/3.
 11   IF(ER1R.LT.E1R)GOTO 12
      ER1R=E1R
      VR=V(M3,J)
 12   IF(ER1J.LT.E1J)GOTO 13
      ER1J=E1J
      VJ=(0.,-1.)*V(M3,J)
 13   CONTINUE
 133  CONTINUE
      SUM1=VR+(0.,1.)*VJ
      AS1R=ABS(VR)
      AS1J=ABS(VJ)
      IF(ER1R/(1.+AS1R).GT.AEPS.OR.ER1J/(1.+AS1J).GT.AEPS)GOTO 14
      IF(ER1R/AEPS.LT.AS1R.AND.ER1J/AEPS.LT.AS1J)MSWTCH=MSWTCH-1
c-------------
  14  CONTINUE
      IF(MSWTCH.EQ.1)GOTO 21
      IF(MSWTCH.EQ.2)GOTO 19
  15  U1=U2
      U2=ZF(NZ+1-N)
      CALL EXTERN(U2,U1,FUN,DEPS,VV)
      V(NZ,J)=VV+V(NZ,I)
      ER2R=ABS(REAL(VV))
      ER2J=ABS(AIMAG(VV))
      ERN=CMPLX(DEPS*ER2R,DEPS*ER2J)
      ER3=ER3+ERN
      WR=V(NZ,J)
      WJ=(0.,-1.)*V(NZ,J)
C=====!!!!!!!!!!!!!!!!!!!!!
      IF(MMAX.EQ.0)GOTO 188
      DO 18 M2=1,MMAX
      M4=NZ-M2
      M6=M4+1
      V(M4,J)=0.5*(V(M6,J)+V(M6,I))
      DV46R=V(M4,J)-V(M6,I)
      DV46J=(0.,-1.)*(V(M4,J)-V(M6,I))
      DV66R=V(M6,J)-V(M6,I)
      DV66J=(0.,-1.)*(V(M6,J)-V(M6,I))
      E2R=(ABS(DV46R)+ABS(DV66R))/2.
      E2J=(ABS(DV46J)+ABS(DV66J))/2.
      IF(M2.GE.MMAX)GOTO 16
      DV44R=V(M4,J)-V(M4,I)
      DV44J=(0.,-1.)*(V(M4,J)-V(M4,I))
      E2R=(2.*E2R+ABS(DV44R))/3.
      E2J=(2.*E2J+ABS(DV44J))/3.
 16   IF(ER2R.LT.E2R)GOTO 17
      ER2R=E2R
      WR=V(M4,J)
 17   IF(ER2J.LT.E2J)GOTO 18
      ER2J=E2J
 18   WJ=(0.,-1.)*V(M4,J)
188   CONTINUE
      SUM2=WR+(0.,1.)*WJ
      AS2R=ABS(WR)
      AS2J=ABS(WJ)
      IF(ER2R/(1.+AS2R).GT.AEPS.OR.ER2J/(1.+AS2J).GT.AEPS)GOTO 19
      IF(ER2R/AEPS.LT.AS2R.AND.ER2J/AEPS.LT.AS2J)MSWTCH=MSWTCH-2
  19  I=J
      K=-K
  20  J=(3+K)/2
  21  SUM=SUM1+SUM2
      ERROR=ER3+ER1R+(0.,1.)*(ER1J+ER2J)
      ERROR=ERROR+ER2R
      RETURN
      END
Естественно, подобный шлак может исполняться только со скоростью 0.3 - 0.5 процента от пиковой теоретической, сопровождению не поддаётся в принципе, переписывание подобных опусов с одиночной точности на хотя бы двойною занимает полгода, с вырыванием волос на жопе. Фортран очень плохо подходит для решения численных задач и совсем никак - для решения остальных.

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

У нас конкретно этим занимаются физики.

Что есть неправильно. Понятно, что они могут.

Физики и матценности могут учитывать. Например. =)

Все толковые инженегры разбегаются по коммерсам.

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

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

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

Меня в своё время впечатлила дока к lapack — ровно одна страничка :) Через пол часа внимательного вглядывания всё стало очевидно.

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

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

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

Вы знаете, мне как-то плевать на то, что делает компилятор, — мне считать надо. Причём желательно начать считать быстро, а результат иметь уже вчера. Поэтому я использую Фортран: производительность получается несколько ниже идеально вылизанной С-программы, но значительно выше быстро набросанной на коленке. Простой код и масса специализированных численных библиотек облегчают задачу.

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

Теслой как минимум.

Не лучше квадры.

И наличием софта.

Спорно. OpenCL научного софта тоже полно.

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

Как будет время и желание — свяжитесь со мной (e-mail на домашней страничке — ссылка есть в топике и в профиле). Обговорим что можно будет сделать. Про писанину — её мало давно уже не бывает и дальше будет только хуже :(

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

Из такой лапши состоят абсолютно (а не подавляющее большинство) програмнного кода на фортране. Блас/лапак видал, от выше приведённого отличается только тем, что эта лапша размазана по куче мелких функций, ну и, что редкость, тщательно прокомментирована. В остальном - большая студенческая лаба, хорошо оформленная. Ничего такого, что требовало бы каких-то особенных средств, доступных только в фортране там нет. Тема суперпригодности фортрана для расчётов в бласе/лапаке не раскрывается. Любой другой язык позволяет писать точно также или лучше.

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

Ну то есть с ты постом согласен, и по существу возразить нечем. Замечательно, что в прочем и ожидалось.

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

Да, и кстати, в этом вашем говнофортране до сих пор нет даже функции Бесселя. Какая в жопу пригодность к расчётам.

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

Это кто так врёт? Собственно, на числодробильнях сейчас фактически два с половиной языка адекватных к использованию: фортран, си и cuda (тот же си, только в профиль)

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

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

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

В ifort тоже есть. Подозреваю, что в pgf тоже присутствует уже давно, но нет под рукой его.

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

я ребята говорю не 1d Задачи,3d.Ребят,не путайте с обычными случаями.Какой там бл... Гаусс.Метод пвр или min невязки и т.п методы которые рассчитаны на то,что заданные оператор будет хорошим(невырожденным) плюс самосопряженн.Этого не всегда удается добиться,10 ^ 6- это только начало.

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

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

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

лучше в обозримом будущем не будет

Не будет. Вопрос только в том, насколько резко наступит тотальный негатив, или постепенно, или же резкое сваливание в штопор.

Далее каждый решает сам: бороться ли ему с орками или уехать к эльфам.

Я думаю, дело не в борьбе. Таких конкретных людей, заточенных на борьбу, в принципе немного.

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

если у кого-то есть идеи

Посмотрю в своих «записках сумасшедшего», что может сгодится под тему. Много чего измышлял «в стол», никому не надо, а выплёскивать «в эфир» тоже как-то не то.

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

Мой e-mail на домашней страничке. Напиши, как морально созреешь.

Объём статьи: 20 тыс знаков (можно уполовинить) — 10 страниц. Выбирать следует темы, на которые тратишь не больше двух дней, иначе перегораешь.

Если моё соавторство принимается (я действительно неплохо причёсываю текст и примерно представляю что нужно написать, поэтому лучше перед началом со мной обговорить план, чтобы оптимизировать свои усилия), то гонорар (5-6 тыс. за полноценную статью) делится пополам. Можно также напрямую предложить свои услуги редакции — они ищут авторов.

P.S. Если есть что-то помимо параллельных вычислений, но связано с Linux, то тоже могу что-нибудь посоветовать.

Evgueni ★★★★★ ()
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от Evgueni

Если моё соавторство принимается

Да принимается, не вопрос. Главное в ценности материала для целевой аудитории. Колупну архивы, посмотрю.

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

Из такой лапши состоят абсолютно (а не подавляющее большинство) програмнного кода на фортране.

У мифишного анонима помимо православной логики еще и дислексия. Полный набор.

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