PCI Express는 고속, 저전력 등의 특성으로 인하여 프로세서와 주변 I/O 장치들을 연결하는 업계 표준의 버스 기술이다. PCI Express는 최근 고성능 컴퓨터나 클러스터/클라우드 컴퓨팅 등의 분야에서 시스템 인터커넥션 네트워크로서 그 활용가능성을 검증하고 있는 추세이다. PCI Express가 시스템 인터커넥션 네트워크로서 활용가능하게 된 계기는 PCI Express에 NTB(non-transparent bridge) 기술이 도입되면서부터이다. NTB 기술은 물리적으로 두 PCI Express subsystem을 연결가능하도록 하지만, 필요할 경우 논리적인 격리(isolation)를 제공하는 특징이 있다. 또한, PGAS(partitioned global address space)와 같은 공유 주소 공간(shared address space) 프로그래밍 모델은 최근 멀티코어 프로세서의 보편화로 인하여 병렬컴퓨팅프레임워크로 각광받고 있다. 따라서, 본 논문에서는 차세대 병렬컴퓨팅 플랫폼을 위하여 PCI Express 환경에서 OpenSHMEM을 구현하기 위한 초기 OpenSHMEM API를 설계 및 구현하였다. 본 연구에서 구현한 15가지 OpenSHMEM API의 정확성을 검증하기 위해서 Github의 openshmem-example 벤치마크의 수행을 통하여 확인하였다. 현재 시중에서는 PCI Express 기반 인터커넥션 네트워크는 가격이 매우 비싸고 아직 일반인이 사용하기 용이하도록 NIC형태로 널리 보급되지 않은 실정이다. 이러한 기술개발 초기단계에서 본 연구는 PCI Express 기반 interconnection network를 RDK(evaluation board) 수준에서 실제로 동작하는 실험환경을 구축하고, 여기에 추가로 최근 각광받는 OpenSHMEM software stack를 자체적으로 구현하였다는 데 의의가 있다.
PCI Express는 고속, 저전력 등의 특성으로 인하여 프로세서와 주변 I/O 장치들을 연결하는 업계 표준의 버스 기술이다. PCI Express는 최근 고성능 컴퓨터나 클러스터/클라우드 컴퓨팅 등의 분야에서 시스템 인터커넥션 네트워크로서 그 활용가능성을 검증하고 있는 추세이다. PCI Express가 시스템 인터커넥션 네트워크로서 활용가능하게 된 계기는 PCI Express에 NTB(non-transparent bridge) 기술이 도입되면서부터이다. NTB 기술은 물리적으로 두 PCI Express subsystem을 연결가능하도록 하지만, 필요할 경우 논리적인 격리(isolation)를 제공하는 특징이 있다. 또한, PGAS(partitioned global address space)와 같은 공유 주소 공간(shared address space) 프로그래밍 모델은 최근 멀티코어 프로세서의 보편화로 인하여 병렬컴퓨팅 프레임워크로 각광받고 있다. 따라서, 본 논문에서는 차세대 병렬컴퓨팅 플랫폼을 위하여 PCI Express 환경에서 OpenSHMEM을 구현하기 위한 초기 OpenSHMEM API를 설계 및 구현하였다. 본 연구에서 구현한 15가지 OpenSHMEM API의 정확성을 검증하기 위해서 Github의 openshmem-example 벤치마크의 수행을 통하여 확인하였다. 현재 시중에서는 PCI Express 기반 인터커넥션 네트워크는 가격이 매우 비싸고 아직 일반인이 사용하기 용이하도록 NIC형태로 널리 보급되지 않은 실정이다. 이러한 기술개발 초기단계에서 본 연구는 PCI Express 기반 interconnection network를 RDK(evaluation board) 수준에서 실제로 동작하는 실험환경을 구축하고, 여기에 추가로 최근 각광받는 OpenSHMEM software stack를 자체적으로 구현하였다는 데 의의가 있다.
PCI Express is a bus technology that connects the processor and the peripheral I/O devices that widely used as an industry standard because it has the characteristics of high-speed, low power. In addition, PCI Express is system interconnect technology such as Ethernet and Infiniband used in high-per...
PCI Express is a bus technology that connects the processor and the peripheral I/O devices that widely used as an industry standard because it has the characteristics of high-speed, low power. In addition, PCI Express is system interconnect technology such as Ethernet and Infiniband used in high-performance computing and computer cluster. PGAS(partitioned global address space) programming model is often used to implement the one-sided RDMA(remote direct memory access) from multi-host systems, such as computer clusters. In this paper, we design and implement a OpenSHMEM API based on PCI Express maintaining the existing features of OpenSHMEM to implement RDMA based on PCI Express. We perform experiment with implemented OpenSHMEM API through a matrix multiplication example from system which PCs connected with NTB(non-transparent bridge) technology of PCI Express. The PCI Express interconnection network is currently very expensive and is not yet widely available to the general public. Nevertheless, we actually implemented and evaluated a PCI Express based interconnection network on the RDK evaluation board. In addition, we have implemented the OpenSHMEM software stack, which is of great interest recently.
PCI Express is a bus technology that connects the processor and the peripheral I/O devices that widely used as an industry standard because it has the characteristics of high-speed, low power. In addition, PCI Express is system interconnect technology such as Ethernet and Infiniband used in high-performance computing and computer cluster. PGAS(partitioned global address space) programming model is often used to implement the one-sided RDMA(remote direct memory access) from multi-host systems, such as computer clusters. In this paper, we design and implement a OpenSHMEM API based on PCI Express maintaining the existing features of OpenSHMEM to implement RDMA based on PCI Express. We perform experiment with implemented OpenSHMEM API through a matrix multiplication example from system which PCs connected with NTB(non-transparent bridge) technology of PCI Express. The PCI Express interconnection network is currently very expensive and is not yet widely available to the general public. Nevertheless, we actually implemented and evaluated a PCI Express based interconnection network on the RDK evaluation board. In addition, we have implemented the OpenSHMEM software stack, which is of great interest recently.
본 논문에서는 고성능 컴퓨팅이나 클러스터 컴퓨팅에 많이 사용되는 시스템 인터커넥션 네트워크 기술 중 PCI Express 기반 RDMA를 구현하기 위해 PGAS 프로그래밍인 OpenSHMEM API를 초기 설계하고 구현하였다. OpenSHMEM는 흔히 인피니밴드 기반 컴퓨터 클러스터 환경에서 쓰이며, shmem_malloc 함수로 할당한 대칭적인 글로벌 데이터 오브젝트를 shmem_put 등의 함수로 단측 RDMA 전송하는 커뮤니케이션 라이브러리이다.
제안 방법
PCI Express 환경의 shmem_double_put 함수는 먼저 매개변수인 source가 local 메모리 블록인지 symmetric 메모리 블록인지 체크하도록 설계하였다. source가 symmetric 메모리 블록이라면 DMA 전송의 source address로 매개변수 source의 물리주소를 사용하면 되지만, 물리주소를 이용한 전송인 DMA의 특성상 가상주소를 가지는 local 메모리 블록의 경우에는 물리메모리를 할당하여 사용하여야 한다.
PlxPci_BarrierDBNotificationWait 함수는 다른 PE들로부터 도어벨 인터럽트 개수를 확인한다. 본 연구에서 사용한 방법은 각 노드가 전체 노드 수 -1 만큼의 도어벨(doorbell) 인터럽트를 수신할 때 까지 대기하는 방법으로 barrier를 구현하였다.
실행환경은 Fig. 10과 같이 공유파일시스템(Network File System) 으로 파일시스템을 공유하는 환경에서 각 PE 노드가 동일한 바이너리 파일을 볼 수 있도록 설정된 환경에서 gcc 등의 컴파일러를 통해 라이브러리(-lopenshmem)를 포함 하여 링크하도록 컴파일한 후 실행하도록 하였다.
대상 데이터
본 예제에서는 PE 0은 매트릭스 c의 0번째 열부터 9번째 열까지, PE 1은 매트릭스 c의 10번째 열부터 9번째 열까지 계산하고, 각각 PE 0과 PE 1이 PE 1과 PE 0에게 계산한 결과를 RDMA 전송한 후의 매트릭스 c의 결과를 보인 것이다.
성능/효과
OpenSHMEM는 흔히 인피니밴드 기반 컴퓨터 클러스터 환경에서 쓰이며, shmem_malloc 함수로 할당한 대칭적인 글로벌 데이터 오브젝트를 shmem_put 등의 함수로 단측 RDMA 전송하는 커뮤니케이션 라이브러리이다. 구현한 OpenSHMEM API는 간단한 매트릭스 곱셈 예제를 통해 클러스터링에 많이 쓰이는 PCI Express의 nontransparent bridge를 이용하여 2대의 PC를 연결한 시스템에서 을 실험하였고, host들이 나누어 계산한 Github의 openshmem 벤치마크 예제 수행 결과를통해 확인할 수 있었다.
본 연구는 PCI Express 기반 인터커넥션 네트워크 환경이 채 보급되지도 않은 현 시점에서 PCI Express 기반 interconnection network를 RDK(evaluation board) 수준에서 실제로 동작하는 실험환경을 구축하고, 여기에 추가로 최근 각광받는 OpenSHMEM software stack를 자체적으로 구현하였다는 데 의의가 있다.
후속연구
향후 shmem_malloc 함수를 통해 할당한 symmetric heap 에서 메모리 공간을 나누는 방법 외에 즉시 메모리 공간을 나누어 공유하거나 shmem_put 함수를 통한 DMA 전송의 불필요한 오버헤드를 줄이고 QoS를 향상시켜 PCI Express 기반 OpenSHMEM API를 정형화한다면 OpenSHMEM의 플랫폼의 다양성에 도움이 될 것으로 판단된다.
질의응답
핵심어
질문
논문에서 추출한 답변
PCI Express가 시스템 인터커넥션 네트워크로서 활용가능하게 된 계기는?
PCI Express는 최근 고성능 컴퓨터나 클러스터/클라우드 컴퓨팅 등의 분야에서 시스템 인터커넥션 네트워크로서 그 활용가능성을 검증하고 있는 추세이다. PCI Express가 시스템 인터커넥션 네트워크로서 활용가능하게 된 계기는 PCI Express에 NTB(non-transparent bridge) 기술이 도입되면서부터이다. NTB 기술은 물리적으로 두 PCI Express subsystem을 연결가능하도록 하지만, 필요할 경우 논리적인 격리(isolation)를 제공하는 특징이 있다.
PCI Express는 어떤 기술인가?
PCI Express는 고속, 저전력 등의 특성으로 인하여 프로세서와 주변 I/O 장치들을 연결하는 업계 표준의 버스 기술이다. PCI Express는 최근 고성능 컴퓨터나 클러스터/클라우드 컴퓨팅 등의 분야에서 시스템 인터커넥션 네트워크로서 그 활용가능성을 검증하고 있는 추세이다.
non-transparent bridge 기술의 특징은?
PCI Express가 시스템 인터커넥션 네트워크로서 활용가능하게 된 계기는 PCI Express에 NTB(non-transparent bridge) 기술이 도입되면서부터이다. NTB 기술은 물리적으로 두 PCI Express subsystem을 연결가능하도록 하지만, 필요할 경우 논리적인 격리(isolation)를 제공하는 특징이 있다. 또한, PGAS(partitioned global address space)와 같은 공유 주소 공간(shared address space) 프로그래밍 모델은 최근 멀티코어 프로세서의 보편화로 인하여 병렬컴퓨팅 프레임워크로 각광받고 있다.
참고문헌 (14)
Interconnect family statistics of supercomputer top 500 [Internet], https://www.top500.org/statistics/list. [Accessed: August, 28, 2016].
Y. W. Kim, Y. Ren, and W. Choi, "Design and Implementation of an Alternate System Interconnect based on PCI Express," Journal of the Institute of Electronics and Information Engineers, Vol.52, No.8, pp.74-85, Aug., 2015.
V. Krishnan, "Towards an Integrated IO and Clustering Solution using PCI Express," Cluster Computing, 2007 IEEE International Conference on, pp.259-266, Sept., 2007.
Jong Min Lee, Jung Hwa Lee, and Seong Woo Kim, "Implementation of a GPU Cluster System using Inexpensive Graphics Devices," Journal of Korea Multimedia Society, Vol.14, Issue 11, pp. 1458-1466, Nov., 2011.
J. Dinan, P. Balaji, Jeff R. Hammond, S. Krishnamoorthy, and V. Tipparaju, "Supporting the Global Arrays PGAS Model Using MPI One-Sided Communication," Parallel & Distributed Processing Symposium, 2012 IEEE 26th International, pp.739-750, May, 2012.
J. Breitbart, M. Schmidtobreick, and V. Heuveline, "Evaluation of the Global Address Space Programming interface(GASPI)," Parallel & Distributed Processing Symposium Workshops (IPDPSW), 2014 IEEE International, pp.717-726, May, 2014.
Hao Wang, Sreeram Potluri, Devendar Bureddy, Carlos Rosales, and Dhabaleswar K. Panda, "GPU-Aware MPI on RDMA-Enabled Clusters: Design, Implementation and Evaluation," IEEE Transactions on Parallel and Distributed Systems, pp.2595-2605, Oct., 2014.
Ryan E. Grant, Mohammad J. Rashti, Ahmad Afsahi, and Pavan Balaji, "RDMA Capable iWARP over Datagrams," Parallel & Distributed Processing Symposium (IPDPS), 2011 IEEE International, pp.628-639, May, 2011.
Weihang Jiang, Jiuxing Liu, hyun-Wook Jin, D.K. Panda, W. Gropp, and R. Thakur, "High performance MPI-2 one-sided communication over InfiniBand," Cluster Computing and the Grid, 2004. CCGrid 2004. IEEE International Symposium on, pp.531-538, Apr., 2004.
Yong-Hwan Lee, Do-Suk Kim and Sang Yoon Oh, "QoS and Flow Control Support on PCI Express Interface Architecture," Korea Institute of Information Technology Magazine, pp.45-52, Dec., 2009.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.