240 likes | 569 Views
6. 클러스터링 ( Clustering). - 분 산 시 스 템 -. 국립 창원대학교 컴퓨터공학과 이광휘 http://csl.changwon.ac.kr/. 병렬 처리 방식 (1/5). 병렬 처리 기술의 구분 SMP (Symmetric Multiprocessing, 대칭형 다중 처리) NUMA (Non-Uniform Memory Access, 비정형 메모리 액세스) MPP (Massively Parallel Processing, 초 병렬 처리). 병렬 처리 방식 (2/5).
E N D
6. 클러스터링 (Clustering) - 분 산 시 스 템 - 국립 창원대학교 컴퓨터공학과 이광휘 http://csl.changwon.ac.kr/
병렬 처리 방식 (1/5) • 병렬 처리 기술의 구분 • SMP (Symmetric Multiprocessing, 대칭형 다중 처리) • NUMA (Non-Uniform Memory Access, 비정형 메모리 액세스) • MPP (Massively Parallel Processing, 초 병렬 처리)
병렬 처리 방식 (2/5) • SMP (Symmetric Multiprocessing) • 여러 개의 프로세서를 탑재한 병렬 컴퓨터 • 운영 체제이든 사용자 응용 프로그램이든 종류와 특징에 상관없이 시스템에 존재하는 모든 프로세서를 사용할 수 있다는 스레드 관점의 개념 • 운영 체제와 메모리를 공유하는 여러 프로세서가 프로그램을 수행하는 것 • 보통의 경우 2개의 프로세서 또는 4개의 프로세서로 구성함 • SMP 시스템 자체가 단일의 I/O와 메모리를 공유하기 때문에 병목 현상이 생길 수 있으며, 그 부하로 인하여 더 이상의 프로세스 추가는 성능 향상 측면에서 일반적으로 비효율적임
병렬 처리 방식 (3/5) • NUMA (Non-Uniform Memory Access) • 분산 공유 메모리의 일종으로 하나의 집중된 물리적 메모리가 아닌 공유 메모리 세그먼트의 집합을 사용 • 몇 개의 프로세서들 간에 중간 단계의 공유 메모리를 추가함으로써 모든 데이터 액세스가 주 버스 상에서 움직이지 않아도 됨 • 기존의 SMP 시스템보다 프로세서의 수를 크게 늘릴 수 있음
병렬 처리 방식 (4/5) • MPP (Massively Parallel Processing) • 하나의 CPU, 하나의 메모리, 하나의 OS로 구성된 여러 노드들을 독점된 상호 연결로 결합한 구성 • 수백 내지 수천 개의 프로세서를 사용하여 시스템을 구성하기에 쉬움 • 매우 빠른 프로세서를 사용하는 일반 슈퍼컴퓨터(vector supercomputer)의 속도를 능가할 수 있는 새로운 구조의 슈퍼컴퓨터
클러스터 개요 (1/3) • 클러스터(Cluster)란 • 여러 대의 개인 PC나 소형 서버 등을 네트워크 장비를 사용해 연결하여 구성한 일종의 병렬 처리용 슈퍼컴퓨터 • 가격이 저렴한 소형 장비를 이용하여 초고가의 슈퍼컴퓨터를 대체하고자 하는 의도에서 생겨난 개념
클러스터 개요 (2/3) • 클러스터 컴퓨터의 특징 • 동급의 파워에 대하여 슈퍼컴퓨터보다 가격이 저렴함 • 확장성이 기존의 슈퍼컴퓨터보다 훨씬 뛰어남 • 구성의 유연성으로 인하여 세미-맞춤형 슈퍼컴퓨터라고 할 수 있음 • 하드웨어 부품의 선택, 운영 체제, 미들웨어, 사용자 소프트웨어 등을 해결하고자 문제에 맞추어 선택 가능
클러스터 개요 (3/3) • 클러스터의 구성 요소 • 클러스터 노드 • 실질적인 작업을 처리하는 시스템 • 클러스터 관리자 • 각 노드에 대한 자원 분배 및 관리를 할 수 있는 기능을 가짐
클러스터 시스템 (1/3) • 기본 구조 • 하드웨어 운영 체제 클러스터 소프트웨어 응용 프로그램 • 클러스터링의 주목 • 리눅스의 인기에 기인함 • 오픈 소스 • 무료이거나 타 운영 체제에 비하여 훨씬 저렴 • 공식적으로 성능을 인정 받고 있음
클러스터 시스템 (2/3) • 클러스터링 소프트웨어 • 클러스터링을 위해서는 다양한 소프트웨어 지원과 사용자를 위한 API(Application Programming Interface) 프로그램이 필수적임 • 대표적인 API 두 가지 • PVM (Parallel Virtual Machine) • MPI (Message Passing Interface) • API를 기반으로 하여 클러스터 파일 시스템, 클러스터 관리 프로그램, 기타 응용 프로그램을 제작해야 함
클러스터 시스템 (3/3) • 클러스터의 종류 • HA (High Availability) 클러스터 • 여러 대의 컴퓨터를 묶어서 시스템 고장에 대비 • 효율적인 운용과부하 분산을 위하여 로드 밸런싱(load balancing)을 함 • HPC (High Performance Computing) 클러스터 • 여러 대의 컴퓨터를 묶어서 성능을 높이고자 함 • MPP, Beowulf Cluster, Grid 등 다양한 종류가 있음
클러스터의 부하 조정 (1/5) • 클러스터 스케줄링 알고리즘 • 라운드 로빈 스케줄링 (Round-Robin Scheduling) • 가중치 기반 라운드 로빈 스케줄링 (Weighted Round-Robin Scheduling) • 최소 접속 스케줄링 (Least-Connection Scheduling) • 가중치 기반 최소 접속 스케줄링 (Weighted Least-Connection Scheduling)
클러스터의 부하 조정 (2/5) • 라운드 로빈 스케줄링 • 모든 상황을 무시하고 단순하게 요청을 전달해주는 형태 • 서버의 사양이 동일하고 같은 네트워크 상이라면 가장 단순하고 효율적임
클러스터의 부하 조정 (3/5) • 가중치 기반 라운드 로빈 스케줄링 • 특정 서버에 가중치를 부여함으로써 특정한 요청을 더 많이 전달하고 싶을 때 사용하는 방식 • 실제 서버들 사이에 동적인 부하 불균형이 생길 수 있음
클러스터의 부하 조정 (4/5) • 최소 접속 스케줄링 • 가장 접속이 적은 서버로 요청을 직접 연결하는 방식 • 동적인 스케줄링 알고리즘 중의 하나임 • 접속 부하가 큰 경우에도 효과적으로 분산을 수행함 • 다양한 처리 용량을 지닌 서버로 구성되어 있을 경우에는 부하 분산이 효율적으로 되지 못할 수도 있음
클러스터의 부하 조정 (5/5) • 가중치 기반 최소 접속 스케줄링 • 최소 접속 스케줄링의 한 부분으로서 각각의 실제 서버에 가중치를 부여 • 가중치의 비율인 실제 접속자수에 따라 네트워크 접속이 할당됨
베어울프(Beowulf) 클러스터 (1/2) • 베어울프 클러스터란 • 분산되어 있는 여러 PC들을 네트워크로 연결하여 빠른 계산 성능을 발휘하도록 구성하는 것으로서 클러스터 구성 방식 중의 하나 • 베어울프 클러스터의 시작과 성공 • 1994년 NASA의 FSFC (Goddard Space Flight Center)에서 리눅스 운영 체제와 표준 소프트웨어 툴킷들을 사용하여 16노드로 구성한 것이 최초의 베어울프 클러스터임 • 가격대 성능 비를 최대화하기 위한 목적으로 만들어짐 • 마이크로프로세서와 네트워크 장비의 급속한 발전과 가격 하락
베어울프(Beowulf) 클러스터 (2/2) • 베어울프 클러스터의 구성 예 • 영화 타이타닉(Titanic)에서의 영화 장면, 배경 그림, 렌더링 • 서울시립대학교의 리눅스 슈퍼컴퓨터 • TOP500 사이트에 의하면 2003년 6월 기준세계 392위 • Pentium-IV 2.0 GHz의 PC를 256대 연결하여 512 GFlops급 성능 발휘
관련 사이트 • TOP500 Supercomputer, http://www.top500.org/ • Beowulf Cluster, http://www.beowulf.org/ • MPI Forum, http://www.mpi-forum.org/ • PVM, http://www.epm.ornl.gov/pvm/