KR20240076097A - 인피니밴드 네트워크에서 분산 병렬 그래프 데이터 처리의 성능 개선 - Google Patents
인피니밴드 네트워크에서 분산 병렬 그래프 데이터 처리의 성능 개선 Download PDFInfo
- Publication number
- KR20240076097A KR20240076097A KR1020220158234A KR20220158234A KR20240076097A KR 20240076097 A KR20240076097 A KR 20240076097A KR 1020220158234 A KR1020220158234 A KR 1020220158234A KR 20220158234 A KR20220158234 A KR 20220158234A KR 20240076097 A KR20240076097 A KR 20240076097A
- Authority
- KR
- South Korea
- Prior art keywords
- node
- nodes
- graph
- control method
- vertex
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 62
- 230000006872 improvement Effects 0.000 title description 5
- 238000000034 method Methods 0.000 claims abstract description 79
- 230000015654 memory Effects 0.000 claims abstract description 27
- 230000005540 biological transmission Effects 0.000 claims abstract description 26
- 238000012795 verification Methods 0.000 claims abstract 2
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 46
- 230000006854 communication Effects 0.000 description 34
- 238000004891 communication Methods 0.000 description 33
- 238000002474 experimental method Methods 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 11
- 238000012790 confirmation Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000013523 data management Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
그래프 처리를 수행하는 복수의 노드를 포함하는 시스템의 제어 방법이 개시된다. 본 제어 방법은, 적어도 하나의 노드가, 복수의 노드 중 출발 정점을 id로 하는 vertex 클래스를 생성하는, 그래프 생성 단계, 복수의 노드가, RDMA(Remote Direct Memory Access) 프로토콜을 통해 복수의 노드를 연결하는, 네트워크 설정 단계, 각 노드가, 그래프 질의, 메시지 생성, 원격 노드 검색, 정점 상태 갱신, 및 원격 노드 확인 중 적어도 하나를 수행하는, 그래프 처리 단계, 각 노드가, 각 superstep에서 생성되는 메시지를 세그먼트 단위로 송신 또는 수신하는, 세그먼트 송수신 단계를 포함한다.
Description
본 개시는, 그래프 데이터의 처리 성능을 향상시키기 위해 초고속 네트워크 환경인 인피니밴드에서 분산 병렬 그래프 처리를 지원하는 전자 장치 내지는 시스템의 제어 방법에 관한 것이다.
그래프 데이터는 사용자 혹은 객체를 나타내는 정점(vertex)과 관계를 표현하는 간선(edge)으로 이루어져 있으며, 트위터, 페이스북과 같은 소셜 데이터, IoT와 같은 네트워크 데이터를 표현하는 데 많이 사용된다. 이러한 그래프 데이터는 대부분 용량이 매우 크기 때문에, 단일 노드 기반 시스템으로 처리하는데 한계가 있다. 따라서, 최근에는 Apache Giraph 등 분산 그래프 처리 시스템을 통해 이를 처리·분석한다.
대부분의 분산 그래프 처리 시스템은 vertex-centric 방식으로 그래프 알고리즘을 처리한다. Vertex-centric은 그래프 데이터의 분산 처리를 위한 프로그래밍 모델로, 각 정점마다 독립적으로 연산을 수행하며, Pregel이 대표적이다. Pregel은 그래프 처리 연산을 독립적으로 수행함으로써 대용량 그래프의 병렬 처리가 가능하다. 하지만, 이웃 정점들끼리 값을 교환하면서 반복적으로 알고리즘을 수행하기 때문에 네트워크 통신량이 많아지고, 이에 따라 네트워크 성능이 전체 성능에 큰 영향을 끼친다.
Pregel 모델을 적용한 대표적인 예로 Hadoop 프레임워크 상에서 동작하는 Apache Griaph가 있다. Pregel 모델에서 각 정점은 이웃들로부터 값을 전달받고, 각 superstep 마다 사용자가 정의한 연산을 수행한다. 그리고, 연산이 끝나면 그 결과를 이웃들에게 다시 전달한다. Pregel은 이웃 정점들 간에 값을 교환하면서 반복적으로 알고리즘을 수행하므로, 분산 구조를 사용할 경우 많은 통신 비용이 발생하게 된다.
인피니밴드(InfiniBand Trade Association, https://infinibandta.org/.)는 높은 대역폭과 낮은 전송 지연시간을 보장하는 고성능 통신 장비이다. 일반적으로 HPC(High Performance Computer)급 장비 간 연결에 주로 사용되며, 노드 간 고속 통신을 지원하므로 분산 환경에 적합하다. 인피니밴드는 기존 이더넷 장비를 대체하여 동일한 방식으로 사용할 수 있도록 IPoIB를 지원한다. IPoIB는 TCP/IP 프로토콜 스택을 통해 인피니밴드 장비의 높은 대역폭을 그대로 사용할 수 있도록 지원하는 기능이다. 그러나, 이더넷과 같이 운영체제를 거쳐 통신하는 구조이므로 통신량이 많아질수록 CPU 부하가 증가한다. 인피니밴드의 또 다른 통신 매커니즘으로 RDMA(Remote Direct Memory Access)가 있다. RDMA는 종단 시스템 간의 데이터를 송수신 할 때 운영체제를 거치지 않고 호스트 메모리에서 원격지 메모리로 직접 데이터를 전송하는 기능이다. 이를 통해 네트워크 계층 간 복사 없이 원격지 메모리로 직접 전송이 가능한 Zero-copy, 커널 개입없이 사용자 공간에서 직접 데이터를 전송하여 문맥전환이 없는 Kernel bypass, 원격지의 CPU를 사용하지 않는 No CPU involvement의 이점을 얻을 수 있다(S. Yang. et al.)
본 개시는 Pregel의 네트워크 처리 성능을 개선시키기 위해 인피니밴드의 IPoIB(IP over InfiniBand)와 RDMA(Remote Direct Memory Access)를 지원하는 그래프 처리 엔진인 PIGraph를 설계 및 구현하는 전자 장치의 제어 방법을 제공한다.
본 개시의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 개시의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 개시의 실시 예에 의해 보다 분명하게 이해될 것이다. 또한, 본 개시의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
본 개시의 일 실시 예에 따라 그래프 처리를 수행하는 복수의 노드를 포함하는 시스템의 제어 방법은, 상기 복수의 노드 중 적어도 하나의 노드가, 상기 복수의 노드 중 출발 정점을 id로 하는 vertex 클래스를 생성하는, 그래프 생성 단계, 상기 복수의 노드가, RDMA(Remote Direct Memory Access) 프로토콜을 통해 상기 복수의 노드를 연결하는, 네트워크 설정 단계, 각 노드가, 그래프 질의, 메시지 생성, 원격 노드 검색, 정점 상태 갱신, 및 원격 노드 확인 중 적어도 하나를 수행하는, 그래프 처리 단계, 각 노드가, 각 superstep에서 생성되는 메시지를 세그먼트 단위로 송신 또는 수신하는, 세그먼트 송수신 단계를 포함한다.
상기 그래프 처리 단계에서, 각 노드는, superstep이 처음 수행되는 경우, 초기값을 산출하고, superstep이 처음 수행된 것이 아닌 경우, 다른 노드로부터 수신되는 메시지와 정점 값을 바탕으로 그래프 질의를 수행할 수 있다.
이때, 상기 그래프 처리 단계에서, 각 노드는, 상기 그래프 질의가 수행되면, 연결된 다른 노드에 전달하기 위해 목적지 id와 연산 결과인 value를 포함하는 메시지를 생성할 수 있다.
이 경우, 상기 그래프 처리 단계에서, 각 노드는, 큐 페어(queue pair)를 탐색하는 원격 노드 검색을 수행할 수 있다.
이때, 상기 그래프 처리 단계에서, 각 노드는, 상기 메시지가 모두 전달되면, 다음 superstep에 대한 각 노드의 활성 또는 비활성 상태를 결정할 수 있다.
상기 세그먼트 송수신 단계에서, 각 노드는, 마지막 메시지가 수신될 때까지 메시지를 세그먼트에 추가하면서 대기하고, 상기 마지막 메시지가 수신되면, 상기 세그먼트를 원격지로 전송할 수 있다.
그리고, 상기 시스템의 제어 방법은, 각 노드가, 상기 세그먼트 송수신 단계가 완료됨에 따라 적어도 하나의 원격 노드로 각 노드가 소유한 정점들의 상태를 공유하는, 그래프 처리 단계를 재차 수행할 수 있다.
이 경우, 상기 시스템의 제어 방법은, 상기 복수의 노드는, 사용자가 지정한 최종 superstep이 완료되거나 모든 정점이 비활성화될 때까지, 상기 그래프처리 단계와 상기 세그먼트 송수신 단계를 반복할 수 있다.
한편, 상기 네트워크 설정 단계는, 상기 복수의 노드의 그래프 밀집도가 임계치 미만인 경우, 상기 복수의 노드가 IPoIB(IP over InfiniBand) 프로토콜을 통해 연결될 수 있다.
이 경우, 상기 시스템의 제어 방법은, 상기 복수의 노드 중 적어도 하나의 노드가, 상기 시스템을 구성하는 노드의 수 및 상기 노드 간의 간선의 수를 바탕으로 상기 그래프 밀집도를 일정 주기에 따라 모니터링하는 단계를 포함할 수 있다. 이때, 상기 네트워크 설정 단계는, 상기 일정 주기 별로 모니터링된 그래프 밀집도의 평균을 바탕으로 상기 IPoIB 및 상기 RDMA 중 하나의 프로토콜을 선택할 수 있다.
실험 결과, 본 개시에 따라 제안하는 RDMA(Remote Direct Memory Access) 기반 PIGraph가 IPoIB(IP over InfiniBand) 기반 Apache Giraph보다 최대 190% 이상 빠른 처리 시간을 보임이 확인되었다.
도 1은 본 개시의 일 실시 예에 따른 PIGraph의 아키텍쳐를 설명하기 위한 블록도,
도 2는 본 개시의 일 실시 예에 따른 PIGraph의 그래프 처리 과정을 설명하기 위한 도면,
도 3은 본 개시의 일 실시 예에 따른 PIGraph-IPoIB 세그먼트 송수신 과정을 도시한 도면,
도 4는 본 개시의 일 실시 예에 따른 PIGraph-RDMA 세그먼트 송수신 과정을 도시한 도면,
도 5는 본 개시의 일 실시 예에 따른 PIGraph의 IPoIB 기반 모델의 PageRank 수행시간을 종래 기술(Giraph-IPoIB)과 비교한 그래프,
도 6은 본 개시에 따른 PIGraph의 IPoIB 기반 모델 및 RDMA 기반 모델 각각의 알고리즘 별 수행시간을 비교한 그래프,
도 7은 본 개시에 따른 PIGraph의 IPoIB 기반 모델 및 RDMA 기반 모델 각각의 CPU 사용률을 비교한 그래프,
도 8은 본 개시의 일 실시 예에 따른 PIGraph의 RDMA 기반 모델의 PageRank 수행시간을 종래 기술(Apache Giraph-IPoIB)과 비교한 그래프, 그리고
도 9는 본 개시의 일 실시 예에 따라 적어도 하나의 노드로 동작하는 전자 장치의 구성을 설명하기 위한 블록도이다.
도 2는 본 개시의 일 실시 예에 따른 PIGraph의 그래프 처리 과정을 설명하기 위한 도면,
도 3은 본 개시의 일 실시 예에 따른 PIGraph-IPoIB 세그먼트 송수신 과정을 도시한 도면,
도 4는 본 개시의 일 실시 예에 따른 PIGraph-RDMA 세그먼트 송수신 과정을 도시한 도면,
도 5는 본 개시의 일 실시 예에 따른 PIGraph의 IPoIB 기반 모델의 PageRank 수행시간을 종래 기술(Giraph-IPoIB)과 비교한 그래프,
도 6은 본 개시에 따른 PIGraph의 IPoIB 기반 모델 및 RDMA 기반 모델 각각의 알고리즘 별 수행시간을 비교한 그래프,
도 7은 본 개시에 따른 PIGraph의 IPoIB 기반 모델 및 RDMA 기반 모델 각각의 CPU 사용률을 비교한 그래프,
도 8은 본 개시의 일 실시 예에 따른 PIGraph의 RDMA 기반 모델의 PageRank 수행시간을 종래 기술(Apache Giraph-IPoIB)과 비교한 그래프, 그리고
도 9는 본 개시의 일 실시 예에 따라 적어도 하나의 노드로 동작하는 전자 장치의 구성을 설명하기 위한 블록도이다.
본 개시에 대하여 구체적으로 설명하기에 앞서, 본 명세서 및 도면의 기재 방법에 대하여 설명한다.
먼저, 본 명세서 및 청구범위에서 사용되는 용어는 본 개시의 다양한 실시 예들에서의 기능을 고려하여 일반적인 용어들을 선택하였다. 하지만, 이러한 용어들은 당해 기술 분야에 종사하는 기술자의 의도나 법률적 또는 기술적 해석 및 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 일부 용어는 출원인이 임의로 선정한 용어도 있다. 이러한 용어에 대해서는 본 명세서에서 정의된 의미로 해석될 수 있으며, 구체적인 용어 정의가 없으면 본 명세서의 전반적인 내용 및 당해 기술 분야의 통상적인 기술 상식을 토대로 해석될 수도 있다.
또한, 본 명세서에 첨부된 각 도면에 기재된 동일한 참조번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다. 설명 및 이해의 편의를 위해서 서로 다른 실시 예들에서도 동일한 참조번호 또는 부호를 사용하여 설명한다. 즉, 복수의 도면에서 동일한 참조 번호를 가지는 구성요소가 모두 도시되어 있다고 하더라도, 복수의 도면들이 하나의 실시 예를 의미하는 것은 아니다.
또한, 본 명세서 및 청구범위에서는 구성요소들 간의 구별을 위하여 "제1", "제2" 등과 같이 서수를 포함하는 용어가 사용될 수 있다. 이러한 서수는 동일 또는 유사한 구성요소들을 서로 구별하기 위하여 사용하는 것이며 이러한 서수 사용으로 인하여 용어의 의미가 한정 해석되어서는 안 된다. 일 예로, 이러한 서수와 결합된 구성요소는 그 숫자에 의해 사용 순서나 배치 순서 등이 제한되어서는 안 된다. 필요에 따라서는, 각 서수들은 서로 교체되어 사용될 수도 있다.
본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시의 실시 예에서 "모듈", "유닛", "부(Part)" 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성요소를 지칭하기 위한 용어이며, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈", "유닛", "부(Part)" 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
또한, 본 개시의 실시 예에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적인 연결뿐 아니라, 다른 매체를 통한 간접적인 연결의 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 포함한다는 의미는, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시는 인피니밴드의 IPoIB와 RDMA를 지원하는 PIGraph를 설계 및 구현하는 시스템에 대한 것이다. 본 시스템은 복수의 노드에 해당하는 복수의 전자 장치로 구성될 수 있으며, 각 전자 장치는 하나 이상의 정점으로 동작할 수 있으며, 하나 이상의 전자 장치(노드)의 동작에 따라 이하 서술할 단계들이 수행될 수 있다.
PIGraph는 인피니밴드로 구성된 클러스터에서 동작하는 Pregel 기반 분산 병렬 그래프 처리 엔진이다. 도 1은 PIGraph의 전체 아키텍처를 나타낸다. 그림을 보면, PIGraph는 하나의 노드에서 하나의 그래프 처리 프로세스가 수행되며, 각 프로세스는 분산 입력되는 그래프 데이터에 대해 동일한 작업을 수행한다. 이때, PIGraph에서 발생하는 모든 네트워크 통신은 각 노드에 설치된 HCA(Host Channel Adapter)와 인피니밴드 스위치를 거친다.
PIGraph는 분산 저장된 파일에서 데이터를 읽어오며, 각 노드의 프로세스는 이를 읽어 병렬로 처리한다. 그리고, 알고리즘에 따라 그 결과를 병합하는 연산을 수행하게 된다.
한편, PIGraph는 최종적으로 RDMA 연산을 통해 각 노드의 데이터를 직접 액세스할 수 있기 때문에, 노드의 독립적인 관리가 가능하다. 다시 말해서, 기존 시스템들이 사용한 컴바이너나 공유 메모리와 같은 별도의 구조나 모니터링/스케줄링 등을 통한 복잡한 관리 방식이 불필요하다. 결과적으로, RDMA 도입을 통해 그래프 처리 엔진 구조의 경량화, 관리 복잡도 감소 효과를 얻었음을 알 수 있다.
도 2는 PIGraph의 그래프 처리 과정 네 가지를 도시한다.
처리 과정은 (1) 그래프 생성, (2) 네트워크 설정, (3) 그래프 처리, (4) 세그먼트 송수신의 4가지 단계로 구성된다.
그래프 생성 단계는, 로컬 파일 시스템에서 간선 정보가 담겨있는 방향 그래프 파일을 읽고, 이를 이용하여 정보를 그래프 처리를 위한 자료구조로 변환하는 단계이다. 일 예로, 그래프 파일은 줄마다 시작 정점의 번호와 도착 정점의 번호가 담겨있는 간선 정보로 구성될 수 있다. 각 프로세스는 자신의 프로세스 번호를 기반으로 시작 정점의 번호와 해시 함수를 이용하여 자신에게 할당되는 간선 정보를 선별하고, 이를 저장한다. 모든 프로세스의 파일 읽기가 끝나면 각 프로세스는 저장된 간선 정보를 이용하여 그래프 처리를 위한 자료구조 변환 연산을 시작한다. 변환 연산은 각 프로세스의 저장된 간선 정보를 이용하여 Pregel과 유사한 vertex 클래스로 변환하는 과정을 의미한다. vertex 클래스 안에는 정점 번호와 도착 정점 정보, 메시지 큐 정보가 담겨있다. 각 프로세스는 우선 저장된 간선 정보에서 시작 정점과 도착 정점의 정보를 분리한다. 이후 시작(출발) 정점을 기반으로 vertex 클래스를 생성하고 클래스의 도착 정점 정보 인스턴스 변수에 도착 정점을 추가한다. 모든 프로세스의 변환 연산이 완료되면(: 모든 vertex 클래스 생성이 끝나면), 네트워크 설정 단계로 넘어간다.
네트워크 설정 단계는 네트워크 통신을 위해 사용하는 네트워크 프로토콜별로 노드 간 연결을 설정하는 단계이다.
네트워크 설정 단계는 두 가지 경우로 구분된다. 먼저, PIGraph-IPoIB는 그래프 처리에 참여하는 모든 노드의 네트워크 정보를 이용하여 IPoIB 통신이 가능하도록 연결한다. 그리고, PIGraph-RDMA는 PIGraph-IPoIB의 네트워크 연결과 유사한 과정을 거친 이후 각 노드들이 자신의 메모리 정보를 연결된 모든 원격 노드들과 공유한다.
본 개시에서 최종 제안하는 PIGraph는 RDMA 프로토콜을 사용하지만, TCP/IC 기반 기존 시스템과의 성능 평가를 위해 IPoIB 프로토콜을 함께 설계하였다.
먼저, PIGraph-IPoIB의 네트워크 설정 단계는 (1) 소켓 생성, (2) 소켓 연결, (3) 연결 확인 순으로 수행된다. 우선 프로세스는 클러스터 내 모든 노드의 호스트 정보를 기반으로 전체 프로세스에 대한 송신 소켓과 수신 소켓을 생성한다. 이후 송신 소켓은 연결 요청을 보내고 수신 소켓은 연결 요청을 기다린다. 모든 소켓의 연결이 완료되면 다른 프로세스의 소켓 연결이 완료될 때까지 대기 후 그래프 처리 단계로 넘어간다.
다음으로, PIGraph-RDMA의 네트워크 설정 단계는 (1) 소켓 생성, (2) 소켓 연결, (3) 연결 확인, (4) queue pair 생성, (6) 메모리 및 queue pair 정보 교환, (6) queue pair 연결 (7) 연결 확인 순으로 수행된다. 절차 (1), (2), (3)은 IPoIB와 동일하며, 이는 절차 (6)을 위해 사전에 수행되어야 한다. 모든 프로세스의 소켓 연결이 완료되면, 각 프로세스는 전체 프로세스와의 RDMA 통신을 위한 queue pair를 생성한다. 여기서 queue pair는 RDMA 통신에서 소켓과 유사한 역할을 하는 인스턴스이다. 모든 queue pair 생성이 완료되면 각 프로세스는 소켓을 통해 자신의 queue pair 정보와 RDMA 통신에 사용할 메모리 주소 정보를 소켓 통신으로 공유한다. 이후 수신 받은 queue pair 정보를 이용하여 프로세스 간 연결을 수행하고, 모든 queue pair 연결이 완료되면 그래프 처리 단계로 넘어간다.
그래프 처리 단계는 사용자가 정의한 정점 함수를 수행하는 단계이다.
그래프 처리 단계는 다시 그래프 질의 수행, 메시지 생성, 원격 노드 검색, 정점 상태 갱신, 원격 노드 확인 중 적어도 하나의 세부 과정을 거친다.
일 예로, 그래프 처리 단계는 (1) 그래프 질의 수행, (2) 메시지 생성, (3) 원격 노드 검색, (4) 정점 상태 갱신, (5) 원격 노드 확인의 세부 과정을 거친다.
먼저, 각 정점은 병렬로 정의된 그래프 질의를 수행한다. 만약, 정점에서 질의가 처음 수행되는 경우(: 첫번째 superstep)라면 각 정점은 초기값만 계산한다. 그렇지 않은 경우, 수신된 메시지와 정점 값을 종합하여 질의를 수행한다.
질의 수행이 끝나면, 연결된 정점에 전달하기 위해 목적지 id와 연산 결과인 value를 포함하는 메시지를 생성한다.
메시지 생성이 완료되면 프로세스는 원격 노드 검색을 수행한다. PIGraph-IPoIB는 목적지 정점이 있는 노드의 소켓, PIGraph-RDMA는 queue pair를 탐색하는 검색 과정을 수행한다. 이때 원격 노드 검색은 메시지의 목적지 id와 해시함수를 이용한다.
노드 검색이 완료되면, 생성된 메시지를 세그먼트 송수신 단계로 전달한다.
모든 메시지와 세그먼트 송수신이 완료되면, 각 정점은 다음 반복에서 자신의 상태(활성/비활성)를 결정한다(: 정점 상태 갱신). 정점 상태는 정점 메시지 큐의 메시지 유무에 따라 결정된다. 만약 수신 받은 메시지가 존재한다면 정점은 다음 반복에서 활성 상태가 되고, 메시지가 존재하지 않으면 비활성 상태가 된다. 프로세스에 속한 모든 정점의 상태가 결정되면 프로세스는 원격 노드들에 자신이 가진 정점들의 상태를 공유한다. 이때, 만약 자신을 포함한 모든 프로세스에서 활성화된 정점이 없다면 프로세스를 종료한다. 반면에, 활성화된 정점이 있다면 사용자가 지정한 반복 횟수가 완료되거나 모든 정점이 비활성화될 때까지 (3) 그래프 처리 단계와 (4) 세그먼트 송수신 단계를 반복한다.
세그먼트 송수신 단계는 생성된 메시지를 교환하기 위한 연산을 수행하는 단계이다. 본 개시에 따른 PIGraph의 노드 간 데이터 송수신은 인피니밴드의 큰 대역폭을 활용하기 위해 각 superstep에서 생성되는 모든 메시지를 묶은 세그먼트 단위로 이루어진다. 송신 과정에서는 마지막 메시지가 올 때까지 메시지를 세그먼트에 추가하면서 대기하고, 이후 원격지로 전송한다. 수신 과정에서 PIGraph-IPoIB는 세그먼트의 마지막 부분을 수신한 후 각 정점의 메시지 큐에 입력하고, PIGraph-RDMA는 호스트에서 모든 세그먼트 전송이 완료될 때까지 대기한다. 모든 세그먼트 송수신이 완료되면, 그래프 처리 단계로 돌아가 원격 노드들에게 자신이 소유한 정점들의 상태를 공유한다. 만약 원격 노드 확인 시 자신을 포함한 모든 노드에서 활성화된 정점이 없다면 프로세스를 종료한다. 반면에, 활성화된 정점이 있다면 사용자가 지정한 최종 superstep이 완료되거나 모든 정점이 비활성화 될 때까지 (3) 그래프 처리 단계와 (4) 세그먼트 송수신 단계를 반복한다.
본 개시에 따른 PIGraph는 Pregel과 다르게 네트워크 통신 과정에서 프로토콜과 관계없이 모두 각 정점의 처리가 완료된 후 통신을 수행한다. Pregel에서는 생성된 메시지를 연산 중간에 고정된 크기의 블록 단위로 모아서 송수신한다. 그러나, PIGraph는 한 반복의 모든 메시지를 모은 세그먼트 단위로 네트워크 통신을 수행한다. 해당 구조는 단순히 데이터를 더 많이 모아서 전송하는 것이 아니라, 인피니밴드의 높은 대역폭과 RDMA의 특성을 최대한 활용하기 위한 것이다. 세그먼트 기반 통신으로 전송 횟수를 감소시킴으로써 전체적인 통신 성능을 개선할 수 있다. 이러한 방식을 Pregel에 그대로 적용하면 반복 연산의 처리 대기로 인해 더 큰 병목을 야기한다.
PIGraph와 Pregel의 또 다른 차이점은 컴바이너의 사용 여부이다. Pregel은 네트워크 통신량을 줄이기 위해 컴바이너라는 중간 관리자를 사용하지만, PIGraph는 모든 프로토콜에서 컴바이너와 유사한 연산을 수행하지 않는다. 이는 대용량 통신에 적합한 RDMA 프로토콜에서 기존 기법을 그대로 활용했을 때, 컴바이너 사용에 따른 추가적인 연산에 의한 오버헤드가 나타날 것으로 예상되기 때문이다. 이러한 구조적 차이에 따라 RDMA에 최적화된 PIGraph가 기존 시스템들과 비교했을 때 어느 정도의 성능 향상을 가져오는지를 정확하게 파악할 수 있다.
PIGraph의 세그먼트 송수신 단계는 IPoIB와 RDMA, 두 가지 경우로 구분된다. 먼저, PIGraph-IPoIB의 세그먼트 송수신 단계는 도 3과 같이 (1) 메시지 수집, (2) marshalling, (3) 세그먼트 송신, (4) 세그먼트 수신, (5) demarshalling, (6) 메시지 버퍼 탐색 및 메시지 큐잉 순으로 수행된다. 우선 네트워크 매니저는 마지막 메시지가 올 때까지 정점에서 전달받은 모든 메시지를 모은다. 이후 marshalling 과정을 진행하고 목적지 원격 노드에 세그먼트를 송신한다. 현재 프로세스의 세그먼트 송신이 끝나면 원격 노드로부터 수신한 세그먼트의 demarshalling을 수행한다. Demarshalling된 세그먼트의 모든 메시지는 자신의 목적지 메시지 버퍼를 탐색하고 큐잉된다. 모든 메시지가 큐잉되면 프로세스는 세그먼트 송수신 단계를 종료한다.
PIGraph-RDMA의 세그먼트 송수신 단계는 도 4와 같이 (1) 메시지 수집, (2) 메시지 버퍼 탐색 및 메시지 큐잉 (3) 세그먼트 송신 확인 순으로 수행된다. 먼저, 네트워크 매니저는 마지막 메시지가 올 때까지 정점에서 전달받은 모든 메시지를 모은다. 이후 마지막 메시지까지 도착하면 원격 노드의 메모리 정보를 이용하여 절차 (2)를 수행한다. (2)가 완료되면 세그먼트를 송신하고 해당 세그먼트의 정상 수신을 확인한 뒤 세그먼트 송수신 단계를 종료한다.
PIGraph-IPoIB와 PIGraph-RDMA의 차이점은 marshalling /demarshalling 과정 유무, TCP/IP 계층 사용 여부, 세그먼트 수신 과정이다. PIGraph-RDMA는 PIGraph -IPoIB와 다르게 직접 원격 노드의 메모리에 직접 데이터를 전송할 수 있어 marshalling/demarshalling 수행이 불필요하며, 이 과정에서 TCP/IP 계층도 사용하지 않아 버퍼 복사가 발생하지 않는다. 또한, 세그먼트 수신 시 추가 연산이 필요 없어 원격 노드의 CPU 사용량을 감소시킬 수 있다.
이하 세 가지 실험을 통해 본 개시에 따른 PIGraph의 성능을 평가한다. 먼저, 실험 1에서는 앞서 설명한 PIGraph-IPoIB와 Giraph-IPoIB의 질의 처리 속도를 비교한다. 다음으로 실험 2에서는 네트워크 프로토콜에 따른 PIGraph의 성능 비교를 진행한다. 마지막으로, 실험 3에서는 PIGraph-RDMA와 Giraph-IPoIB의 그래프 알고리즘 수행시간 비교를 통해 제안 엔진의 효율성을 보인다. 그래프 알고리즘은 실험 1과 3에서 PageRank 알고리즘을 사용하며, 실험 2에서는 PageRank와 SSSP(Single Source Shortest Path) 알고리즘을 사용한다. 실험에는 표 1과 같이 총 세 개의 데이터를 사용했으며, 하드웨어는 Intel Xeon 2.4GHz 6 Core와 64GB RAM, Mellanox SwitchX®-3 MSX6012F-1BFS Managed FDR 56Gbps를 사용한다. 표 1의 그래프 밀집도는 Coleman, et al. 이 제시한 그래프 밀집 산출식을 사용했으며, 1에 가까울수록 그래프는 완전 그래프에 가깝다.
도 5는 PIGraph-IPoIB와 Giraph-IPoIB의 PageRank 수행시간을 비교한 실험 1의 결과이다. 도 5를 참조하면, 그래프 밀집도가 낮은 wiki-Talk에서는 노드 수와 상관없이 PIGraph-IPoIB가 빠른 수행시간을 보인다. 그러나, 그래프 밀집도가 증가하면 PIGraph-IPoIB의 수행시간이 증가함을 알 수 있다. 이는 세그먼트가 커질수록 TCP/IP 환경에서 Hadoop의 안정적인 데이터 관리 구조를 사용하는 Giraph가 성능면에서 더 유리함을 의미한다. 제안 엔진은 네트워크 통신 개선을 목적으로 하므로, 복잡한 자료구조나 데이터 관리 매커니즘을 적용하지 않은 간단한 그래프 처리 구조를 갖고 있다. 따라서, 실험 1에서 발생한 밀집 그래프 환경에서의 성능 저하 역시 RDMA를 적용한 네트워크 구조 개선을 통해 해결하고자 한다.
도 6은 실험 2에서 네트워크 프로토콜에 따른 알고리즘 수행 시간을 비교한다. 먼저, 알고리즘별로 PageRank에서는 최대 191%이상, SSSP에서는 최대 149% 이상 PIGraph-RDMA가 성능을 향상시켰다. 이는 PageRank에서 생성되는 세그먼트에 비해 SSSP에서 생성된 세그먼트 크기가 작아 RDMA의 성능 개선 폭이 감소하기 때문이다. 또한, 다른 데이터에 비해 wiki-Talk에서의 성능 개선 정도가 더 작음을 알 수 있다. 해당 결과 역시 그래프 밀집도가 낮을수록 생성된 세그먼트 크기가 작아 RDMA의 성능 개선 폭이 감소하기 때문에 생기는 결과이다.
도 7은 실험 2에서 네트워크 프로토콜에 따른 알고리즘별 CPU 사용량을 비교한 결과이다. 그래프를 보면, PageRank에서는 데이터와 노드 수에 관계없이 모두 PIGraph-RDMA의 CPU 사용량이 더 낮음을 알 수 있다. 그러나, SSSP 알고리즘의 경우 soc-LiveJournal1을 제외하면 오히려 PIGraph-IPoIB에서 더 낮은 CPU 사용률을 보인다. 이는 SSSP 알고리즘이 PageRank에 비해 생성되는 세그먼트 양이 적어 RDMA의 장점이 잘 반영되지 않기 때문이다. 특히, RDMA는 노드 간 통신을 위해 복잡한 정보 전달 과정이 필요한데, SSSP에서는 그 과정에 사용된 CPU 사용량이 세그먼트 처리에 사용된 CPU 사용량보다 많다. 결과적으로, 실험 2를 통해 그래프 밀집도가 높을수록, PageRank와 같이 네트워크 연산량이 많은 알고리즘일수록 RDMA를 적용하는 것이 유리함을 알 수 있다.
도 8은 PIGraph-IPoIB와 Giraph-IPoIB의 PageRank 수행시간을 비교한 실험 3의 결과이다. 도 8을 참조하면, 모든 데이터에서 노드 수와 관계없이 PIGraph-RDMA가 수행 시간이 더 빠름을 알 수 있다. 이는 실험 1에서 Giraph에 비해 떨어졌던 PIGraph-IPoIB의 처리 성능을 RDMA를 통해 향상시켰음을 의미한다. 결과적으로, 가용 메모리가 충분한 환경에서 분산 그래프 처리에 PIGraph-RDMA를 사용했을 때, Giraph에 비해 최대 190%까지 성능을 향상시켰다.
본 개시에서는 분산 환경에서 그래프 처리 성능을 개선하기 위해 인피니밴드의 IPoIB와 RDMA를 지원하는 PIGraph를 제안하였다. PIGraph는 대표적인 vertex-centric인 Pregel의 그래프 연산 방식을 적용한 그래프 처리 엔진으로, 네트워크 통신 방식을 개선하여 전체 처리 성능을 향상시키는 것을 목적으로 한다. 여러 조건에서의 비교 실험 결과, 밀집도가 높은 그래프, 네트워크 연산량이 많은 알고리즘에서 PIGraph-RDMA가 PIGraph-IPoIB와 Giraph-IPoIB보다 높은 성능을 나타냄을 확인하였다. 제안하는 PIGraph는 복잡한 데이터 관리 체계나 자료구조 없이 네트워크 프로토콜 개선만으로 일정 수준 이상의 그래프 처리 성능 향상을 기대할 수 있음을 보인 의미 있는 사례이다.
도 6은 본 개시의 일 실시 예에 따라 시스템 내 적어도 하나의 노드로 동작하는 전자 장치의 구성을 설명하기 위한 블록도이다.
전자 장치(100)는 메모리(110), 통신부(120), 프로세서(130)를 포함한다.
메모리(110)는 전자 장치(100)의 구성요소들의 전반적인 동작을 제어하기 위한 운영체제(OS: Operating System) 및 전자 장치(100)의 구성요소와 관련된 적어도 하나의 인스트럭션 또는 데이터를 저장하기 위한 구성이다.
메모리(110)는 ROM, 플래시 메모리 등의 비휘발성 메모리를 포함할 수 있으며, DRAM 등으로 구성된 휘발성 메모리를 포함할 수 있다. 또한, 메모리(110)는 하드 디스크, SSD(Solid state drive) 등을 포함할 수도 있다.
통신부(120)는 다양한 유무선 통신방식으로 적어도 하나의 외부 장치와 통신을 수행하기 위한 회로, 모듈, 칩 등을 포함할 수 있다.
통신부(120)는 다양한 유무선 통신방식으로 적어도 하나의 외부 장치와 통신을 수행하기 위한 회로, 모듈, 칩 등을 포함할 수 있다. 통신부(120)는 다양한 네트워크를 통해 외부 장치와 연결될 수 있다.
네트워크는 영역 또는 규모에 따라 개인 통신망(PAN; Personal Area Network), 근거리 통신망(LAN; Local Area Network), 광역 통신망(WAN; Wide Area Network) 등일 수 있으며, 네트워크의 개방성에 따라 인트라넷(Intranet), 엑스트라넷(Extranet), 또는 인터넷(Internet) 등일 수 있다.
통신부(120)는 LTE(long-term evolution), LTE-A(LTE Advance), 5G(5th Generation) 이동통신, CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), GSM(Global System for Mobile Communications), DMA(Time Division Multiple Access), WiFi(Wi-Fi), WiFi Direct, Bluetooth, NFC(near field communication), Zigbee 등 다양한 무선 통신 방식을 통해 외부 장치들과 연결될 수 있다.
또한, 통신부(120)는 이더넷(Ethernet), 광 네트워크(optical network), USB(Universal Serial Bus), 선더볼트(ThunderBolt) 등의 유선 통신 방식을 통해 외부 장치들과 연결될 수도 있다.
프로세서(130)는 전자 장치(100)를 전반적으로 제어하기 위한 구성이다. 구체적으로, 프로세서(120)는 메모리(110)와 연결되는 한편 메모리(110)에 저장된 적어도 하나의 인스트럭션을 실행함으로써 본 개시의 다양한 실시 예들에 따른 동작을 수행할 수 있다.
프로세서(120)는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit) 등과 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서 등을 포함할 수 있다. 인공지능 전용 프로세서는, 특정 인공지능 모델의 훈련 내지는 이용에 특화된 하드웨어 구조로 설계될 수 있다.
프로세서(120)는 상술한 PIGraph의 설계 및 운영과 관련된 다양한 동작을 수행할 수 있다.
한편, 상술한 실험에 따르면, PIGraph에 대한 RDMA 기반의 네트워크가 가장 효율적임이 확인되었다.
다만, 본 개시의 일 실시 예에 따른 시스템은, 복수의 노드의 그래프 밀집도가 (기설정된) 임계치 미만인 경우, 복수의 노드가 IPoIB(IP over InfiniBand) 프로토콜을 통해 연결될 수도 있다. 즉, 시스템을 구성하는 노드들은 그래프 밀집도에 따라 네트워크(RDMA vs IPoIB)를 유동적으로 선택하여 활용할 수도 있다.
그래프 밀집도는, 정점 및/또는 노드의 수에 대한 간선의 수에 따라 산출되는 것으로, 간선의 수가 많고 복잡할수록 그래프 밀집도는 커진다.
관련하여, 본 개시의 일 실시 예에 따른 시스템을 구성하는 복수의 노드 중 적어도 하나의 노드가, 시스템을 구성하는 노드의 수 및 노드 간의 간선의 수를 바탕으로 그래프 밀집도를 일정 주기에 따라 모니터링할 수도 있다. 노드 및/또는 간선의 수는 적어도 하나의 노드를 통해 수신되는 사용자 입력에 따라 업데이트될 수 있다. 또는, 단위 주기마다 통신 로드가 일정량 이하인 적어도 하나의 노드가 네트워크에서 자동으로 제외되는 것도 가능하다.
그리고, 본 개시의 일 실시 예에 따른 시스템은, 일정 주기 별로 모니터링된 그래프 밀집도의 평균을 바탕으로 IPoIB 및 RDMA 중 하나의 프로토콜을 선택하여 그에 따라 그래프 처리를 수행할 수 있다.
즉, 시스템이 기본적으로는 RDMA 네트워크를 활용하되, 그래프 밀집도가 임계치 미만이 되는 경우 IPoIB 네트워크를 활용할 수 있다. 이후 그래프 밀집도가 다시 임계치 이상이 되는 경우 시스템은 다시 RDMA 네트워크로 돌아올 수 있다.
다만, IPoIB 네트워크로 변환한 시점으로부터 일정 시간 동안에는, 그래프 밀집도가 임계치 이상이 되더라도 RDMA 네트워크로 바로 변환하지 않을 수 있다. 시스템의 안정성을 위함이다.
한편, 이상에서 설명된 다양한 실시 예들은 서로 저촉되지 않는 한 복수의 실시 예가 결합되어 구현될 수 있다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(Software), 하드웨어(Hardware) 또는 이들의 조합된 것을 이용하여 컴퓨터(Computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다.
하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서(Processors), 제어기(Controllers), 마이크로 컨트롤러(Micro-controllers), 마이크로 프로세서(Microprocessors), 기타 기능 수행을 위한 전기적인 유닛(Unit) 중 적어도 하나를 이용하여 구현될 수 있다.
일부의 경우에 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상술한 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 각 장치에서의 처리동작을 수행하기 위한 컴퓨터 명령어(Computer Instructions) 또는 컴퓨터 프로그램은 비일시적 컴퓨터 판독 가능 매체(Non-transitory Computer-readable Medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어 또는 컴퓨터 프로그램은 전자 장치/노드 등 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 전자 장치/노드의 동작을 상술한 특정 기기가 수행하도록 한다.
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(Reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
100 : 전자 장치
110: 메모리
120: 통신부 130: 프로세서
120: 통신부 130: 프로세서
Claims (11)
- 그래프 처리를 수행하는 복수의 노드를 포함하는 시스템의 제어 방법에 있어서,
상기 복수의 노드 중 적어도 하나의 노드가, 상기 복수의 노드 중 출발 정점을 id로 하는 vertex 클래스를 생성하는, 그래프 생성 단계;
상기 복수의 노드가, RDMA(Remote Direct Memory Access) 프로토콜을 통해 상기 복수의 노드를 연결하는, 네트워크 설정 단계;
각 노드가, 그래프 질의, 메시지 생성, 원격 노드 검색, 정점 상태 갱신, 및 원격 노드 확인 중 적어도 하나를 수행하는, 그래프 처리 단계; 및
각 노드가, 각 superstep에서 생성되는 메시지를 세그먼트 단위로 송신 또는 수신하는, 세그먼트 송수신 단계;를 포함하는, 시스템의 제어 방법. - 제1항에 있어서,
상기 그래프 처리 단계에서, 각 노드는,
superstep이 처음 수행되는 경우, 초기값을 산출하고,
superstep이 처음 수행된 것이 아닌 경우, 다른 노드로부터 수신되는 메시지와 정점 값을 바탕으로 그래프 질의를 수행하는, 시스템의 제어 방법. - 제2항에 있어서,
상기 그래프 처리 단계에서, 각 노드는,
상기 그래프 질의가 수행되면, 연결된 다른 노드에 전달하기 위해 목적지 id와 연산 결과인 value를 포함하는 메시지를 생성하는, 시스템의 제어 방법. - 제3항에 있어서,
상기 그래프 처리 단계에서, 각 노드는,
큐 페어(queue pair)를 탐색하는 원격 노드 검색을 수행하는, 시스템의 제어 방법. - 제4항에 있어서,
상기 그래프 처리 단계에서, 각 노드는,
상기 메시지가 모두 전달되면, 다음 superstep에 대한 각 노드의 활성 또는 비활성 상태를 결정하는, 시스템의 제어 방법. - 제1항에 있어서,
상기 세그먼트 송수신 단계에서, 각 노드는,
마지막 메시지가 수신될 때까지 메시지를 세그먼트에 추가하면서 대기하고,
상기 마지막 메시지가 수신되면, 상기 세그먼트를 원격지로 전송하는, 시스템의 제어 방법. - 제1항에 있어서,
상기 시스템의 제어 방법은,
각 노드가, 상기 세그먼트 송수신 단계가 완료됨에 따라 적어도 하나의 원격 노드로 각 노드가 소유한 정점들의 상태를 공유하는, 그래프 처리 단계;를 재차 수행하는, 시스템의 제어 방법. - 제7항에 있어서,
상기 시스템의 제어 방법은,
상기 복수의 노드는, 사용자가 지정한 최종 superstep이 완료되거나 모든 정점이 비활성화될 때까지, 상기 그래프처리 단계와 상기 세그먼트 송수신 단계를 반복하는, 시스템의 제어 방법. - 제1항에 있어서,
상기 네트워크 설정 단계는,
상기 복수의 노드의 그래프 밀집도가 임계치 미만인 경우, 상기 복수의 노드가 IPoIB(IP over InfiniBand) 프로토콜을 통해 연결되는, 시스템의 제어 방법. - 제9항에 있어서,
상기 시스템의 제어 방법은,
상기 복수의 노드 중 적어도 하나의 노드가, 상기 시스템을 구성하는 노드의 수 및 상기 노드 간의 간선의 수를 바탕으로 상기 그래프 밀집도를 일정 주기에 따라 모니터링하는 단계;를 포함하고,
상기 네트워크 설정 단계는,
상기 일정 주기 별로 모니터링된 그래프 밀집도의 평균을 바탕으로 상기 IPoIB 및 상기 RDMA 중 하나의 프로토콜을 선택하는, 시스템의 제어 방법. - 전자 장치의 프로세서에 의해 실행되어, 상기 전자 장치로 하여금, 복수의 노드 중 하나의 노드로서 제1항의 제어 방법을 수행하도록 하는, 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220158234A KR20240076097A (ko) | 2022-11-23 | 2022-11-23 | 인피니밴드 네트워크에서 분산 병렬 그래프 데이터 처리의 성능 개선 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220158234A KR20240076097A (ko) | 2022-11-23 | 2022-11-23 | 인피니밴드 네트워크에서 분산 병렬 그래프 데이터 처리의 성능 개선 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240076097A true KR20240076097A (ko) | 2024-05-30 |
Family
ID=91276041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220158234A KR20240076097A (ko) | 2022-11-23 | 2022-11-23 | 인피니밴드 네트워크에서 분산 병렬 그래프 데이터 처리의 성능 개선 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240076097A (ko) |
-
2022
- 2022-11-23 KR KR1020220158234A patent/KR20240076097A/ko not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10642777B2 (en) | System and method for maximizing bandwidth of PCI express peer-to-peer (P2P) connection | |
CN108062285B (zh) | 一种访问NVMe存储设备的方法和NVMe存储设备 | |
US10757031B2 (en) | Technologies for aligning network flows to processing resources | |
US20170075855A1 (en) | Low latency remote direct memory access for microservers | |
US9883261B2 (en) | Data switching system, method for sending data traffic, and switching apparatus | |
CN110636139B (zh) | 一种云负载均衡的优化方法及系统 | |
US9036469B2 (en) | Data communication in openflow networks | |
WO2011137187A2 (en) | Virtual topology adaptation for resource optimization in telecommunication networks | |
WO2018063577A1 (en) | Technologies for scalable hierarchical interconnect topologies | |
WO2015010197A1 (en) | Method and apparatus for providing redundant data access | |
CN106411872A (zh) | 一种基于数据报文分类的报文压缩的方法和装置 | |
CN109952809B (zh) | 四元全网状以维度驱动的网络架构 | |
CN117632808B (zh) | 多控存储阵列、存储系统、数据处理方法以及存储介质 | |
CN115202573A (zh) | 数据存储系统以及方法 | |
KR20240076097A (ko) | 인피니밴드 네트워크에서 분산 병렬 그래프 데이터 처리의 성능 개선 | |
US11212214B2 (en) | Parallel computer system, method of controlling a parallel computer system, and a non-temporary computer-readable medium that stores a program | |
CN115509644B (zh) | 算力卸载方法、装置、电子设备和存储介质 | |
CN104125292A (zh) | 一种数据处理装置、云服务器及其使用方法 | |
CN106790480B (zh) | 一种用于链路聚合链接条件下的文件传输方法 | |
WO2023035722A1 (zh) | Rdma数据传输系统、rdma数据传输方法及网络设备 | |
JP2015233221A (ja) | 統計情報メモリシステム、ネットワーク機器、および統計情報蓄積方法 | |
US9385961B2 (en) | Parallel computing device, communication control device, and communication control method | |
US20190273693A1 (en) | Technologies for pacing network packet transmissions | |
US20150254196A1 (en) | Software Enabled Network Storage Accelerator (SENSA) - network - disk DMA (NDDMA) | |
US20150254100A1 (en) | Software Enabled Network Storage Accelerator (SENSA) - Storage Virtualization Offload Engine (SVOE) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal |