Недавно я хотел разработать границу HTTP-сервера для переноса моей кластерной программы ipcontroller/ipengine. Сервер является простым производным от BaseHTTPServer. Когда сервер получает запрос HTTP Get, его метод do_GET вызывает несколько методов mec.execute() для завершения задания. Вот пример кода.Проблема синхронизации в параллельных вычислениях IPython
do_GET
{
b = parameter
mec.scatter("a", b)
mec.execute("c=fun(a)")
d = mec.gather("c")
write d
}
Я столкнулся с проблемой синхронизации в инструкции mec.execute ("c = fun (a)")? Из моего предположения, переменная «c» будет создана на каждом ipengie со значением «fun (a)». Если два потока вызовут метод do_Get одновременно с другим параметром, каково будет значение «c» на каждом из ipengine.