[Haskell] Интервью с SPJ
От: Курилка Россия http://kirya.narod.ru/
Дата: 19.09.08 18:11
Оценка: 30 (4)
Одновременно на слэшдоте и LtU выложили ссылку на довольно обширное интервью с Саймоном Пейтоном Джоунсом, в нём он, конечно, рассказывает о хаскеле и ещё упоминает про текущие свои работы посвещённые "nested data parallelism", который должен программу, которую просто написать, трансформировать в программу, которую просто выполнить (дословно: "transforms from a program that’s easy to write into a program that’s easy to run").
haskell
Re: [Haskell] Интервью с SPJ
От: Mirrorer  
Дата: 22.09.08 11:23
Оценка: 23 (2)
Здравствуйте, Курилка, Вы писали:

К>ещё упоминает про текущие свои работы посвещённые "nested data parallelism",

Есть видео с London HUG посвященное как раз этому самому nested parallelism.
Сам пока еще не смотрел, так что в случае чего ногами не бить
haskell nested data parallellism spj
Re[2]: [Haskell] Интервью с SPJ
От: Курилка Россия http://kirya.narod.ru/
Дата: 22.09.08 12:16
Оценка:
Здравствуйте, Mirrorer, Вы писали:

M>Здравствуйте, Курилка, Вы писали:


К>>ещё упоминает про текущие свои работы посвещённые "nested data parallelism",

M>Есть видео с London HUG посвященное как раз этому самому nested parallelism.
M>Сам пока еще не смотрел, так что в случае чего ногами не бить

Спасиб, заценим, хотя вроде ещё даж прототипа толкового нет...
Re[2]: [Haskell] Интервью с SPJ
От: Курилка Россия http://kirya.narod.ru/
Дата: 26.09.08 15:50
Оценка:
Здравствуйте, Mirrorer, Вы писали:

M>Здравствуйте, Курилка, Вы писали:


К>>ещё упоминает про текущие свои работы посвещённые "nested data parallelism",

M>Есть видео с London HUG посвященное как раз этому самому nested parallelism.
M>Сам пока еще не смотрел, так что в случае чего ногами не бить

А фишка оказывается в идеях языка NESL
Правда у меня вопрос: насколько это востребовано?
Понятно, что симуляции ядерных взрывов, обсчёт рынка — это варианты, но для "обычных смертных"?
Re[3]: [Haskell] Интервью с SPJ
От: Mirrorer  
Дата: 26.09.08 18:20
Оценка:
Здравствуйте, Курилка, Вы писали:
К>Правда у меня вопрос: насколько это востребовано?
К>Понятно, что симуляции ядерных взрывов, обсчёт рынка — это варианты, но для "обычных смертных"?

Есть такое подозрение что дай обычному смертному 32 ядра, он врядли сможет выжать из них 8-краное укорение на всяческих мьютексах. А ежели 128 ? А 1024 ?

Суть вообще какая. Как нам рассказывали в институте проблема в чем.
Допустим у нас есть необходимость сложить 16 чисел
ну типа
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16

За сколько тактов минимум это можно сделать ?

Если у нас имеется 8 процессоров (время пересылки данных для простоты не учитываем)
1-й такт
1 + 2 = 3 на 1-м процессоре
3 + 4 = 7 на 2-м процессоре
5 + 6 = 11 на 3-м процессоре
7 + 8 = 15 на 4-м процессоре
9 + 10 = 19 на 5-м процессоре
11 + 12 = 23 на 6-м процессоре
13 + 14 = 27 на 7-м процессоре
15 + 16 = 31 на 8-м процессоре

2-й такт
3 + 7 = 10 на 1-м процессоре
11 + 15 = 26 на 3-м процессоре
19 + 23 = 42 на 5-м процессоре
27 + 31 = 56 на 7-м процессоре

3-й такт

10 + 26 = 36 на 1-м процессоре
42 + 56 = 98 на 5-м процессоре

4-й такт

36 + 98 = 134 на 1-м процессоре

Итого, посчитаем выгоду от распараллеливания.

Очевидно, что на 1 процессоре это заняло бы 15 тактов

А на 8 ? — 4

Посчитаем коэффициент ускорения.
15 / 4 = 3.75

Оказывается он нихрена не линейный даже для такой простой операции как сложение.
При этом.
1) Мы не учитывали время пересылки данных между процессорами
2) У нас была гомогенная система (процессоры однотипные, все связанные между собой)
Если учесть эти вещи то процесс распараллеливания становится несколько сложнее
Но это еще не все.
У нас может быть гетерогенная система
В ней могут быть SIMD процесоры(single-instruction multiple-data, привет, J!) которые могут за 1 такт сложить 8 чисел допустим
И их как-то надо кооперировать с процессорами которые SISD (single instruction single-data)

У нас может быть топология сложнее чем 1-1. допустим там гиперкуб или кольцо. Я не верю в полносвязную систему для 1024 процессоров.
А это значит что задержки при пересылки данных совсем не константа и их тоже кто-то должен учитывать. ОС или компилятор, неважно.

И теперь со всей этой хренью надо попытаться взлететь. На локах и мютексах

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

P.S. Если чего и наврал, то не по своей воле, а от злобного коньячного-спиртового воздействия. Просьба не бить ногами, а вести спокойную цивилизованную дискусиию.

P.P.S Я понимаю, что большинству программеров мягко говоря наплевать на подобные вещи. "Этим должен заниматься планировщик ОС" или "Этим должен заниматься компилятор" вполне себе точка зрения и я это прекрасно понимаю. Но тем не менее эти задачи не решены на текущий день в общем случае. Поэтому ни компилятор, ни ОС не обеспечат максимальной производительности на большом количестве ядер. Окромя может быть Erlang-а

Вот такие вот делы
Re[4]: [Haskell] Интервью с SPJ
От: Курилка Россия http://kirya.narod.ru/
Дата: 26.09.08 18:30
Оценка:
Здравствуйте, Mirrorer, Вы писали:

M>Здравствуйте, Курилка, Вы писали:

К>>Правда у меня вопрос: насколько это востребовано?
К>>Понятно, что симуляции ядерных взрывов, обсчёт рынка — это варианты, но для "обычных смертных"?

M>Есть такое подозрение что дай обычному смертному 32 ядра, он врядли сможет выжать из них 8-краное укорение на всяческих мьютексах. А ежели 128 ? А 1024 ?


M>Суть вообще какая. Как нам рассказывали в институте проблема в чем.

M>Допустим у нас есть необходимость сложить 16 чисел
M>ну типа
M>1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16

M>За сколько тактов минимум это можно сделать ?


[cut]

Как бы я совсем другое имел в виду, хотя в чем-то, наверное, твой пример подойдёт: у тебя гранулярность задачи слишком мизерная. В итоге получится, что накладные расходы могут в лёгкую "съесть" выигрыш от параллелизации. Т.е. для вменяемого бенефита нам надо иметь некие задачи с большим числом распараллеливаемых операций, вот и вопрос — а каков процент таких массовопараллельных задач у обычного юзера?
Re[5]: [Haskell] Интервью с SPJ
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 27.09.08 16:23
Оценка:
Здравствуйте, Курилка, Вы писали:

К> каков процент таких массовопараллельных задач у обычного юзера?


Сейчас небольшой — игры и видео в основном. Но по мере появления железяк, позволяющих делать много всего параллельно, соответствующие задачи будут появляться все больше и больше. То, что сейчас никто не рискует делать, станет возможным. Ведь многие сегодняшние обыденные вещи лет 10-15 назад никто и помыслить не мог, т.е. новые задачи возникают с ростом возможностей.
Re[6]: [Haskell] Интервью с SPJ
От: Курилка Россия http://kirya.narod.ru/
Дата: 27.09.08 16:34
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Здравствуйте, Курилка, Вы писали:


К>> каков процент таких массовопараллельных задач у обычного юзера?


DM>Сейчас небольшой — игры и видео в основном. Но по мере появления железяк, позволяющих делать много всего параллельно, соответствующие задачи будут появляться все больше и больше. То, что сейчас никто не рискует делать, станет возможным. Ведь многие сегодняшние обыденные вещи лет 10-15 назад никто и помыслить не мог, т.е. новые задачи возникают с ростом возможностей.


Ну возникать-то возникают, вопрос для меня в том, будут ли это реально необходимые задачи, интересные пользователю, или же очередные рюшечки какой-нибудь "Висты"?
Просто реально наблюдаю, что довольно большой процент народа использует комп почти как печатную машинку: в ворде что напечатать, в экселе пару страничек. Т.е. такие вещи, на которые, возможно даже 286-го хватило.
И некоторым исключением является развлекательная функция (веб, игры, видео).
Так вот хочется понять — где же такие задачи (которые сильно параллелить надо) возьмутся у обычных пользователей? Или же выйдет, что покупать будут лишь потому что круто?
Re[7]: [Haskell] Интервью с SPJ
От: Beam Россия  
Дата: 27.09.08 19:42
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Здравствуйте, D. Mon, Вы писали:


DM>>Сейчас небольшой — игры и видео в основном. Но по мере появления железяк, позволяющих делать много всего параллельно, соответствующие задачи будут появляться все больше и больше. То, что сейчас никто не рискует делать, станет возможным. Ведь многие сегодняшние обыденные вещи лет 10-15 назад никто и помыслить не мог, т.е. новые задачи возникают с ростом возможностей.


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

К>Просто реально наблюдаю, что довольно большой процент народа использует комп почти как печатную машинку: в ворде что напечатать, в экселе пару страничек. Т.е. такие вещи, на которые, возможно даже 286-го хватило.
К>И некоторым исключением является развлекательная функция (веб, игры, видео).
К>Так вот хочется понять — где же такие задачи (которые сильно параллелить надо) возьмутся у обычных пользователей? Или же выйдет, что покупать будут лишь потому что круто?

Ну игры и видео востребованы на многих домашних компьютерах. А из совершенно нового может появиться что-то из области искуственного интеллекта — голосовой интерфейс, анализ текстов на естественном языке (тех же страничек в вебе), поиск изображений и пр.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Best regards, Буравчик
Re[8]: [Haskell] Интервью с SPJ
От: BulatZiganshin  
Дата: 09.10.08 15:50
Оценка:
Здравствуйте, Beam, Вы писали:

К>>Так вот хочется понять — где же такие задачи (которые сильно параллелить надо) возьмутся у обычных пользователей? Или же выйдет, что покупать будут лишь потому что круто?


да хотя б чтоб хаскел этот сам по себе работал не медленней c#
Люди, я люблю вас! Будьте бдительны!!!
Re[9]: [Haskell] Интервью с SPJ
От: Курилка Россия http://kirya.narod.ru/
Дата: 09.10.08 18:23
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>Здравствуйте, Beam, Вы писали:


К>>>Так вот хочется понять — где же такие задачи (которые сильно параллелить надо) возьмутся у обычных пользователей? Или же выйдет, что покупать будут лишь потому что круто?


BZ>да хотя б чтоб хаскел этот сам по себе работал не медленней c#


эээ, он у тебя медленней шарпа работает?
Re[10]: [Haskell] Интервью с SPJ
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 10.10.08 17:20
Оценка:
Здравствуйте, Курилка, Вы писали:

К>эээ, он у тебя медленней шарпа работает?


Подозреваю, речь о скорости компиляции.
Re[10]: [Haskell] Интервью с SPJ
От: Tonal- Россия www.promsoft.ru
Дата: 16.10.08 18:20
Оценка:
Здравствуйте, Курилка, Вы писали:
К>>>>Так вот хочется понять — где же такие задачи (которые сильно параллелить надо) возьмутся у обычных пользователей? Или же выйдет, что покупать будут лишь потому что круто?
BZ>>да хотя б чтоб хаскел этот сам по себе работал не медленней c#
К>эээ, он у тебя медленней шарпа работает?
Булат видимо компилятор имел в виду.
Ну я сильо компилятор пока не нагружал, но с darcs-ом повозился чуток.
Дык вот, он сильно по скорости svn сливает.
Ту же рабочую копию Janus-а (вместе с бинариками) только в 2 приёма удалось закомитить.
Правда машинка слабая была: проц AMD Sempron 3100+ 1.8ггц и озу 736мб, вынь хр.
Но свин справляется без каких-либо проблем.

Так что есть куда копать.
... << RSDN@Home 1.2.0 alpha 4 rev. 0>>
Re[11]: [Haskell] Интервью с SPJ
От: awson  
Дата: 16.10.08 20:24
Оценка:
Здравствуйте, Tonal-, Вы писали:

T>Ну я сильо компилятор пока не нагружал, но с darcs-ом повозился чуток.

T>Дык вот, он сильно по скорости svn сливает.
...
T>Так что есть куда копать.

darcs и svn — совершенно разные системы. Языки (и компиляторы) здесь — дело десятое.
Re[12]: [Haskell] Интервью с SPJ
От: Tonal- Россия www.promsoft.ru
Дата: 17.10.08 13:22
Оценка:
Здравствуйте, awson, Вы писали:
T>>Ну я сильо компилятор пока не нагружал, но с darcs-ом повозился чуток.
T>>Дык вот, он сильно по скорости svn сливает.
A>darcs и svn — совершенно разные системы. Языки (и компиляторы) здесь — дело десятое.
В чём же их коренное различие?
Сможешь внятно объяснить почему darcs record не влезло в память после примерно десятка минут, а svn ci и на больших объёмах вполне бодро отработывает?

Или нужно было сравнивать darcs с git-ом?
Думаешь git тоже будет тормозить и вылетать из пмяти?
Т.е. альтернатив svn-у на средних и больше объёмах нет?

П.С. Ну и если отмотать ветку, то вопрос на который я отвечал был зачем увеличивать мощьность машин.
... << RSDN@Home 1.2.0 alpha 4 rev. 0>>
Re[13]: [Haskell] Интервью с SPJ
От: awson  
Дата: 20.10.08 13:45
Оценка:
Здравствуйте, Tonal-, Вы писали:

A>>darcs и svn — совершенно разные системы. Языки (и компиляторы) здесь — дело десятое.

T>В чём же их коренное различие?
Как минимум, они относятся к совершенно разным классам — darcs — распределенная, в отличие от.

НО! Даже если сравнивать с другими распределенными системами, darcs основан на т.н. darcs theory of patches. Оно дает некоторые уникальные возможности, за которые *приходится платить*.

T>Сможешь внятно объяснить почему darcs record не влезло в память после примерно десятка минут, а svn ci и на больших объёмах вполне бодро отработывает?

Не смогу, потому что это может быть что угодно. Вплоть до ошибок в алгоритмах *реализации* (the darcs level — not the semantic level — в дискуссии по ссылке оно обсуждается) — а их немало. Но возможно, проблема и принипиальная — см. выше. С практической точки зрения при использовании darcs в *больших* проектах нужно принимать некоторые меры предосторожности.

T>Или нужно было сравнивать darcs с git-ом?

В общем, да. Но, опять-таки, см. выше.
Re[10]: [Haskell] Интервью с SPJ
От: BulatZiganshin  
Дата: 10.11.08 13:06
Оценка:
Здравствуйте, Курилка, Вы писали:

К>>>>Так вот хочется понять — где же такие задачи (которые сильно параллелить надо) возьмутся у обычных пользователей? Или же выйдет, что покупать будут лишь потому что круто?


BZ>>да хотя б чтоб хаскел этот сам по себе работал не медленней c#


К>эээ, он у тебя медленней шарпа работает?


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

кстати, NDP вошёл в ghc 6.10, правда вроде оно на alpha-стадии
Люди, я люблю вас! Будьте бдительны!!!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.