A kernel for MIMD (Multiple Instruction Multiple Data) type parallel processing system is designed and implemented. The target system of the kernel is the hypercube computer system but can easily be modified to fit other MIMD parallel processors. The kernel separately runs on every node of the hypercube system and is composed of two parts: primitives and kernel server. The primitives are a set of procedures for node management, message passing, etc. The user processes can use these primitives through system calls. The kernel server interacts with the host to perform the functions such as new agent creation kill, and node status reporting. The basic design criteria for the kernel is to provide the services for more general applications of the hypercube system. For this purpose, we have implemented asynchronous communication between agents, which are the basic unit of distribution in our model. Also, an agent is designed to be able to have multiple processes within it so that the information exchanges between them can be very cost-effective. This method results in reduced communication cost if processes of common interest is grouped together within an agent.
일반적인 MIMD 병렬처리 시스템에 적합한 커널을 설계하고 구현하였다. 병렬처리를 위한 커널 구현에 직접적인 시스템은 하이퍼큐브 컴퓨터 시스템이지만 다른 MIMD 병렬처리 시스템에 적합하도록 쉽게 수정할 수 있다. 구현된 커널은 하이퍼큐브 컴퓨터 시스템의 각각에 노드에서 독립적으로 수행되며 커널 primitives와 커널 server 두 부분으로 구성되어있다. primitives은 메세지 페싱, 프로쎄스 관리 그리고 메모리 관리 등을 위한 프로씨저들의 집합이다. 사용자 프로쎄스들은 시스템 콜을 통하여 이들 프리미티브들을 사용할 수 있다. 커널 서어버는 agent을 생성하고 소멸 시키며 노드의 상태를 알려 주는 기능들을 하기위하여 호스트와 연결 하는 일을 담당한다. 본 커널의 기본적인 설계 기준은 하이퍼큐브 컴퓨터 시스템 상에서 좀 더 일반적인 응용 분야를 위한 서어비스를 제공하는 것이다. 이러한 목적을 위하여 본 모델에서 분산에 기본 단위인 agent들 간에 비동기 통신을 구현하였다. 또한 한 agent 내에 다수의 프로쎄스들을 보유하게 함으로써 이들 프로쎄스들 간에 정보의 교환을 용이하게 하였다. 이러한 방법들을 이용하여 만약 공통에 데이타를 갖는 프로쎄스들이 있다면 한 agent 내에 함께 모아놈으로써 통신에 단가를 줄였다.