[병렬 처리] 고성능 입출력 시스템 구조
글 작성자: _rian
고성능 입출력 시스템 등장 배경
- 프로세서 성능과 I/O 서브시스템의 성능 간에 매우 큰 불균형이 존재
- 컴퓨터 응용 분야의 확대 : 온라인 트랜잭션, 웹 I/O, 멀티미디어 데이터 처리, 빅데이터 및 분산 처리 등 -> I/O 통신량 증가
=> 대규모 병렬컴퓨터에서 I/O 서브시스템이 성능 병목
입출력 서브 시스템 설계의 주요 사항들
1. I/O 네트워크의 구성
I/O 네트워크 : I/O 장치와 프로세서 및 주기억장치 사이의 데이터 이동을 위한 상호 연결망
분산-기억장치 다중 프로세서 시스템의 구성 요소들
- 계산 노드 (compute node) : 프로세서와 기억장치로 구성되며 일반적인 프로그램 처리
- I/O 노드 (I/O 노드) : 프로세서와 기억장치 및 I/O 장치 인터페이스로 구성되며, 계산 노드들로부터의 I/O 요구를 처리
=> 계산 노드들과 I/O 노드들 간의 상호연결방식 필요함
I/O 노드들의 접속 방법
방법 | 장점 | 단점 |
I/O 노드들을 상호연결망에 직접 접속 | 하드웨어 간단 | 전체 상호연결망의 통신량 증가로 시스템 성능 저하 -> burst mode의 I/O 통신으로 인하여 일반적인 통신 지연 증가 |
전용 I/O 네트워크 (dedicated I/O network) | 상호연결망의 통신량을 증가시키지 않음 | 하드웨어 복잡, 비용 증가 |
I/O 노드들을 상호연결망의 일부지점에 접속 | 위의 두 방법의 단점 보완 | I/O 노드의 수 및 접속 지점 결정 필요 -> 연결성(connectivity), 대역폭, 비용간의 tradeoff로 결정 |
2. I/O 장치의 관리
I/O 노드로 사용할 노드들의 위치에 따라, 각 I/O 노드가 관리할 I/O 장치의 종류와 수의 결정 필요
I/O 관리 방식에 따른 시스템 구성 | 장점 | 단점 |
중앙집중식 | 하드웨어 간단 | I/O 노드가 성능 병목이 될 위험 |
완전 분산식 | 성능 병목 방지 | 비용 증가 |
전용 I/O 노드 사용 | 시스템 구성 변경 용이 I/O 노드의 구성 다양화 가능 계산 노드들의 속도가 개선됨. |
3. I/O 노드의 배치
병렬 컴퓨터 시스템 내에서 I/O 노드 배치 (placement) 방식
I/O 노드 배치 방식 | 장점 | 단점 |
I/O 노드들만 별도의 클러스터로 묶어두는 방법 | I/O 트래픽이 일반적인 프로세서간 통신에 미치는 영향이 적음. | I/O 노드로의 경로가 병목이 됨 |
I/O 노드들을 네트워크 내의 적절한 위치들을 선정하여 분산 배치 | 경로 병목 현상 완화됨 | I/O 통신이 프로세서간 통신을 지연시킬 우려가 있음. -> 해결책 : 하이퍼 큐브에서 해밍 코드를 이용한 I/O 배치 |
I/O 노드들을 네트워크 내 임의의 위치에 배치 | I/O 노드의 위치가 성능에 별 영향을 주지 않는 경우에 사용 가능 |
[예] 하이퍼큐브에서 최적의 I/O 노드 배치 방법
8개의 노드들 중 두 개가 I/O 노드라 하자.
모든 계산 노드들이 어느 한 I/O 노드들과 직접 접속된다. N차원 하이퍼 큐브에 대해서도 적용 가능하다.
I/O 서브시스템 구조의 사례 분석
1. 중형급 서버
단일-버스 다중 프로세서 시스템 : I/O 프로세서 사용
2. 대형 메인 프레임 컴퓨터
IBM 메인프레임의 I/O 구조 : CPU와 디스크들 간에 다중 통로 구성 -> I/O 대역폭 및 디스크 이용 효율 향상
3. CRAY Y-MP 슈퍼컴퓨터
4개의 IOP(I/O processor)들을 사용함.
- MIOP : 시스템 운영자 터미널 접속
- BIOP & DIOP : 고속 I/O 장치 (디스크) 관리
- XIOP : 저속 I/O 장치 관리 (블록 멀티플렉싱 지원)
4. IBM RP3 병렬컴퓨터
- 최대 512개의 프로세서로 구성되는 대규모 병렬 컴퓨터
- 오메가 네트워크를 이용한 공유-기억장치 시스템 구조
- 다중-디스크 I/O 시스템으로 구성 : 8개의 프로세서들로 구성되는 클러스터 당 한 개씩의 ISP(I/O and Support Processor) 배치 -> 클러스터 내 I/O 요구 처리
5. Intel iPSC
- 하이퍼 큐브 구조를 기반으로 한 병렬컴퓨터
- iPSC/2 및 iPSC/860 시스템의 I/O 구조 : 선택된 특정 노드 (I/O 노드)들만 디스크 액세스 기능을 담당. (I/O 노드 : SCSI 인터페이스 포함)
하이퍼큐브-기반 병렬컴퓨터
- nCUBE 시스템 : 하이퍼큐브 기반 병렬컴퓨터
- 별도의 I/O 네트워크를 통하여 I/O 노드 보드 접속
- I/O 통신 : I/O 노드들이 DMA 채널을 통하여 계산 노드들과 통신함
I/O 노드 : I/O 프로세서, SCSI 어뎁터 및 DMA 제어기 포함
- 단점 : 네트워크를 추가해야 함 -> 하드웨어 복잡
- 장점 : 계산 노드는 계산 작업만 전담함. 계산 노드 간 통신이 I/O 트래픽에 영향을 주지 않음. 시스템 확장에 용이 -> I/O 보드 추가 가능
6. Intel Paragon
- Paragon XP/S : Intel사의 4세대 분산-기억장치 다중 프로세서 시스템
- 매쉬 네트워크 이용
- 시스템 확장 : 행 혹은 열 단위로 노드 수 확장
- I/O 노드
- 매쉬 네트워크의 행 단위로 추가
- 고성능 인터페이스 (HIPPI, SCSI 등) 제공
7. MasPar MP-1
- 계산 위주의 응용들(시뮬레이션, 영상처리 등)을 고속 처리하기 위한 병렬 컴퓨터 시스템
- SIMD형 분산-기억장치 다중 프로세서 시스템
- 클러스터 : 16개의 PE들이 2차원 4x4 매쉬 (X-net) 구조로 연결
- 프로세서 보드 : 64개의 PE 클러스터들로 구성
- 시스템 내 최대 클러스터 수 : 1024개 (16 프로세서 보드) -> 최대 PE 수 : 16K 개
- 클러스터 간 네트워크 : 다단계 크로스바 스위치 네트워크
- I/O 접속 : 디스크 캐시에 해당하는 I/O RAM(SSD) 및 각종 I/O 인터페이스들을 포함하는 I/O 채널 이용
8. CM-5
- Thinking Machine 사에 의해 개발된 병렬컴퓨터
- 패트 트리(Fat tree) 상호 연결망을 통하여 SPARC 프로세서 노드들을 접속
- 노드들의 일부분은 계산 노드로, 일부분은 전용 I/O 노드로 사용
- I/O 노드들은 트리 구조의 한 파티션(partition)에 접속되며, PM(Partition Manager)에 의해 관리됨
- I/O 노드 : 프로세서, 버퍼 기억장치, CM-5 인터페이스 및 I/O 버스 인터페이스 포함
- 용도에 따라 디스크 노드, HIPPI-네트워크 노드, 테이프 노드라고 불림
'Computer Engineering > 병렬 처리(Parallel Processing)' 카테고리의 다른 글
[병렬 처리] 클러스터 미들웨어와 SSI (0) | 2019.06.20 |
---|---|
[병렬 처리] 클러스터 컴퓨터의 구조 및 분류 (0) | 2019.06.20 |
[병렬처리] 상호 연결망 구조 - 정적 상호 연결망의 종류 (0) | 2019.06.20 |
그래픽 처리 유니트 (GPU) - GPU의 개념과 CUDA 프로그래밍 (0) | 2019.06.20 |
단일-버스 다중프로세서 시스템(2) - 캐쉬 일관성 유지를 위한 버스 감시 매커니즘 (MESI protocol), 디렉토리 기반 캐쉬 프로토콜 (0) | 2019.06.18 |
댓글
이 글 공유하기
다른 글
-
[병렬 처리] 클러스터 미들웨어와 SSI
[병렬 처리] 클러스터 미들웨어와 SSI
2019.06.20 -
[병렬 처리] 클러스터 컴퓨터의 구조 및 분류
[병렬 처리] 클러스터 컴퓨터의 구조 및 분류
2019.06.20 -
[병렬처리] 상호 연결망 구조 - 정적 상호 연결망의 종류
[병렬처리] 상호 연결망 구조 - 정적 상호 연결망의 종류
2019.06.20 -
그래픽 처리 유니트 (GPU) - GPU의 개념과 CUDA 프로그래밍
그래픽 처리 유니트 (GPU) - GPU의 개념과 CUDA 프로그래밍
2019.06.20