Home
Objective Caml
ocaml@conference.jabber.ru
Вторник, 22 сентября 2009< ^ >
f[x] установил(а) тему: Камль -- http://caml.inria.fr | Логи -- http://chatlogs.jabber.ru/ocaml@conference.jabber.ru/ | Верблюды грязи не боятся! | release crap
Конфигурация комнаты

GMT+4
[00:36:51] sevenov вышел(а) из комнаты
[00:37:13] sevenov вошёл(а) в комнату
[00:37:34] sevenov вышел(а) из комнаты
[00:37:49] sevenov вошёл(а) в комнату
[01:34:28] john вышел(а) из комнаты
[01:34:49] john вошёл(а) в комнату
[01:38:14] Typhon вышел(а) из комнаты
[05:20:22] john вышел(а) из комнаты
[06:03:05] john вошёл(а) в комнату
[08:26:21] gds вышел(а) из комнаты
[08:54:41] gds вошёл(а) в комнату
[09:04:34] john вышел(а) из комнаты
[10:06:05] Typhon вошёл(а) в комнату
[10:57:11] f[x] вошёл(а) в комнату
[10:57:52] Mon вышел(а) из комнаты
[11:25:51] Mon вошёл(а) в комнату
[12:06:26] animist вошёл(а) в комнату
[12:35:24] <f[x]> А что есть для message passing? Достаточно локального и под nix. Какая-нибудь инфраструктура типа mpi только более легковесаня?
[12:35:51] <animist> локально или по сети?
[12:36:09] <animist> Кстати о mpi, он вполне себе удобен
[12:36:47] <gds> f[x]: jocaml может?
[12:37:32] <animist> mqueue, sockets, pipe
[12:37:56] <animist> + i/o multiplexing
[12:38:30] <f[x]> gds: jocaml не катит потому-что message passing нужен именно для распаралелливания
[12:38:46] <f[x]> animist: mpi не удобен
[12:39:47] <f[x]> я пробовал, во-первых завязка на сишную либу - лишняя трабла для deployment'а, во-вторых busy wait в idle состоянии - совершенно не нужен
[12:40:52] <f[x]> mqueue sockets etc это всё конечно хорошо, только я не хочу всё это руками делать, поэтому и спрашиваю :)
[12:41:25] <animist> f[x]: хм :)))
[12:41:45] <animist> используй силу copy/paste :)
[12:42:32] <f[x]> animist: copy откуда?
[12:42:57] <gds> f[x]: судя по http://jocaml.inria.fr/pub/joex/ray/client.ml + http://jocaml.inria.fr/pub/joex/ray/server.ml , jocaml используют как раз для параллельного вычисления.
[12:43:06] <animist> из любого серверного приложения, например nginx
[12:43:17] <f[x]> gds: concurrent!
[12:43:29] <f[x]> короче русским языком - много ядер
[12:43:53] <f[x]> animist: nginx давно на камле переписали?
[12:43:58] <f[x]> :)
[12:44:17] <gds> ну оно позволяет запустить несколько процессов. даже примере кода, в server.ml, можно заметить Unix.fork для этих целей.
[12:45:06] <f[x]> gds: угу, но это всё ручной management - jocaml ничего не предоставляет для межпроцессного взаимодействия afaik
[12:45:25] <animist> f[x]: нет, зато в камле С bindings великолепны :)
[12:46:07] <f[x]> т.е. я имею ввиду примитивы типы асинхронные message box'ы, регистрация участников, какой-нибудь fail management наверное
[12:46:49] <gds> f[x]: то самое join calculus, конструкции вида def, spawn, "&" -- оно имхо для того и нужно.
про fail management не знаю вот.
[12:47:04] <f[x]> gds: но это в рамках одного процесса ведь?
[12:47:20] <gds> как я понимаю -- нет.
[12:47:39] <f[x]> хм, тогда это интересней
[12:48:24] <gds> в server.ml найди "The distributed loop" и посмотри, вроде то что нужно.
[12:49:44] <f[x]> animist: мы наверное о разном говорим - epoll/libevent/equeue/etc - в камле уже есть. мне хочется "фреймворк" (который унутре будет исопльзовать всю эту асинхронную машинерию), а наружу будет торчать высокоуровневый интерфейс в терминах workers, message, etc. Соорудит нечто подобное сам я смогу, но прощупываю почву на предмет готового.
[12:50:01] <f[x]> * соорудить
[12:50:58] <f[x]> gds: ага, Join.Site.listen addr
[12:51:02] <f[x]> вот оно где
[12:51:19] <f[x]> таки придётся плотно читать егойный мануал :)
[12:51:40] <gds> я не брал jocaml по другим причинам (а именно, отсутствие vmthreads падвендой). на юниксах всё будет ок в пределах процесса (не будет сотни ОС-тредов).
[12:53:05] <gds> но всё же бывают случаи, когда алгоритмы с shared memory имеют меньшую O()-сложность. не message passing'ом единым.
[12:53:27] <animist> f[x]: понятно, я просто не уверен, что есть нечто готовое на сегодня, поэтому о "ручных" способах и говорил. По поводу jocaml, там тебе придётся всё равно процессы "руками" заводить, ибо автоматического распараллеливания по процессам в jocaml нет
[12:55:10] sevenov вышел(а) из комнаты
[12:56:11] <f[x]> угу, у меня процессинга много, а результатов мало, так что mp сгодится
[12:57:09] <f[x]> animist: угу, но с камлем в любом случае придётся руками процессы воркеров запускать
[12:57:52] sevenov вошёл(а) в комнату
[12:58:44] <animist> f[x]: а omp под caml ещё неспортировали?
[12:59:57] <f[x]> не встречалось
[13:00:23] <f[x]> думаешь это возможно без потрошения рантайма?
[13:01:46] <animist> f[x]: да, можно - лишь вопрос линковки с какой-нибудь libgomp. Напиши биндинг для openmp, это, насколько понимаю, решит твою задачу частично + для коммунити
[13:04:04] <f[x]> э, я с omp не работал, но насколько знаю - это способ разделения задач между многими потоками
[13:05:10] <f[x]> и требуется поддержка компилятора
[13:06:11] <f[x]> ну а потоки в камле инвалидные
[13:07:00] <animist> Да, некой одной задачи. Это конечно не чистый message passing, но при небольшой сноровке можно и mp организовать. gcc с 4.x включает поддержку omp.
[13:08:04] <f[x]> ну, в контексте камля думаю нужна поддержка со стороны ocamlc тоже (включая паралелльный рантайм)
[13:08:14] <f[x]> ocaml{c->opt)
[13:42:07] <gds> вообще, прикольно было бы сделать что-то типа фреймворка для параллельности. только так, чтобы падвенду можно было расширить это дело в будущем.
[16:45:59] Typhon вышел(а) из комнаты
[16:46:48] Typhon вошёл(а) в комнату
[16:51:38] laneli вошёл(а) в комнату
[17:30:55] gds вышел(а) из комнаты
[17:48:27] laneli вышел(а) из комнаты: *BYE*
[17:50:41] Typhon вышел(а) из комнаты
[17:51:28] Typhon вошёл(а) в комнату
[18:06:18] Mon вышел(а) из комнаты
[18:07:13] Mon вошёл(а) в комнату
[18:37:58] Typhon вышел(а) из комнаты
[18:38:03] Mon вышел(а) из комнаты
[18:38:07] Typhon вошёл(а) в комнату
[18:38:40] animist вышел(а) из комнаты
[18:40:00] animist вошёл(а) в комнату
[18:41:01] ermine вышел(а) из комнаты
[18:41:02] ermine вошёл(а) в комнату
[18:41:43] Mon вошёл(а) в комнату
[18:43:20] gds вошёл(а) в комнату
[18:58:03] sevenov вышел(а) из комнаты
[19:09:32] sevenov вошёл(а) в комнату
[19:20:05] f[x] вышел(а) из комнаты
[19:40:09] gds вышел(а) из комнаты
[19:40:38] gds вошёл(а) в комнату
[20:32:32] Typhon вышел(а) из комнаты
[21:27:29] sceptic вышел(а) из комнаты: Replaced by new connection
[21:27:33] sceptic вошёл(а) в комнату
[21:28:13] sceptic вышел(а) из комнаты
[21:28:18] sceptic вошёл(а) в комнату
[21:31:35] sevenov вышел(а) из комнаты
[21:31:52] sevenov вошёл(а) в комнату
[21:39:34] Typhon вошёл(а) в комнату
[21:44:45] ygrek вошёл(а) в комнату
[23:50:23] sevenov вышел(а) из комнаты
[23:50:41] sevenov вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!