Mistakes(bugs) are found in a computer program for many reasons. They are classified as syntactic errors, logical errors, algorithmic errors. The program in the parallel computer has more increased complexity and this increased complexity makes debugging a parallel program more difficult than debugging a sequential program. Using a debugger, a programmer can easily locate, analyze, correct suspected errors. Therefore we implement the debugger for KAICUBE II hypercube computer. Our debugger consists of Host debugger and Node debugger. This thesis describes the implementation of Node debugger for KAICUBE II. The requirements for debugging a parallel program are examining and changing the distributed data, finding lost messages and other message related bugs, and controlling multiple independent processes. Our Node debugger satisfies these requirements of a parallel debugger. Compared with other commercial hypercube debugger, our Node debugger is as good as others on the whole. And our Node debugger can suspend a individual debugged process or continue a individual debugged process. This point is superior to others.
컴퓨터 프로그램에서 에러는 여러가지 이유로 발생한다. 그 에러를 분류해 보면, 의미론적인 에러, 논리적인 에러, 알고리즘 에러로 분류해 볼 수 있다. 병렬 컴퓨터에서 실행되는 병렬 프로그램은 기존의 직렬 프로그램 보다 더 복잡하다. 이 복잡함 때문에 병렬 프로그램을 디버깅하는 것은 직렬 프로그램을 디버깅하는 것보다 어렵다. 디버거를 사용하면, 프로그래머는 의심스러운 에러를 쉽게 발견할 수있고, 에러 요인을 분석할 수 있고, 또한, 고칠 수 있다. 그래서 우리는 KAICUBE II 하이퍼큐브 컴퓨터를 위한 디버거를 구현했다. 이 디버거는 호스트 디버거와 노드디버거로 구성되어 있는 데, 이 논문에서는 이 노드 디버거 구현을 설명한다. 병렬 프로그램을 디버깅하기 위한 요구 사항은 분산된 데이터의 내용을 보거나, 내용을 고칠 수 있어야하고, 손실 된 메세지를 발견할 수 있거나 또는 메세지 관련 된 에러를 발견할 수 있어야 한다. 또한, 여러개의 프로세스들을 관리할 수 있어야 한다. 우리의 노드 디버거는 이러한 병렬 디버거의 요구 사항을 만족한다. 하이퍼큐브 컴퓨터를 위한 기존의 상용 디버거들과 기능을 비교해 보았을 때, 우리의 노드 디버거는 th允섭? 기존의 것과 대등한 기능을 보유한다. 더우기, 우리의 노드 디버거가 개개의 디버깅되는 프로세스의 동작 상태를 멈추게 하거나 계속하게 할 수 있다는 점은 기존의 디버거에 비해 우수하다.