2010-12-27 5 views
2

필자는 Forth Mandelbrot 프랙탈 플로터를 작성했으며 기술적 인 연습만큼이나 병렬 처리로 속도를 높이려고합니다.Gforth 병렬 처리

당분간 내 코어 두 개를 사용할 수 있다면 행복 할 것입니다. 하나의 코어는 이미지의 절반을, 다른 하나는 다른 절반을 사용하면 행복 할 것입니다.

나는 Windows XP가 매우 행복하게 Gforth의 두 인스턴스를 관리하고 가능한 많은 프로세서 용량을 사용하려고하므로 두 프로세스 실행이 시작될 수 있음을 확인했습니다. 그러나 나는 그들이 메모리를 공유 할 수 있는지, 아니면 둘 다 동시에 파일에 쓸 수 있는지 (또는 파일의 시작 부분에서 x 바이트로 쓰는 방법을 한 프로세스에 알려주는 방법) 확신 할 수 없다.

요약하면 Windows XP에서 Gforth를 사용하여 병렬 처리를 수행 할 수 있습니까?

답변

0

GForth Pipes을 참조하십시오.

+0

아마도이 점이 제 이해에서 차이 일 수 있지만 파이프를 사용하면 어떻게 도움이됩니까? – sheepez

+0

@sheepez 실행중인 GForth에서 GForth 인스턴스를 생성하고 파이프와 연결하여 파이프를 통해 통신 할 수 있습니다. 따라서 신뢰성이 낮은 공유 메모리/파일 접근 방식을 피할 수 있습니다. –

+0

@ Vijay Mathew 지금까지 제 코드는 픽셀의 색상을 계산하고이를 비트 맵 파일에 씁니다. 내가 파이프를 유용하게 통합하는 방식을 바꿀 필요가 있을까? 일들을 동기화 된 상태로 유지하는 것이 까다로울 것입니다. – sheepez

2

각 프로그램에 단일 픽셀이 아닌 픽셀 격자를 만든 다음 끝에 다시 결합 할 수 있습니다.

AFAIK, Mandelbrot 세트의 픽셀은 서로 독립적입니다. (내가 틀렸다면 다른 사람이 나를 수정합니다.)하지만 각각의 계산이 비 결정적이어서 올바르게 병렬 처리하는 데 어려움이 있습니다. 중앙 파견 스레드 (다시 당신은 경합과 잠재적 인 문제로 실행).

+1

나는 픽셀의 독립성에 대해 당신이 맞다고 생각하지만, 그들이 어떻게 결정적이지 않은지 확실하지는 않습니다. 어쨌든 내가 gforth가 Windows에서 시스템 호출을 제대로하지 않는다고 말할 수있는만큼 나는 조금 붙어있다. – sheepez