OC4MC : OCaml for Multicore architectures
От: FR  
Дата: 24.09.09 16:55
Оценка: 32 (5)
Наконец то вышел альтернативный multicore вариант runtime для OCaml.

http://www.algo-prog.info/ocmc/web/
http://groups.google.com/group/fa.caml/browse_thread/thread/19a97f2b6e9812c4#

Правда пока это больше похоже на демку, работает только под Linux/AMD64 но есть надежда что станет базовым для OCaml'а.
Re[7]: OC4MC : OCaml for Multicore architectures
От: Prikrutil  
Дата: 28.09.09 17:41
Оценка: 14 (1)
FR>Тут не понял разве HLVM это реализация OCaml под llvm?
FR>Мне показалось что это просто еще один биндинг к llvm.

HLVM (High Level Virtual Machine), это альтернативный рунтайм для ML языков к-й юзает LLVM для кодогенерации. Автор периодически пишет о нем на reddit (ник jdh30), но пока проект похоже слегка заморожен (если я все правильно понял) Я точно где-то читал, что автор считает конкуррентный GC одной из главных задач проекта.

Что из этого выйдет — неизвестно.
Re: OC4MC : OCaml for Multicore architectures
От: vshabanov http://vshabanov-ru.blogspot.com
Дата: 27.09.09 10:26
Оценка: 7 (1)
Здравствуйте, FR, Вы писали:

FR>Наконец то вышел альтернативный multicore вариант runtime для OCaml.


FR>http://www.algo-prog.info/ocmc/web/

FR>http://groups.google.com/group/fa.caml/browse_thread/thread/19a97f2b6e9812c4#

FR>Правда пока это больше похоже на демку, работает только под Linux/AMD64 но есть надежда что станет базовым для OCaml'а.


Очень уж у него сборщик мусора хреновый. Ксавье, собственно, об этом и написал. Этот single generation stop&copy сдохнет на больших объемах данных.

И опять же проблема библиотек -- у кемла очень хреновый FFI: из Си идет работа с кемловскими значениями напрямую, оно конечно попроще в реализации и, возможно, шустрее, но серьезные изменения в рантайме уже затруднены. Так что я подозреваю, что multicore OCaml-а вообще никогда не появится. Кстати, Damien Doligez (который написал окемловский GC) еще году в 95-м защитил диссер по multicore CG, однако в кемл его так и не вставили.
Re[5]: OC4MC : OCaml for Multicore architectures
От: Prikrutil  
Дата: 28.09.09 16:12
Оценка: 7 (1)
Здравствуйте, FR, Вы писали:

FR>А перелопачивать компилер рано или поздно придется, может вообще лучший вариант будет перевести его на llvm например, многое упростится.


Работы уже ведутся: http://hlvm.forge.ocamlcore.org/ Даже обещается конкуррентный GC.

Над HLVM'ом пока работает один человек — Jon Harrop — к-й похоже вынужден был временно приостановить работу:

That would beat the performance of F# with minimal effort. That was the goal
of my HLVM hobby project but I was forced to shelve it when the recession
hit. Hopefully I'll get back to it in 2010...
Отсюда
Re[2]: OC4MC : OCaml for Multicore architectures
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 27.09.09 06:08
Оценка: +1
Здравствуйте, FR, Вы писали:

FR>Базовым стать пока похоже не светит


Ну у авторов окамла всю дорогу была позиция, что параллелизм надо делать на уровне процессов и сообщений, а shared memory — зло.
Re[4]: OC4MC : OCaml for Multicore architectures
От: FR  
Дата: 27.09.09 13:09
Оценка: +1
Здравствуйте, vshabanov, Вы писали:

V>Я что-то не стал ждать и перешел на хаскелл Над кемлом работает 0.5 человека, так что кемл скорее мертв, чем жив. К тому же у кемла уже набралась критическая масса, когда для дальнейшего расширения надо серьезно перелопачивать компилер (менять алгоритм проверки типов), а ресурсов на это у INRIA нет, им важнее теоремы доказывать и сертифицированные компилеры делать.


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

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

FR>>Насчет FFI вроде ничего там такого мешающего нет, вся работа со значениями идет через стандартные макросы.


V>Уж не помню, но что-то тот же Ксавье говорил по этому поводу, что не так легко оно все получится. Есть еще всякие блокирующие/небликирующие вызовы (leave/enter_blocking_section), многие библиотеки делались с расчетом на то, что кемл всегда работает в одной нити. В общем legacy там порядочно.


Понятно что legacy есть, но все же решаемо, конечно нужны ресурсы.

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


В хаскеле FFI я только мельком глянул, мне он тоже показался более внятным.

FR>>Как пример в том же питоне такой же корявый FFI и ничего пережил уже пару серьезных перетрясок рантайма.


V>Ну, думаю, что параллельный сборщик мусора к питону запросто не добавить Да и вроде питон тоже всегда в одной нити работает?


Угу там практически та же проблема, но не та
Там GC это счетчик ссылок + разруливатель циклов, это по моему гораздо сложнее эффективно распараллеить чем полноценный GC кэмла.
Re: OC4MC : OCaml for Multicore architectures
От: dr.Chaos Россия Украшения HandMade
Дата: 25.09.09 14:21
Оценка:
Здравствуйте, FR, Вы писали:

FR>Правда пока это больше похоже на демку, работает только под Linux/AMD64 но есть надежда что станет базовым для OCaml'а.


Интересно, когда его портируют на AIX платформу...
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[2]: OC4MC : OCaml for Multicore architectures
От: FR  
Дата: 25.09.09 14:31
Оценка:
Здравствуйте, dr.Chaos, Вы писали:

DC>Интересно, когда его портируют на AIX платформу...


Для начала хотя бы на x86 бы портировали
Re: OC4MC : OCaml for Multicore architectures
От: FR  
Дата: 25.09.09 16:28
Оценка:
Базовым стать пока похоже не светит http://groups.google.com/group/fa.caml/msg/010b47f6647997be
Re[2]: OC4MC : OCaml for Multicore architectures
От: FR  
Дата: 27.09.09 12:02
Оценка:
Здравствуйте, vshabanov, Вы писали:

V>Очень уж у него сборщик мусора хреновый. Ксавье, собственно, об этом и написал. Этот single generation stop&copy сдохнет на больших объемах данных.


Угу, но была надежда что расшевелятся французы

V>И опять же проблема библиотек -- у кемла очень хреновый FFI: из Си идет работа с кемловскими значениями напрямую, оно конечно попроще в реализации и, возможно, шустрее, но серьезные изменения в рантайме уже затруднены. Так что я подозреваю, что multicore OCaml-а вообще никогда не появится. Кстати, Damien Doligez (который написал окемловский GC) еще году в 95-м защитил диссер по multicore CG, однако в кемл его так и не вставили.


Насчет FFI вроде ничего там такого мешающего нет, вся работа со значениями идет через стандартные макросы.
Как пример в том же питоне такой же корявый FFI и ничего пережил уже пару серьезных перетрясок рантайма.
Re[3]: OC4MC : OCaml for Multicore architectures
От: vshabanov http://vshabanov-ru.blogspot.com
Дата: 27.09.09 12:35
Оценка:
Здравствуйте, FR, Вы писали:

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


V>>Очень уж у него сборщик мусора хреновый. Ксавье, собственно, об этом и написал. Этот single generation stop&copy сдохнет на больших объемах данных.


FR>Угу, но была надежда что расшевелятся французы


Я что-то не стал ждать и перешел на хаскелл Над кемлом работает 0.5 человека, так что кемл скорее мертв, чем жив. К тому же у кемла уже набралась критическая масса, когда для дальнейшего расширения надо серьезно перелопачивать компилер (менять алгоритм проверки типов), а ресурсов на это у INRIA нет, им важнее теоремы доказывать и сертифицированные компилеры делать.

V>>И опять же проблема библиотек -- у кемла очень хреновый FFI: из Си идет работа с кемловскими значениями напрямую, оно конечно попроще в реализации и, возможно, шустрее, но серьезные изменения в рантайме уже затруднены. Так что я подозреваю, что multicore OCaml-а вообще никогда не появится. Кстати, Damien Doligez (который написал окемловский GC) еще году в 95-м защитил диссер по multicore CG, однако в кемл его так и не вставили.


FR>Насчет FFI вроде ничего там такого мешающего нет, вся работа со значениями идет через стандартные макросы.


Уж не помню, но что-то тот же Ксавье говорил по этому поводу, что не так легко оно все получится. Есть еще всякие блокирующие/небликирующие вызовы (leave/enter_blocking_section), многие библиотеки делались с расчетом на то, что кемл всегда работает в одной нити. В общем legacy там порядочно. В хаскеле как-то все сильно проще получилось, из-за того, что в Си там особо рантайм не подергаешь, ничего привязанного к рантайму и нет.

FR>Как пример в том же питоне такой же корявый FFI и ничего пережил уже пару серьезных перетрясок рантайма.


Ну, думаю, что параллельный сборщик мусора к питону запросто не добавить Да и вроде питон тоже всегда в одной нити работает?
Re[6]: OC4MC : OCaml for Multicore architectures
От: Prikrutil  
Дата: 28.09.09 16:25
Оценка:
Некоторое время назад, спрашивал на StackOverflow про будущее concurrency в Ocaml, здесь краткое summary по вопросу:

http://stackoverflow.com/questions/1302272/is-inria-going-to-add-concurrency-primitives-to-ocaml
Re[6]: OC4MC : OCaml for Multicore architectures
От: FR  
Дата: 28.09.09 17:12
Оценка:
Здравствуйте, Prikrutil, Вы писали:


P>Над HLVM'ом пока работает один человек — Jon Harrop — к-й похоже вынужден был временно приостановить работу:


Тут не понял разве HLVM это реализация OCaml под llvm?
Мне показалось что это просто еще один биндинг к llvm.
Re[4]: OC4MC : OCaml for Multicore architectures
От: Prikrutil  
Дата: 28.09.09 17:43
Оценка:
V>Уж не помню, но что-то тот же Ксавье говорил по этому поводу, что не так легко оно все получится.
Похоже, речь об этом: http://caml.inria.fr/pub/ml-archives/caml-list/2002/11/64c14acb90cb14bedb2cacb73338fb15.en.html
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.