최근에 내 ipcontroller/ipengine 클러스터링 프로그램을 래핑하기 위해 HTTP 서버 영역을 개발하고 싶습니다. 서버는 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 메서드를 호출하면 ipengine 각각에 "c"값이 생깁니다. 당신은 하나의 병렬 함수 호출 등의 작업을 표현할 수있는 경우에는 다른 요청 사이에 몰래 접근 할 수 없어 (엔진 전역을 터치 할 필요가 없다) 때문에