KR100843761B1 - 수정된 홀 펀칭을 통해 그리드 환경에서 사설 ip를지원하는 시스템 수준의 mpi 통신방법 - Google Patents

수정된 홀 펀칭을 통해 그리드 환경에서 사설 ip를지원하는 시스템 수준의 mpi 통신방법 Download PDF

Info

Publication number
KR100843761B1
KR100843761B1 KR1020060133821A KR20060133821A KR100843761B1 KR 100843761 B1 KR100843761 B1 KR 100843761B1 KR 1020060133821 A KR1020060133821 A KR 1020060133821A KR 20060133821 A KR20060133821 A KR 20060133821A KR 100843761 B1 KR100843761 B1 KR 100843761B1
Authority
KR
South Korea
Prior art keywords
mpi
private
program
cluster
public
Prior art date
Application number
KR1020060133821A
Other languages
English (en)
Other versions
KR20080059900A (ko
Inventor
권오경
조인순
이종숙
한혁
염현영
Original Assignee
한국과학기술정보연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술정보연구원 filed Critical 한국과학기술정보연구원
Priority to KR1020060133821A priority Critical patent/KR100843761B1/ko
Publication of KR20080059900A publication Critical patent/KR20080059900A/ko
Application granted granted Critical
Publication of KR100843761B1 publication Critical patent/KR100843761B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 대표적인 그리드 미들웨어(Grid Middleware)인 글로버스(Globus)상에서 수행되는 MPI(Message Passing Interface) 프로그램의 통신방법에 관한 것으로, 보다 구체적으로는 사설 IP 클러스터를 포함한 그리드 환경에서 MPI 통신을 수행하는데 홀 펀칭(Hole Punching)을 적용하여 보다 개선된 방식의 통신중계방법을 개시한다.
본 발명의 통신중계방법에 의하면, 사설 IP클러스터에서 수행되는 MPI 프로그램과 통신할 수 있을 뿐만 아니라, 이러한 통신이 신속하고 안정적으로 이루어질 수 있고 클러스터 환경에 구애받지 않고 MPI 프로그램을 수행할 수 있어, 사설 IP 클러스터도 MPI 작업에 포함시킬 수 있으므로 기존에는 제외되었던 많은 사설 IP 클러스터들을 그리드 환경에 포함시킴으로써 좀더 풍부한 컴퓨팅 환경을 구성할 수 있기 때문에 가용한 자원의 범위를 확대시킬 수 있는 동시에, 사설 IP 클러스터의 사용으로 인해 발생하는 성능의 저하도 최소화해서 공인 IP 클러스터만을 사용하는 경우와 비교해서 거의 차이가 없는 작업 성능을 제공할 수 있다.
Figure R1020060133821
그리드, MPI, 사설 IP, 네트워크 주소 변환, 홀 펀칭

Description

수정된 홀 펀칭을 통해 그리드 환경에서 사설 IP를 지원하는 시스템 수준의 MPI 통신방법{A Private-IP-enabled MPI communication method in system level over Grid environments through revised Hole Punching}
도 1은 종래에 알려진 별도의 프로그램을 사용하여 사설 IP 클러스터에서 실행되는 프로그램간의 통신을 중계하는 방법.
도 2는 종래에 알려진 홀 펀칭을 사용하여 사설 IP 클러스터에서 실행되는 프로그램간의 통신을 중계하는 방법.
도 3은 사설 IP 클러스터만으로 구성된 컴퓨팅 환경의 구성도.
도 4는 도3과 같은 컴퓨팅 환경에서 별도의 응용 프로그램을 사용하여 각 사설 IP 클러스터에서 실행되는 MPI 프로그램간의 통신을 중계하는 방법의 모식도.
도 5는 도3과 같은 컴퓨팅 환경에서 본 발명의 바람직한 일 실시예를 사용하여 사설 IP 클러스터에서 실행되는 MPI 프로그램간의 통신을 중계하는 방법의 모식도.
도 6은 사설 IP클러스터가 포함된 그리드 환경과 공인 IP 클러스터만을 포함한 그리드 환경에서 다양한 메시지 크기에 대해서 소요되는 시간을 측정한 결과를 각각 도시한 그래프.
도 7은 사설 IP클러스터가 포함된 그리드 환경과 공인 IP 클러스터만을 포함 한 그리드 환경에서 다양한 메시지 크기에 대해서 각각 소요되는 시간의 비를 나타낸 막대그래프.
본 발명은 네트워크로 연결된 다수의 컴퓨팅 자원으로 구성되는 그리드 환경즉 대표적인 그리드 미들웨어(Grid Middleware)인 글로버스(Globus)상에서, 사설 IP 클러스터를 포함하여 MPI(Message Passing Interface)프로그램을 수행시킬 수 있도록 하는 통신방법에 관한 것이다.
그리드미들웨어는 지역적으로 광범위하게 분산되어 있는 처리 장치(CPU), 데이터베이스, 파일 저장 장치(File Storage)등 다수의 컴퓨팅 자원을 네트워크로 연결하여, 사용자의 위치에 상관없이 어디서나 접근해서 사용할 수 있도록 하는 컴퓨팅 기반구조 환경이며, 실제로 이러한 환경을 구축하기 위해 사용되는 대표적인 미들웨어 중의 하나가 글로버스이다.
일반적으로 글로버스 상에서 처리되는 작업들은 단일 시스템으로는 처리하기 어려운 것들, 즉 고도의 처리 능력을 필요로 하거나 단일 시스템으로 처리하면 너무 오랜 시간이 소요되는 작업이다. 이러한 작업들을 그리드에 속한 다수의 컴퓨팅 자원들을 활용하여 처리함으로써 처리 효율을 높이고 처리 시간을 단축시킬 수 있는 것이다. 보통 그리드 위에서 수행되는 작업들은 하나의 작업이 여러 개로 나뉘어 다수의 시스템에서 실행된다. 따라서 같은 작업에 속한 시스템 간에 통신할 수 있는 방법이 필요하고, 이를 위해 MPI가 사용되는데, MPI는 병렬 응용 프로그램을 수행하는 프로그램 간에 메시지를 주고받을 수 있는 표준적인 인터페이스로서 글로버스 상에서 수행하는 대표적인 분산 병렬 처리 프로그램이다.
그리드 사용자들은 그리드에 속한 각종 컴퓨팅 자원을 사용해서 작업을 수행할 수 있으므로, 가능한 한 많은 자원들을 그리드 자원으로 통합시킨다면 더욱 풍부한 컴퓨팅 환경을 제공할 수 있을 것이다. 그러나 기존의 글로버스에서는 그리드 자원을 IP를 사용해서 구별하기 때문에 사설 IP를 가진 시스템에 속한 자원들은 그리드 자원으로 포함시킬 수가 없었고, 글로버스를 기반으로 수행되는 MPI 프로그램들도 이러한 자원들을 사용할 수가 없었다.
즉 글로버스는 IP를 가지고 네트워크를 이루는 각각의 그리드 자원들을 구별하기 때문에, 전 세계 어디서나 접근할 수 있도록 하기 위해서는 각각의 그리드 자원이 속한 시스템이 공인 IP를 가지고 있어야 한다. 따라서 MPI 프로그램을 수행하는 각각의 시스템 역시 공인 IP를 가지고 있어야 무리 없는 통신이 가능하므로, 사설 IP(Private IP)를 가진 시스템들로 구성된 사설 IP 클러스터에서는 MPI 프로그램을 수행할 수 없다는 제약점이 있었다. 사설 IP 클러스터를 이용하면 공인 IP의 낭비를 줄일 수 있을 뿐만 아니라 보안상의 위험도 줄일 수 있으므로, 사설 IP 클러스터를 포함하더라도 프로그램 사이의 통신을 수행할 수 있는 방법에 대한 연구가 계속되었다.
일반적으로 하나의 클러스터는 작업을 수행하는 계산 노드(Compute Node)와 이러한 계산 노드들을 관리하는 관리 노드(Head Node)로 구성되는데,MPI를 사용해 작업을 수행할 수 있도록 하려면 계산 노드와 관리 노드 모두에 공인 IP를 할당해야 한다. 그러나 이러한 방식으로 클러스터를 구성하는 경우, 계산 노드의 수에 비례하여 필요한 공인 IP의 수도 늘어나는데 공인 IP는 매우 희소한 자원이기 때문에 충분히 확보하기가 어렵다는 문제점이 있으며 외부에서 직접 계산 노드에 접근할 수 있기 때문에 보안의 측면에서도 위험의 소지가 높다. 따라서 현재 존재하는 대부분의 클러스터들은 관리 노드에만 공인 IP를 할당하고 나머지 계산 노드에는 사설 IP를 할당하는 방식을 사용하고 있다. 따라서 기존의 사설 IP 클러스터 자원을 활용하기 위해서는 사설 IP 클러스터에 속한 MPI 프로그램과 통신할 수 있는 방법이 반드시 필요하다.
사설 IP를 가진 시스템과의 통신 문제는 MPI 프로그램뿐만 아니라, P2P, 게임 등과 같은 다양한 종류의 프로그램에서 문제가 되어 왔으며, 해결 방법으로 제시된 것이 중계이다. 즉 사설 IP를 가진 시스템이 수신자라면 송신자와 수신자 사이에 중계 시스템(공인 IP를 할당받은 시스템)이 존재해서 송신자가 중계자에게 전송하면, 중계자가 원래의 수신자에게 전달하는 방식을 취하게 된다. 이러한 중계는 두 가지 방법이 있는데 별도의 응용 프로그램을 통한 사용자 수준의 방법과 게이트웨이나 NAT 같은 시스템 수준의 방법이 있다.
먼저, 사용자 수준의 중계는 별도의 프로그램을 사용하여, 사설 IP 클러스터 내부의 시스템들과 외부와의 통신을 중개하는 방법이다. 이러한 중계 프로그램은 공인 IP를 할당받은 시스템에서 실행하고 시스템의 주소는 미리 알려져 있으므로 어떤 시스템이라도 접근해서 메시지 중계를 요청할 수 있다. 또한 중계 프로그램을 실행하는 시스템은 이러한 중계 프로그램을 사용하는 모든 사설 IP 클러스터에 접근할 수 있다.
예를 들어 도 1에 도시된 바와 같이, 서로 다른 사설 IP 클러스터에 속한 HostA와 HostB, 그리고 중계 프로그램을 실행하고 있는 HostS가 있을 때, HostA가 HostB와의 통신을 원한다면 HostS를 이용하게 된다. 즉, HostB의 IP로는 연결이 안되므로, HostS에게 메시지를 전송해서 HostB로의 중계를 요청한다. HostS는 HostB가 속한 사설 IP 클러스터에 접근할 수 있으므로, HostB에게 HostA가 보낸 메시지를 전달하게 된다. HostB가 HostA와의 통신을 원하는 경우는 반대의 과정이 이루어진다.
이러한 사용자 수준 중계의 경우, 구현이 간단하고, 중계 프로그램을 실행시킬 시스템만 있다면 어떤 메시지도 중계가 가능하다는 장점이 있다. 그러나 원래는 수신자에게 직접 전달되었어야 할 메시지가 중간에 별도의 프로그램을 한 번 더 거쳐 전달되기 때문에 전송 시간이 길어지고, 중계 프로그램이 클러스터간의 통신에 커다란 영향을 미치게 된다는 문제점이 있다. 다시 말해, 클러스터 내부로 향하는 모든 통신이 상기 프로그램을 거치게 되기 때문에, 통신량이 많아지는 경우 상기 프로그램이 이를 적절히 처리하지 못한다면 엄청난 통신 지연으로 이어질 수 있고, 중계 프로그램에 문제가 발생해서 동작하지 않는다면 클러스터 내부와의 통신이 완전히 중단되는 문제점이 존재하고 있었다.
다음으로, 시스템 수준의 중계는 프로그램이 아니라 시스템 수준에서 메시지 중계 기능을 제공하는 방법으로서, 가장 대표적인 방법은 NAT(Network Address Translator)의 기능을 이용하는 것이다.
NAT는 IP 고갈을 완화하기 위한 방법 중의 한 가지로서, 사설 네트워크(Private Network)를 글로벌 네트워크(Global Network)로 사용할 수 있게 해주는 주소 변환 기능이다. 즉 인터넷의 공인 IP는 한정되어 있기 때문에 가급적 이를 공유할 수 있도록 하는 방법이 필요한데, 평상시에는 사설 IP를 사용하다가 필요한 경우에만 NAT를 이용해서 사설 IP를 공인 IP로 변환해서 사용함으로써 공인 IP를 공유할 수 있게 되는 것이다. 실제로 사설 IP 클러스터 안의 시스템들은 일반적인 경우에는 사설 IP를 사용하여 통신하다가, 글로벌 네트워크에 접속할 필요가 생길 때, NAT를 통해 자신의 사설 IP를 NAT가 미리 확보하고 있던 공인 IP 중 하나로 변환시킴으로써, 사설 네트워크의 상태를 유지하면서 글로벌 네트워크와도 통신할 수 있는 방법을 제공받는 것이다.
이와 같은 시스템 수준의 중계는 구현하기가 어려우며, 시스템에 따라 구현이 달라질 수 있어서 이식성(Portability)이 좋지 않다는 문제점이 있다. 즉 사용자 수준 중계의 장점이 제공되지 않는다. 그러나 시스템 수준의 중계를 사용할 수만 있다면, 시스템 수준에서 바로 메시지가 전달되기 때문에 별도의 전송 지연이 없고, 통신량의 변화에도 적절히 대응할 수 있다는 장점이 있다. 다시 말하면 통신량이 많아져도 시스템 수준에서 처리하게 되기 때문에 훨씬 유연하게 대처할 수 있고, 시스템에 문제가 발생할 가능성은 프로그램에 문제가 발생할 가능성보다는 훨씬 적기 때문에 안정적인 중계가 이루어질 수 있다.
따라서, 시스템 수준의 중계가 훨씬 좋은 성능을 보여줄 수 있음에도 불구하 고 기피되었던 이유는 구현이 어렵고 이식성이 떨어졌기 때문이었는데, 근래에 이러한 문제점을 해결한 시스템 수준의 중계 방법인 홀 펀칭(Hole Punching)이 제안되었다.
홀 펀칭은 단순히 NAT를 이용하는 것보다 훨씬 적극적인 방법의 시스템 수준 중계이다. 앞에서 언급한 NAT를 이용하는 시스템 수준의 중계는 사설 IP 클러스터 내부의 시스템에서 시작된 연결에 대해서만 유효하다. 일반적으로 NAT는 클러스터 내부로부터의 요청은 허용해도, 외부로부터의 연결 요청은 무시하기 때문이다. 그러나 홀 펀칭을 이용하면 외부 시스템들도 클러스터 내부의 시스템에 바로 접근할 수 있다.
우선 홀 펀칭을 위해서는 각 사설 IP 클러스터에 속한 시스템들의 주소를 관리하는 주소 서버(Address Server)가 존재해야 하며, 이 서버는 공인 IP를 할당받은 시스템에서 작동되고, 이 시스템의 주소는 미리 알려져 있어야 한다.
도 2는 홀 펀칭이 이루어지는 과정을 도시한 그림인데, 서로 다른 사설 IP 클러스터에 속한 HostA와 HostB, 주소 서버인 S가 있을 때, 우선 HostA와 HostB는 자신이 속한 클러스터의 NAT에게 홀 펀칭을 요구하게 된다. 여기서 말하는 홀 펀칭이란 사설 IP를 공인 IP로 변환시켜 주는 작업을 지칭한다. 즉 사설 IP를 가진 시스템이 임의의 포트 번호를 정해서 (사설 IP, 포트)의 쌍을 가지고 NAT에게 홀 펀칭을 요구하면, NAT는 사용 가능한 공인 IP 주소중의 하나를 이 사설 주소와 연결시킨 후, 연결된 공인 주소, 즉 (공인 IP, 포트)의 쌍을 요청 시스템에게 전달한다. 이 연결된 공인 주소만 안다면 외부의 어떤 시스템도 이 공인 주소와 연결된 사설 IP 시스템에 바로 접근할 수 있기 때문에 외부에서의 접근을 원한다면 주소를 공개하기만 하면 되는데, 홀 펀칭에서는 이러한 주소 관리를 위해 주소 서버를 사용한다.
따라서 HostA와 HostB는 자신이 속한 사설 IP 클러스터의 NAT를 통해 사설 주소와 연결된 공인 주소를 얻어낸 뒤, 주소 서버에 사설 주소와 공인 주소 모두를 등록한다. 이제 HostA가 HostB와의 통신을 원하는 경우, 우선 HostB의 주소를 알아내기 위해 주소 서버 S에게 요청하면, S는 HostA에게 HostB의 주소 2개를 알려주게 된다. 이제 HostA는 이 주소 각각에 대해 연결을 시도해서, 빨리 성공하는 연결을 사용함으로써 통신을 할 수 있게 된다. 만약 두 시스템이 같은 사설 IP 클러스터 상에 존재한다면 사설 IP를 통한 연결이 먼저 이루어지게 되기 때문에 속도가 빠른 사설 네트워크 연결을 사용하면 되고, 서로 다른 사설 IP 클러스터 상에 있다면 사설 주소를 통한 연결은 실패하겠지만 공인 주소를 통한 연결은 성공할 것이기 때문에 어떤 경우에라도 통신이 가능하다.
홀 펀칭은 이상에서 설명한 것처럼 구현이 간단할 뿐 아니라, NAT의 기능을 이용하기 때문에 성능이나 안정성의 측면에서도 뛰어나다. 홀 펀칭을 구현하기 위해서 필요한 것은 홀 펀칭이 가능한 NAT와 주소를 관리할 수 있는 주소 서버뿐이다. 동작 과정도 NAT를 통해 홀 펀칭된 공인 IP 주소를 얻어낸 후 주소 서버에 등록해 두면, 접속을 원하는 시스템은 2개의 주소 모두를 가지고 연결을 시도해서 빨리 성공하는 연결을 선택하고, 이후에는 이러한 연결을 통해 직접 통신할 수 있다.
그래서 최근 시스템 수준 중계방법 중에 하나인 홀 펀칭(Hole Punching) 기 법을 사용하고 있는데 이것은 구현이 간단할 뿐만 아니라 NAT를 지원하는 시스템이면 사용가능하므로 온라인 게임과 같은 P2P 통신에서 이용을 한다. 그러나 MPI 프로그램은 온라인 게임과 같은 P2P 통신과는 통신 방법이 다르므로 일반적인 홀 펀칭 방법을 적용할 수 없었다.
한편, 상술한 바와 같이 시스템 수준의 중계를 사용한다면 사용자 수준에서 발생하는 문제점들을 해결할 수 있지만 기존의 시스템 중계 방법은 구현이 복잡하고 특정 시스템을 대상으로 하기 때문에 이식성이 떨어진다는 문제점으로 인해, 지금까지는 주로 국내특허 출원번호 제10-2004-0114699 호에 개시되고 있는 것과 같이, 사용자 수준의 응용 프로그램을 사용하여 사설 IP 클러스터 내부의 시스템들과 외부와의 통신을 중개하는 방법이 주로 사용되고 있어, 상술한 바와 같은 전송 시간이 길어지고, 중계 프로그램이 클러스터간의 통신에 커다란 영향을 미치게 된다는 문제점이 존재하고 있었다.
본 출원인은 상술한 문제점을 해결하기 위해 연구 노력한 결과 홀 펀칭(Hole Punching)을 MPI 프로그램에서 수행 가능하도록 수정하여 사설 IP를 지원하는 MPI 통신방법에 적용하게 되면, 그리드 환경에서 구현이 단순하면서도 이식성이 사용자 수준의 중계에 비해 떨어지지 않는 시스템 수준의 중계가 구현됨을 알게 되어 본 발명을 완성하였다.
따라서, 본 발명의 목적은 홀 펀칭(Hole Punching)을 MPI 프로그램에서 수행 가능하도록 수정하여 기존의 MPI 프로그램이 사설 IP 클러스터 상에서는 수행될 수 없다는 문제점을 해결할 뿐 아니라, 기존의 해결책보다 훨씬 성능이 좋으면서도 안정적인 사설 IP를 지원하는 시스템 수준의 MPI 통신방법을 제공하는 것이다.
또한, 본 발명의 다른 목적은 사설 IP 클러스터 상에서도 MPI 프로그램을 수행할 수 있도록 할 뿐 아니라, 사설 IP 클러스터를 사용함으로 발생하는 성능저하를 최소화할 수 있는 사설 IP를 지원하는 시스템 수준의 MPI 통신방법을 제공하는 것이다.
또한, 본 발명의 다른 목적은 별도의 사용자 수준의 프로그램을 요하지 않고 시스템 수준에서 바로 통신이 중계되도록 함으로써 중계로 인한 부하를 최소화시켜 사설 IP 클러스터 상에서 수행되는 MPI 프로그램과 가장 효율적으로 통신할 수 있는 사설 IP를 지원하는 시스템 수준의 MPI 통신방법을 제공하는 것이다.
또한, 본 발명의 다른 목적은 클러스터 환경에 구애받지 않고 MPI 프로그램을 수행할 수 있어 사설 IP 클러스터도 MPI 작업에 포함시킬 수 있으므로, 기존에는 제외되었던 많은 사설 IP 클러스터들을 그리드 환경에 포함시킴으로써 좀더 풍부한 컴퓨팅 환경을 구성할 수 있기 때문에 가용한 자원의 범위를 확대시킬 수 있는 동시에, 사설 IP 클러스터의 사용으로 인해 발생하는 성능의 저하도 최소화해서 공인 IP 클러스터만을 사용하는 경우와 비교해서 거의 차이가 없는 작업 성능을 제공할 수 있는 사설 IP를 지원하는 시스템 수준의 MPI 통신방법을 제공하는 것이다.
상기와 같은 목적을 달성하기 위하여, 본 발명은 그리드 미들웨어(Grid Middleware)를 기반으로 다수개의 클러스터에서 각각 수행되는 MPI(Message Passing Interface) 프로그램간의 통신방법에 있어서, 상기 MPI프로그램마다 사설 IP와 공인 IP를 부여하는 수정된 홀 펀칭 단계를 포함하여 각각의 사설 IP 클러스터에서 수행되는 MPI 프로그램들 간의 직접통신이 이루어지는 것을 특징으로 하는 사설 IP를 지원하는 시스템 수준의 MPI 통신방법을 제공한다.
상기 다수개의 클러스터는 모든 클러스터환경을 포함하는 것을 특징으로 한다.
상기 수정된 홀 펀칭 단계는 각각의 사설 IP 클러스터에 속한 MPI 프로그램들이 각 관리노드의 NAT 서비스로부터 자신의 공인 IP를 획득하는 과정; 상기 공인 IP를 획득한 MPI 프로그램들이 자신의 사설 IP와 상기 획득된 공인 IP를 포함하는 채널정보를 다른 MPI프로그램들에 전달하는 과정; 및 상기 전달된 채널정보를 각각 대응시켜 인식테이블로 저장하는 상기 MPI프로그램들의 초기화과정을 포함하는 것을 특징으로 한다.
상기 다수개의 클러스터에서 각각 수행되는 MPI프로그램들 중 하나의 MPI 프로그램인 출발지 MPI프로그램이 작업을 진행하기 위해 필요한 다른 MPI프로그램인 목적지 MPI 프로그램과 통신하고자 하는 경우, 기저장된 인식테이블을 통해 상기 출발지 MPI 프로그램과 상기 목적지 MPI 프로그램의 위치에 따라 각각 다른 방법으로 연결하는 MPI프로그램간의 통신단계를 포함하는 것을 특징으로 한다.
상기 채널정보는 공인 IP, 사설 IP, 관리노드의 이름, 포트, 및 인터도메인에 속하는지 여부를 판단하는 인식자를 포함하는 것을 특징으로 한다.
상기 출발지 MPI프로그램은 상기 목적지 MPI 프로그램의 위치를 관리노드의 이름의 동일성을 통해 판단하는 것을 특징으로 한다.
상기 MPI프로그램간의 통신단계는 상기 출발지 MPI프로그램이 사설 IP 클러스터에 속하고, 상기 목적지 MPI프로그램이 공인 IP 클러스터에 속하는 경우, 상기 출발지 MPI프로그램이 존재하는 클러스터의 관리노드에 있는 NAT서비스를 거쳐서 상기 목적지 MPI프로그램이 존재하는 계산노드와 연결되는 것을 특징으로 한다.
상기 MPI프로그램간의 통신단계는 상기 출발지 MPI프로그램 및 상기 목적지 MPI프로그램이 서로 다른 사설 IP 클러스터에 속하는 경우, 상기 출발지 MPI프로그램이 존재하는 클러스터의 관리노드에 있는 NAT서비스를 거쳐서 상기 목적지 MPI프로그램의 공인 IP주소를 통해 상기 목적지 MPI프로그램이 존재하는 클러스터의 관리노드에 있는 NAT서비스를 거쳐서 목적지 MPI프로그램이 존재하는 계산노드와 연결되는 것을 특징으로 한다.
상기 MPI프로그램간의 통신단계는 상기 출발지 MPI프로그램 및 상기 목적지 MPI프로그램이 모두 동일 사설 IP 클러스터에 속하거나, 동일 공인 IP클러스터에 속하는 경우, 상기 출발지 MPI프로그램과 상기 목적지 MPI프로그램이 직접 연결되는 것을 특징으로 한다.
본 발명은 공인 IP 클러스터에서만 수행 가능한 기존의 MPI를 수정한 것으로서 사설 IP 클러스터가 포함된 환경을 지원할 뿐 아니라, 사설 IP 클러스터의 사용으로 인해 야기되는 통신 성능의 저하를 최소화시킨다.
따라서 본 발명을 사용하면 클러스터 환경에 구애받지 않고 MPI 프로그램을 수행할 수 있다. 즉 다음과 같이 세 가지 컴퓨팅 환경을 모두 지원한다. 모두 공인 IP 클러스터로 구성되어 있는 환경, 모두 사설 IP로 구성되어 있는 환경, 그리고 공인 IP 클러스터와 사설 IP 클러스터가 혼재해 있는 환경이다. 이러한 각 컴퓨팅 환경에 관계없이 최적화된 성능으로 작업을 수행시킬 수 있다. 다시 말하면 사설 IP 클러스터를 작업에 포함시킨다고 해도, NAT를 거치는 것 외에는 특별히 추가되는 부하가 없다. NAT를 경유로 인한 통신 지연은 거의 무시할 만한 수준이므로, 공인 IP 클러스터만을 이용하여 작업을 수행하는 경우와 비교해도 성능저하가 거의 없다.
이하에서는 도면을 참조로 본 발명을 보다 구체적으로 설명한다.
도 3은 사설 IP 클러스터만으로 구성된 컴퓨팅 환경의 구성도이고, 도 4는 도3과 같은 컴퓨팅 환경에서 별도의 응용 프로그램을 사용하여 각 사설 IP 클러스터에서 실행되는 MPI 프로그램간의 통신을 중계하는 방법의 모식도이며, 도 5는 도3과 같은 컴퓨팅 환경에서 본 발명의 바람직한 일 실시예를 사용하여 사설 IP 클러스터에서 실행되는 MPI 프로그램간의 통신을 중계하는 방법의 모식도이다.
본 발명이 지원하는 세 가지 컴퓨팅 환경 중 사설 IP 클러스터들로만 구성된 시스템은 일반적으로 도 3과 같다.
도 3을 참조하면, 사설 IP 클러스터1은 다수개의 컴퓨팅 자원들인 A1, A2, A3가 연결된 로컬 네트워크로서, 상기 A1, A2, A3는 각각 계산노드(13,14, 15)를 갖는 구조이고, 사설 IP 클러스터2 또한 다수개의 컴퓨팅 자원들인 B1, B2, B3가 연결된 로컬 네트워크로서, 상기 B1, B2, B3는 각각 계산노드(23,24,25)를 갖는 구조로서, 상기 사설 IP 클러스터1과 사설 IP 클러스터2가 인터넷을 통해 연결된 상태를 나타낸다.
도 3에 도시된 바와 같이 사설 IP로 구성되는 클러스터1,2는 외부에 보이는 관리 노드A와 관리노드B를 각각 포함하는데, 상기 관리 노드A 및 관리노드 B는 사설 IP가 할당된 네트워크 인터페이스 카드(12, 22)와 공인 IP가 할당된 네트워크 인터페이스 카드(11,21) 모두를 가지게 되는데, 이 때 상기 공인 IP가 할당된 네트워크 인터페이스 카드(11,21)는 외부의 그리드 네트워크와 연결되어 있다.
이와 같이 사설 IP로 구성되는 클러스터 시스템의 경우, 각 사설 IP 클러스터마다 존재하여 외부에 보이는 관리 노드는 사설 IP가 할당된 네트워크 인터페이스 카드와 공인 IP가 할당된 네트워크 인터페이스 카드 모두를 가지게 된다. 따라서 예를 들어 사설 IP 클러스터1의 로컬 네트워크에 존재하는 계산노드들(13, 14, 15)는 공인 IP를 가지고 있지 않기 때문에 외부에 존재하는 노드(예를 들어, 사설 IP 클러스터2의 계산노드 B1)에서는 볼 수도 없으며 직접 접근할 수도 없다.
도 3과 같이 구성된 사설 IP 클러스터에서 MPI 프로그램을 실행시키기 위해 지금까지 제안된 방법은 이미 상술한 바와 같이 별도의 사용자 수준의 프로그램을 사용하여 프로그램간의 메시지를 중계하는 방식이다. 즉 각 사설 IP 클러스터1, 2의 관리노드A, B는 중요한 역할을 담당하게 되는데, 각 사설 IP 클러스터에 연결된 계산 노드들은 사설 IP를 통해 통신하며, 외부의 네트워크로 연결하려 할 경우에는 관리 노드에서 제공하는 NAT 서비스뿐만 아니라 별도의 사용자수준의 프로그램을 실행시켜서, 외부로 나가거나 외부에서 들어오는 메시지를 중계하게 된다.
도 4는 이러한 통신 과정을 나타내는 그림인데, 관리 노드 A와 B가 중계를 위한 프로그램을 실행시키고 있는 상황에서 사설 IP 클러스터 1에 속하는 컴퓨팅자원 A1이 사설 IP 클러스터 2에 속하는 컴퓨팅자원 B1과의 통신을 원하는 경우, 우선 관리노드 A에 위치하는 중계 프로그램에게 메시지를 전송하게 된다. 이 메시지는 도 4에서 볼 수 있듯이 중계 프로그램에서 글로버스를 통해 시스템 수준까지 전달한다. 그 후에 글로벌 네트워크를 통해 관리노드 B에서 실행되는 중계 프로그램에게 전달되고, 관리노드 B의 중계 프로그램은 다시 글로버스를 통해 시스템 수준으로 메시지를 전달해서 결국 컴퓨팅자원 B1에게 전달된다.
앞에서 상술한 것처럼 별도의 프로그램을 사용해 메시지를 중계함으로써, 송신자에서 수신자에 이르는 단계가 길어지고, 사용자 수준까지 올라갔다가 다시 시스템 수준으로 내려가서 전달되기 때문에 통신 지연이 현저하게 증가한다. 따라서 사설 IP 클러스터를 작업에 사용할 수는 있지만, 공인 IP 클러스터만을 이용해서 작업을 수행하는 경우의 성능과 비교하면 현저하게 성능이 감소하는 경우가 발생한다.
본 발명은 도3과 같은 컴퓨팅환경에서 일어나는 상술한 바와 같은 도4와 같은 사용자수준의 별도의 응용프로그램을 사용하는 통신방법의 문제점을 해결하기 위해 안출된 것으로 도5에 도시된 바와 같이 수정된 홀 펀칭을 통해 사용자 수준의 별도의 응용프로그램을 사용하지 않고 상기 사설 IP 클러스터1 및 사설 IP 클러스 터2의 계산노드들에서 각각 수행되는 MPI 프로그램간의 통신을 시스템 수준에서 직접 중계하는 것이 가능한 통신방법을 제공한다.
즉, 본 발명은 그리드 미들웨어(Grid Middleware)를 기반으로 다수개의 클러스터에서 각각 수행되는 MPI(Message Passing Interface) 프로그램을 이용한 통신방법에 있어서, 상기 MPI프로그램마다 사설 IP와 공인 IP를 부여하는 수정된 홀 펀칭 단계를 포함하여 각각의 사설 IP 클러스터에서 수행되는 MPI 프로그램들 간의 직접통신이 이루어지는 것을 특징으로 하는 사설 IP를 지원하는 MPI를 이용한 시스템 수준의 통신방법을 제공한다.
이 때, 상기 다수개의 클러스터는 모든 클러스터환경 즉 모두 공인 IP 클러스터로 구성되어 있는 환경, 모두 사설 IP로 구성되어 있는 환경, 그리고 공인 IP 클러스터와 사설 IP 클러스터가 혼재해 있는 환경을 포함 한다.
이와 같은 그리드 컴퓨팅 환경에서 실행되는 MPI 프로그램은 온라인 게임과 같은 일반적인 P2P 통신에서 사용하는 통신과 달리, 초기화에서부터 종료까지 다른 방법을 사용한다. 그 결과 상술한 일반적으로 현재까지 알려진 홀 펀칭을 그대로 이용할 수 없기 때문에, 본 발명은 하기와 같이 MPI 프로그램간의 통신이 가능할 뿐만 아니라 그 성능이 보다 최적화되도록 수정하였다.
즉, 기존의 홀 펀칭은 사설 IP 클러스터에 속한 각 컴퓨팅자원이 주소 서버에 자신의 주소를 등록하고, 각 컴퓨팅자원은 주소 서버를 통해서 접속을 원하는 상대방의 주소를 알아내야만 하는 구성을 가지고 있었다.
그런데, 본 발명에서는 주소의 등록이나 문의가 필요 없도록 수정해서, 별도의 주소 서버가 없어도 되는 구성을 갖는다.
또한 연결을 시도하는 방식도 최적화시켰다. 기존의 홀 펀칭은 2개의 IP를 사용하여 연결을 시도한 후, 접속이 빨리 이뤄지는 연결을 통해 통신하게 되는데, 이는 상대방에 대한 정보가 전혀 없기 때문이다. 즉 상대방이 같은 사설 IP 클러스터에 속해 있는지, 공인 IP를 사용하고 있는지, 다른 사설 IP 클러스터에 속해있는지 전혀 모른다. 그래서 무조건 2개의 연결을 시도하는 것이며, 늦게 이뤄지는 연결은 사용도 하지 않고 바로 닫게 되는데, 이러한 연결을 시도하는 방식을 최적화하기 위해 본 발명에서는 각 MPI 프로그램들이 자신이 속한 클러스터 환경에 대한 약간의 정보를 가지게 함으로써, 하나의 연결만 시도해도 통신할 수 있도록 변경하였다.
이와 같이 수정된 홀 펀칭 단계는 각각의 사설 IP 클러스터에 속한 MPI 프로그램들이 각 관리노드의 NAT 서비스로부터 자신의 공인 IP를 획득하는 과정; 상기 공인 IP를 획득한 MPI 프로그램들이 자신의 사설 IP와 상기 획득된 공인 IP를 포함하는 채널정보를 다른 MPI프로그램들에 전달하는 과정; 및 상기 전달된 채널정보를 각각 대응시켜 인식테이블로 저장하는 상기 MPI프로그램들의 초기화과정을 포함한다.
다시 말해, 수정된 홀 펀칭 단계는 사설 IP 클러스터를 지원하기 위해 기존의 MPICH-G2에서 통신 초기화에 관련된 과정을 변경한 것으로, 원래의 MPICH-G2에서는 각각의 MPI 프로그램들은 초기화 과정에서 자신의 IP와 포트를 포함하는 통신 채널 정보를 전달한 뒤, 현재 작업에 참여하고 있는 모든 프로그램들의 통신 채널 정보를 전달받게 되는데, 이 후 이 정보를 통해 현재 같은 작업에 참여하고 있는 다른 프로그램의 IP와 포트를 알아내서 통신하게 된다. 그런데 이러한 과정을 그대로 사용한다면, 사설 IP를 사용하는 MPI프로그램이 전달한 채널 정보에는 사설 IP와 포트가 들어가 있기 때문에, 같은 클러스터에 속하지 않은 프로그램이 이 정보를 사용하여 해당 프로그램과 연결하는 일은 불가능하다.
따라서 사설 IP 클러스터 내의 MPI 프로그램이 상술한 바와 같이 관리 노드의 NAT 서비스에게 요청하여 공인 IP를 얻어낸 후, 사설 IP와 공인 IP 모두를 포함하는 채널 정보를 다른 MPI프로그램들에 전달하도록 하였다. 여기서, 상기 채널정보는 공인 IP, 사설 IP, 관리노드의 이름, 포트, 및 인터도메인에 속하는지 여부를 판단하는 인식자를 포함한다.
이러한 본 발명의 구성에 의하면 각 MPI 프로그램들은 자신이 속한 클러스터의 관리 노드의 이름을 알고 있으며, 작업을 시작할 때 작업할당과 관리를 위한 별도의 관리 시스템에게 전달하는 채널정보에 주소 뿐 아니라 관리 노드의 이름도 포함시킨다. 따라서 각 MPI 프로그램은 다른 MPI 프로그램의 사설 IP와 공인 IP뿐 아니라 관리 노드의 이름, 포트 및 인터도메인에 속하는지 여부를 판단하는 인식자도 모두 알 수 있다.
그 결과, 출발지 MPI 프로그램이 연결하려는 목적지 MPI 프로그램의 관리 노드의 이름이 자신의 관리 노드의 이름과 일치한다면, 같은 사설 IP 클러스터에 속한 것이므로 사설 IP를 이용하는 편이 훨씬 효율적이지만, 관리 노드의 이름이 다 르다면, 공인 IP를 사용하고 있거나 다른 사설 IP 클러스터에 속한 것이므로, 분명히 실패하게 될 사설 IP 연결은 시도하지 않고 공인 IP를 통한 연결만 시도하게 된다.
도 5는 본 발명의 바람직한 일 실시예에 의한 사설 IP 클러스터에서 실행되는 MPI 프로그램간의 통신을 중계하는 방법의 모식도로서, 출발지 MPI 프로그램과 목적지 MPI 프로그램이 각각 다른 사설 IP 클러스터에 속해 있는 상황에서 통신하는 과정을 나타낸 것이다. 즉 사설 IP 클러스터1에 속하는 컴퓨팅자원 A1이 사설 IP 클러스터2에 속하는 컴퓨팅자원 B1과의 통신을 원하는 경우, 상기 A1에서 수행되는 출발지 MPI 프로그램과 상기 B1에서 수행되는 목적지 MPI 프로그램이 서로 다른 사설 IP 클러스터에 속해 있으므로 B1의 목적지 MPI 프로그램의 공인 IP 주소를 사용해서 연결해야 한다. 이와 같은 A1의 연결 요청은 관리노드A의 NAT 서비스를 통해 나가서, 관리노드 B에게 전달되며, 관리노드 B의 NAT 서비스를 통해 다시 B1에게 전달된다. 이후의 모든 메시지는 같은 과정을 거쳐 전달된다.
이와 같이 본 발명의 통신방법에 의하면 출발지 MPI프로그램이 목적지 MPI 프로그램에 대한 사설 IP 주소와 공인 IP 주소를 포함한 채널정보를 모두 알고 있으므로, 가장 최적의 방법을 사용하여 연결하면 된다. 즉 같은 클러스터 안에 속한 프로그램이라면 사설 IP를 사용하여 연결하고, 아니라면 공인 IP를 사용해서 접속하면 된다. 만약 공인 IP 주소가 NAT를 통해 변환된 것이라면, NAT를 통해 시스템 수준에서 서로간의 통신이 중계된다.
그리고 일단 목적지 MPI프로그램의 위치를 알아내서, 공인 IP로 연결할 것인지 사설 IP로 연결한 것인지를 결정해서 연결이 성공하게 되면, 그 연결을 사용해서 계속 통신하면 된다. 다시 말하면 상대방이 같은 클러스터에 속해 있는지, 공인 IP를 사용하는지, 아니면 다른 사설 IP 클러스터에 속해 있는지는 신경 쓰지 않아도 된다.
하기 표1은 출발지 MPI 프로그램과 목적지 MPI 프로그램이 처할 수 있는 다양한 환경에서의 연결 방법을 나타낸 것이다.
Figure 112006096343296-pat00001
상기 표로부터, 상기 출발지 MPI프로그램이 사설 IP 클러스터에 속하고, 상기 목적지 MPI프로그램이 공인 IP 클러스터에 속하는 경우, 상기 출발지 MPI프로그램이 존재하는 클러스터의 관리노드에 있는 NAT서비스를 거쳐서 상기 목적지 MPI프로그램이 존재하는 계산노드와 연결되고, 상기 출발지 MPI프로그램 및 상기 목적지 MPI프로그램이 서로 다른 사설 IP 클러스터에 속하는 경우, 상기 출발지 MPI프로그램이 존재하는 클러스터의 관리노드에 있는 NAT서비스를 거쳐서 상기 목적지 MPI프로그램의 공인 IP주소를 통해 상기 목적지 MPI프로그램이 존재하는 클러스터의 관리노드에 있는 NAT서비스를 거쳐서 목적지 MPI프로그램이 존재하는 계산노드와 연결되며, 상기 출발지 MPI프로그램 및 상기 목적지 MPI프로그램이 모두 동일 사설 IP 클러스터에 속하거나, 동일 공인 IP클러스터에 속하는 경우, 상기 출발지 MPI프로그램과 상기 목적지 MPI프로그램이 직접 연결되는 것을 알 수 있다.
이와 같이 본 발명의 통신방법은 모든 컴퓨팅 환경에서 적용 가능하고, 적용되는 컴퓨팅환경에 따라 시스템수준에서 최적의 통신중계를 수행하는 것을 알 수 있다.
실험예
본 발명에 따른 MPI 통신 방법이 그리드 환경의 실제 사설 IP 클러스터에서 적용가능한지를 보여주기 위한 실험을 수행하였는데, 보다 상세히 말하면 사설 IP클러스터가 포함된 그리드 환경과 공인 IP 클러스터만을 포함한 그리드 환경에서 본 발명에 따른 통신방법에 따른 비교 실험을 함으로써 본 발명이 사설 IP 클러스터가 포함된 환경에서도 효율적으로 통신이 가능한지 여부를 실험하였다. 이 때 실험 대상이 되는 응용 프로그램은 하나의 MPI 프로그램에 참여하고 있는 모든 프로세스사이에 메시지를 전송하는 핑퐁(Ping-pong) 프로그램이다. 모든 프로세스사이에 메시지 전송을 20번 반복하면서 다양한 메시지 크기에 대해서 소요되는 시간을 측정하였고 그 결과를 도 6 및 도 7에 도시하였다.
도 6으로부터, 사설 IP 클러스터를 포함한 경우와 공인 IP클러스터만 포함한 경우의 통신지연시간이 큰 차이가 없는 것을 알 수 있다. 특히 도 7은 전송되는 메시지 크기가 클수록 그 차이가 감소하는 것을 보여준다. 즉 40KB의 메시지 크기에 대해서는 사설 IP 클러스터를 포함한 경우가 12.5% 더 걸리지만, 80MB인 경우는 거의 차이가 없다.
이상의 결과로부터 본 발명의 통신방법은 사설 IP 클러스터를 포함하는 그리드환경에서도 공인 IP 클러스터만으로 구성된 그리드환경과 거의 동일한 수준으로 MPI 프로그램을 수행할 수 있도록 할 뿐 아니라, 사설 IP 클러스터를 사용함으로 발생하는 성능저하를 최소화할 수 있는 것을 알 수 있다.
이상에서는 본 발명의 바람직한 실시예에 대해서만 설명하였지만, 본 발명이 속하는 기술분야에 있어서 통상의 지식을 가진 자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가 등이 가능할 것인데, 이러한 수정 변경 등에 의해 실시할 경우도 모두 이하의 특허청구범위에 속하는 것으로 보아야 할 것이다.
지금까지 설명된 본 발명은 다음과 같은 효과를 가진다.
본 발명의 통신방법에 의하면, 홀 펀칭(Hole Punching)을 MPI 프로그램에서 수행 가능하도록 수정하여 기존의 MPI 프로그램이 사설 IP 클러스터 상에서는 수행될 수 없다는 문제점을 해결할 뿐 아니라, 기존의 해결책보다 훨씬 성능이 좋으면서도 안정적인 사설 IP를 지원한다. 즉 본 발명은 홀 펀칭 기법을 응용한 시스템 수준의 중계를 통해, 사용자 수준의 중계에서 발생하는 문제점들을 모두 해결하여 사설 IP 클러스터에서 수행되는 MPI 프로그램과 통신할 수 있을 뿐 아니라, 이러한 통신이 신속하고 안정적으로 이루어질 수 있다.
또한, 본 발명의 통신방법에 의하면 사설 IP 클러스터 상에서도 MPI 프로그램을 수행할 수 있도록 할 뿐 아니라, 사설 IP 클러스터를 사용함으로 발생하는 성능저하를 최소화할 수 있다.
또한, 본 발명의 통신방법에 의하면 별도의 사용자 수준의 프로그램을 요하지 않고 시스템 수준에서 바로 통신이 중계되도록 함으로써 중계로 인한 부하를 최소화시켜 사설 IP 클러스터 상에서 수행되는 MPI 프로그램과 가장 효율적으로 통신할 수 있다.
또한, 본 발명의 통신방법을 사용하면 클러스터 환경에 구애받지 않고 MPI 프로그램을 수행할 수 있어 사설 IP 클러스터도 MPI 작업에 포함시킬 수 있으므로, 기존에는 제외되었던 많은 사설 IP 클러스터들을 그리드 환경에 포함시킴으로써 좀더 풍부한 컴퓨팅 환경을 구성할 수 있어, 가용한 자원의 범위를 확대시킬 수 있을 뿐 아니라, 사설 IP 클러스터의 사용으로 인해 발생하는 성능의 저하도 최소화해 서, 공인 IP 클러스터만을 사용하는 경우와 비교해서 거의 차이가 없는 작업 성능을 제공할 수 있다.

Claims (9)

  1. 그리드 미들웨어(Grid Middleware)를 기반으로 다수개의 클러스터에서 각각 수행되는 MPI(Message Passing Interface) 프로그램을 이용한 통신방법에 있어서,
    상기 MPI프로그램마다 사설 IP와 공인 IP를 부여하는 수정된 홀 펀칭 단계는
    각각의 사설 IP 클러스터에 속한 MPI 프로그램들이 각 관리노드의 NAT 서비스로부터 자신의 공인 IP를 획득하는 과정;
    상기 공인 IP를 획득한 MPI 프로그램들이 자신의 사설 IP와 상기 획득된 공인 IP를 포함하는 채널정보를 다른 MPI프로그램들에 전달하는 과정; 및
    상기 전달된 채널정보를 각각 대응시켜 인식테이블로 저장하는 상기 MPI프로그램들의 초기화과정을 포함하고,
    상기 수정된 홀 펀칭 단계를 통해 상기 각각의 사설 IP 클러스터에서 수행되는 MPI프로그램간의 직접통신이 이루어지는 것을 특징으로 하는 사설 IP를 지원하는 시스템 수준의 MPI 통신방법.
  2. 제1항에 있어서, 상기 다수개의 클러스터는 모든 클러스터환경을 포함하는 것을 특징으로 하는 사설 IP를 지원하는 시스템 수준의 MPI 통신방법.
  3. 삭제
  4. 제1항 또는 제2항에 있어서, 상기 다수개의 클러스터에서 각각 수행되는 MPI프로그램들 중 하나의 MPI 프로그램인 출발지 MPI프로그램이 작업을 진행하기 위해 필요한 다른 MPI프로그램인 목적지 MPI 프로그램과 통신하고자 하는 경우, 기저장된 인식테이블을 통해 상기 출발지 MPI 프로그램과 상기 목적지 MPI 프로그램의 위치에 따라 각각 다른 방법으로 연결하는 MPI프로그램간의 통신단계를 포함하는 것을 특징으로 하는 사설 IP를 지원하는 시스템 수준의 MPI 통신방법.
  5. 제4항에 있어서, 상기 채널정보는 공인 IP, 사설 IP, 관리노드의 이름, 포트, 및 인터도메인에 속하는지 여부를 판단하는 인식자를 포함하는 것을 특징으로 하는 사설 IP를 지원하는 시스템 수준의 MPI 통신방법.
  6. 제5항에 있어서, 상기 출발지 MPI프로그램은 상기 목적지 MPI 프로그램의 위치를 관리노드의 이름의 동일성을 통해 판단하는 것을 특징으로 하는 사설 IP를 지원하는 시스템 수준의 MPI 통신방법.
  7. 제4항에 있어서, 상기 MPI프로그램간의 통신단계는 상기 출발지 MPI프로그램이 사설 IP 클러스터에 속하고, 상기 목적지 MPI프로그램이 공인 IP 클러스터에 속하는 경우, 상기 출발지 MPI프로그램이 존재하는 클러스터의 관리노드에 있는 NAT서비스를 거쳐서 상기 목적지 MPI프로그램이 존재하는 계산노드와 연결되는 것을 특징으로 하는 사설 IP를 지원하는 시스템 수준의 MPI 통신방법.
  8. 제4항에 있어서, 상기 MPI프로그램간의 통신단계는 상기 출발지 MPI프로그램 및 상기 목적지 MPI프로그램이 서로 다른 사설 IP 클러스터에 속하는 경우, 상기 출발지 MPI프로그램이 존재하는 클러스터의 관리노드에 있는 NAT서비스를 거쳐서 상기 목적지 MPI프로그램의 공인 IP주소를 통해 상기 목적지 MPI프로그램이 존재하는 클러스터의 관리노드에 있는 NAT서비스를 거쳐서 목적지 MPI프로그램이 존재하는 계산노드와 연결되는 것을 특징으로 하는 사설 IP를 지원하는 시스템 수준의 MPI 통신방법.
  9. 제4항에 있어서, 상기 MPI프로그램간의 통신단계는 상기 출발지 MPI프로그램 및 상기 목적지 MPI프로그램이 모두 동일 사설 IP 클러스터에 속하거나, 동일 공인 IP클러스터에 속하는 경우, 상기 출발지 MPI프로그램과 상기 목적지 MPI프로그램이 직접 연결되는 것을 특징으로 하는 사설 IP를 지원하는 시스템 수준의 MPI 통신방법.
KR1020060133821A 2006-12-26 2006-12-26 수정된 홀 펀칭을 통해 그리드 환경에서 사설 ip를지원하는 시스템 수준의 mpi 통신방법 KR100843761B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060133821A KR100843761B1 (ko) 2006-12-26 2006-12-26 수정된 홀 펀칭을 통해 그리드 환경에서 사설 ip를지원하는 시스템 수준의 mpi 통신방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060133821A KR100843761B1 (ko) 2006-12-26 2006-12-26 수정된 홀 펀칭을 통해 그리드 환경에서 사설 ip를지원하는 시스템 수준의 mpi 통신방법

Publications (2)

Publication Number Publication Date
KR20080059900A KR20080059900A (ko) 2008-07-01
KR100843761B1 true KR100843761B1 (ko) 2008-07-04

Family

ID=39812608

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060133821A KR100843761B1 (ko) 2006-12-26 2006-12-26 수정된 홀 펀칭을 통해 그리드 환경에서 사설 ip를지원하는 시스템 수준의 mpi 통신방법

Country Status (1)

Country Link
KR (1) KR100843761B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101253025B1 (ko) 2011-04-12 2013-04-16 주식회사 엘지유플러스 Udp 푸시 데이터 전송 시스템 및 그 제어방법과, 그 시스템에 포함되는 통신 단말기 및 그 제어방법
KR20130093703A (ko) * 2011-12-23 2013-08-23 한국전자통신연구원 사용자 맞춤형 가상 네트워크 및 그것의 구축 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101423743B1 (ko) 2010-10-29 2014-08-01 한국전자통신연구원 가상 네트워크 환경에서 네트워크 단위의 통신 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02606A (ja) * 1983-11-07 1990-01-05 E I Du Pont De Nemours & Co リビングポリマーの溶液およびそれから形成された物品
JPH02412A (ja) * 1985-02-25 1990-01-05 Rjr Nabisco Inc ゼラチンデザートミツクス
JPH02310A (ja) * 1987-12-29 1990-01-05 Canon Inc X線用マスクとそれを用いた露光方法
JPH02608A (ja) * 1987-12-04 1990-01-05 Parker Chem Co 金属表面処理用水溶液又は分散液、及び表面処理方法
KR20050078395A (ko) * 2004-01-29 2005-08-05 한국과학기술정보연구원 그리드 컴퓨팅 시스템에서 파일기반의 mpi초기화방법을 이용한 그리드 mpi 작업 할당 시스템 및그리드 mpi 작업 할당방법
KR20060075799A (ko) * 2004-12-29 2006-07-04 한국과학기술정보연구원 그리드 네트워크에서 사설 아이피 클러스터를 포함하는엠피아이 구현 시스템 및 그 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02606A (ja) * 1983-11-07 1990-01-05 E I Du Pont De Nemours & Co リビングポリマーの溶液およびそれから形成された物品
JPH02412A (ja) * 1985-02-25 1990-01-05 Rjr Nabisco Inc ゼラチンデザートミツクス
JPH02608A (ja) * 1987-12-04 1990-01-05 Parker Chem Co 金属表面処理用水溶液又は分散液、及び表面処理方法
JPH02310A (ja) * 1987-12-29 1990-01-05 Canon Inc X線用マスクとそれを用いた露光方法
KR20050078395A (ko) * 2004-01-29 2005-08-05 한국과학기술정보연구원 그리드 컴퓨팅 시스템에서 파일기반의 mpi초기화방법을 이용한 그리드 mpi 작업 할당 시스템 및그리드 mpi 작업 할당방법
US20050198104A1 (en) 2004-01-29 2005-09-08 Kwon Oh K. System and method for grid MPI job allocation using file-based MPI initialization in grid computing system
KR20060075799A (ko) * 2004-12-29 2006-07-04 한국과학기술정보연구원 그리드 네트워크에서 사설 아이피 클러스터를 포함하는엠피아이 구현 시스템 및 그 방법

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
논문(2003.10.)
논문(2004.12.)
논문(2006.06.)
논문(2006.08.)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101253025B1 (ko) 2011-04-12 2013-04-16 주식회사 엘지유플러스 Udp 푸시 데이터 전송 시스템 및 그 제어방법과, 그 시스템에 포함되는 통신 단말기 및 그 제어방법
KR20130093703A (ko) * 2011-12-23 2013-08-23 한국전자통신연구원 사용자 맞춤형 가상 네트워크 및 그것의 구축 방법
US8873569B2 (en) 2011-12-23 2014-10-28 Electronics And Telecommunications Research Institute User centric virtual network and method of establishing the same

Also Published As

Publication number Publication date
KR20080059900A (ko) 2008-07-01

Similar Documents

Publication Publication Date Title
EP2391087B1 (en) Dynamic service access
US8166175B2 (en) Sharing a port with multiple processes
US8429304B2 (en) Information processing apparatus and communication control method
CN1954576B (zh) 处理启动请求的方法、装置和系统
US11750721B2 (en) Bidirectional command protocol via a unidirectional communication connection for reliable distribution of tasks
US8737388B2 (en) Method, apparatus and system for processing packets
CN108494623B (zh) 一种网络转发设备的性能测试方法及设备
KR20100019420A (ko) 에지 라우팅을 갖는 피어-투-피어 협업 시스템
CN111447155A (zh) 数据传输方法、装置、设备及存储介质
JP2024023579A (ja) ノードのネットワークにおいてデータパケットを伝搬させるシステム及び方法
CN109525684B (zh) 报文转发方法和装置
JP2021513265A (ja) ネットワークでデータを伝搬させるブロックチェーン・ベースのシステム及び方法
CN110012118B (zh) 一种提供网络地址转换nat服务的方法及控制器
US9055117B1 (en) Distributed network address translation
CN113010333A (zh) 适用于Linux服务器集群的多场景进程间通信方法
KR100843761B1 (ko) 수정된 홀 펀칭을 통해 그리드 환경에서 사설 ip를지원하는 시스템 수준의 mpi 통신방법
KR100854262B1 (ko) 인터프로세서 통신 프로토콜
CN109413224B (zh) 报文转发方法和装置
US6839732B1 (en) Efficient use of domain socket pairs in communication for tightly coupled transactions
CN111092958B (zh) 一种节点接入方法、装置、系统及存储介质
US9912757B2 (en) Correlation identity generation method for cloud environment
CN116389599A (zh) 网关服务请求的处理、云原生网关系统的管理方法及装置
JP2010146246A (ja) マルチエージェントシステム用フレームワークコンピュータプログラム、ネットワークシステム、及びエージェント間通信方法
US7813274B1 (en) Dynamic demultiplexing of network traffic
CN112689011B (zh) 一种基于nfs协议的业务传输方法、装置、设备及介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110617

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee