The message-passing interface(MPI) is a world-widely used program library for parallel processing on conventional networked computers. In this thesis, it is studied to port the MPI on a distributed shared memory computer(DSM), KAICUBE/Hanbit2. The KAICUBE/Hanbit2 is a hardware supported DSM computer running onthe windows NT operating system.
Two policies for porting the message passing interface are implemented on the KAICUBE/Hanbit2. The polling policy of PRISM which is the DSM plug-in board for the KAICUBE/Hanbit2, transfers header and actual data through shared memory and polls shared memory to indicate whether messages are received or not. The hybrid policy transfers header through TCP/IP protocol and actual data through shared memory. The shared memory manager and task manager are implemented to support the MPI and shared memory environments. The shared memory manager allocates/deallocates shared memory distributed on the PRISM card of each node to application programs and the task manager allocates/deallocates both MPI and shared memory programs to each node.
The message-passing implementation on the KAICUBE/Hanbit2 has several advantages: First, it makes our machine be more efficient for message-passing communication than traditional message-passing systems. This mechanism exhibits low-overhead communication latency for interprocessor message-passing because it does not use interrupt for message dispatching and delivery in an operating system. In addition, the shared memory regions other than those for queue for message-passing are used for shared memory programs. Second, it will be accomplished without changing the hardware layer of the KAICUBE/Hanbit2. Unlike traditional methods, our implementation performs queue or buffer management at user-level without a special message-passing processor. Third, both message-passing and shared memory application programs can be executed on the KAICUBE/Hanbit2.
We execute both message-passing and shared memory application programs on the KAICUBE/Hanbit2 and can know that user-level message-passing has an advantage of low-overhead communication where traditional message-passing system is less efficient.
메시지 전달 인터페이스는 기존의 컴퓨터를 네트워크로 연결시켜서 메시지 전달 프로그래밍을 할 수 있는 라이브리이다. 이 논문에서는 분산 공유 메모리 시스템인 KAICUBE/Hanbit2 상에 메시지 전달 시스템을 구현하는 것에 연구를 한다. 이 Hanbit2 시스템은 windows NT 운영체제를 수행시키는 분산 공유 메모리 시스템이다. 분산 공유 메모리 시스템 상에 메시지 전달 인터페이스를 이식하는 두가지 방식이 있다. Hanbit2 시스템을 위한 플러그 인(plug-in) 보드 상에 있는 공유 메모리를 폴링(polling)하는 방식은 공유 메모리를 통해서 헤더와 데이터를 전송하고 메시지가 도착했는 지를 알기 위해서 공유 메모리를 폴링하는 방식이다. 하이브리드(hybrid) 방식은 헤더는 TCP/IP 통신방식을 통해서 전송하고 데이터는 공유 메모리를 통해서 전송하는 방식이다. 메시지 전달 인터페이스와 공유 메모리 환경을 함께 지원해주기 위해서 공유 메모리 관리자와 일 관리자가 구현된다. 이 공유 메모리 관리자는 각 노드에 분산되어 있는 공유 메모리를 할당 또는 제거하는 역할을 하고 일 관리자는 메시지 전달 인터페이스 프로그램과 공유 메모리 프로그램을 각각의 노드에 할당해주는 역할을 한다. Hanbit2상에 메시지 전달 인터페이스의 이식은 다음과 같은 장점을 가진다. 첫째, 기존의 메시지 전달 시스템보다 메시지 전달 통신이 더욱 효율적이다. 이 구현된 시스템은 메시지 전달시 인터럽터를 사용하지 않고 운영체제에 의한 메시지 전송이 일어나지 않기 때문에 프로세서의 상호 통신시 작은 부하의 통신량을 가진다. 둘째, Hanbit2의 하드웨어 층을 고치지 않아도 메시지 전달 시스템의 구현이 가능하다. 기존의 메시지 전달 시스템의 구현 방법과 달리 특별한 메시지 전달 프로세서 없이 사용자 레벨에서 버퍼 관리를 한다. 셋째, 메시지 전달 응용 프로그램과 공유 메모리 응용 프로그램이 Hanbit2 시스템 상에 수행될 수 있다.