Re[3]: Симуляция на реактивных потоках
От: dsorokin Россия  
Дата: 10.01.17 05:12
Оценка: 103 (2)
Здравствуйте, C.A.B, Вы писали:

V>>Ну и при пошаговом исполнении можно юзать такой параметр как "время"...


CAB>О, это самое интересное. Параметр "время" можно юзать и без пошагового вычиления! Нужно только следить за согласованностью этого параметра с остальными параметрами модели, в то время как вычисления могут асинхронными.


При распараллеливании и/или создании распределенной имитации модельное время — это самый главный фактор. Возникает так называемый "парадокс времени", когда время входящего сообщения может оказаться меньше текущего модельного времени. С этим нужно как-то бороться. Для этого существуют "консервативные" и "оптимистичные" алгоритмы. Тут целая теория развита. На эту тему есть хорошая книга "Parallel and Distributed Simulation Systems" за авторством Richard M. Fujimoto.

Но как я написал выше, это мало связано с функциональным программированием в том смысле, что все это прекрасно сочетается вместе. Например, мне это удалось сделать в своей Айвике: http://hackage.haskell.org/packages/search?terms=aivika. Там есть и упомянутые потоки, и элементы FRP, и монады, и продолжения, и распределенность с параллельностью. Я реализовал оптимистичную стратегию деформации времени с одним известным алгоритмом синхронизации глобального модельного времени между "локальными процессами" узлов распределенного кластера. В общем, можно запускать полноценные дискретно-событийные имитационные модели на суперкомпьютере.

И добро пожаловать в клуб любителей моделирования!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.