2012-02-13 3 views
3

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

Пример:

(do-stuff (f1 x) (f2 x)) 

будет оценивать к

(do-stuff res1 (f2 x)) 

в первом процессе. Этот процесс проходит выражение в виде строки в другой процесс (на другой узел), который будет оценивать его

(do-stuff res1 res2) 

идей является сделать карту уменьшить распределение работы в стиле, но при пропускании схемы выражения вокруг. Это возможно? Любые указатели были бы полезны. (Я использую IronScheme btw).

+0

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

+2

Это может быть вопрос, связанный с реализацией. Racket имеет свои библиотеки 'futures' и' places', которые применяются. Вы можете найти введение в разделе 18.10 и 18.11: http://docs.racket-lang.org/guide/performance.html#(part._effective-futures) К сожалению, я недостаточно знаком с миром IronScheme но указать эквивалентные библиотеки. – dyoo

+0

Вы можете использовать 'delay' и' force', но, как сказал @larsmans, понятия не имею, что вы имеете в виду здесь. 'do-stuff' делает несколько вещей здесь, что запутывает/неоднозначно. – leppie

ответ

0

Это не реальный ответ, а всего лишь намек.

Вы пробовали с продолжением? Here

Я думаю, что может делать то, что вам нужно.

1

Как Aslan986 предложил вам полную поддержку для продолжения. К сожалению, Ironscheme не поддерживает полные продолжения, а только обеспечивает продолжение продолжений, которые идут в стек вызовов. См. known limitations Ironscheme. Кроме того, вам нужно сериализовать продолжения, чтобы иметь возможность передавать их из одного процесса в другой. В общем, это не всегда возможно, и лишь немногие системы Scheme поддерживают это. Одним из примеров является Gambit-C. Существует презентация, в которой показано, как реализовать систему distributed computing.

Смежные вопросы