Yeon's 개발블로그

지식을 전파하는 개발자가 되고싶습니다.

Cloud Computing 15

5. 병렬 프로그램의 성능 평가 (Performance)

* Speedup 과 Efficiency란? 어떤 문제를 푸는 순차프로그램과 병렬프로그램이 있다고 하자. 병렬프로그램이 순차 프로그램보다 몇 배나 더 빨리 실행되었는가를 나타내는 척도가 speedup이다. effiency는 전체 시스템이 몇 %정도 효율을 올렸는가를 나타내는 척도이다. Speedup S = Ts / Tp Efficiency S / p p = 코어 혹은 프로세서의 수 Ts = 순차 프로그램 런타임 Tp = 병렬 프로그램 런타임 만약 병렬 프로그램의 speedup이 실행에 사용한 프로세서 개수와 같을 때(p=S), 그 프로그램은 linear speedup을 낸다고 한다. 즉, 사용하 프로세서 개수에 선형적으로 비례하여 속도가 향상된다는 것이다. 하지만 일반적으로 프로세스의 개수가 증가할 수록..

Cloud Computing 2020.10.21

4. 인터커넥션 네트워크 (Interconnection Networks)

앞에서 포스팅한 분산메모리시스템과 공유메모리시스템 모두에게 인터커넥션 네트워크는 시스템의 성능에 크게 영향을 끼친다. *공유메모리 인터커넥트: bus, crossbar *분산메모리 인터커넥트 -Direct: ring, mesh, torus, hypercube -Indirect: butterfly, omega 1-1. 공유메모리연결망: Bus -병렬 통신을 위한 와이어와 버스 엑세스를 제어하는 하드웨어로 구성된다. 버스에 연결된 디바이스들이 통신 와이어를 공유한다. -트래픽이 클 때 대기시간이 길어지고, 버스에 연결된 디바이스 개수가 많으면 버스 사용경쟁이 커서 성능이 저하된다. -버스에 연결할 수 있는 디바이스의 개수는 보통 8~16개 정도이고, 값이 싼 것이 특징이다. 1-2. 공유메모리연결망: Cro..

Cloud Computing 2020.10.21

3. 병렬 하드웨어 (Parallel Hardware)

* 병렬 하드웨어란? 병럴컴퓨터는 다수의 CPU가 다수의 프로그램 혹은 분할된 프로그램을 동시에 처리하는 컴퓨터를 말한다. 특히 병렬 하드웨어는 프로그래머가 소스코드를 수정하여 하드웨어의 병렬 특성을 이용할 수 있는 경우로 국한한 것을 의미한다. 명령어 스트림의 개수와 동시에 처리가능한 데이터 스트림의 개수를 기준으로 하드웨어들을 분류한다. 병렬하드웨어는 크게 SIMD와 MIMD로 나눌 수 있다. 1. SIMD 시스템 -명령 1개가 여러 데이터를 대상으로 동시에 처리된다. -하나의 CU와 여러대의 ALU로 구성되고, CU에서 ALU들로 broadcast된다. ALU는 명령을 실행하거나 idle상태로 기다릴 수 있다. 다만 같은 시각에 서로 다른 명령을 실행하는 ALU들은 없다. (명령하나, 여러개의 데이..

Cloud Computing 2020.10.20

2. 클라우드 컴퓨팅 요소기술: 가상화(Virtualization)

* 가상화(Virtualization)란? 가상화는 소프트웨어 기술을 활용해서, 물리적 자원을 논리적으로 가상화하여 물리적 한계에 종속되지 않고 원하는 형태로 해당 자원을 분리, 통합, 이동할 수 있게 하는 기술. 물리적인 하드웨어에서 서버를 직접 구축하여 component끼리 묶여있는경우에는 component가 하나라도 고장나면 시스템을 사용하지 못하고 신뢰성이 낮아진다. 또한 이런 서버를 이전할 경우, 파일과 데이터베이스 백업, 운영체제 재설치등 상당한 시간이 소요된다. 따라서 가상화를 이용하여 하드웨어와 운영체제를 분리해서 기존의 서버에서 OS와 응용들을 파일처럼 복사하는 것이다. 컴퓨터 시스템은 하드웨어층과 소프트웨어층으로 나눌 수 있다. 소프트웨어층은 시스템소프트웨어층(운영체제, 미들웨어, 런타..

Cloud Computing 2020.10.20

1. 클라우드 컴퓨팅 정의

* 클라우드 컴퓨팅이란? 서비스 제공 업체와의 인터렉션이나 관리에 대한 노력을 거의 들이지 않고, 신속하게 구축되고 해제될 수 있는 컴퓨팅 리소스의 공유풀을 편리하게 네트워크를 통해 액세스 할 수 있도록 해주는 모델. 1. 클라우드 컴퓨팅 필수 5특성 1) 폭넓은 네트워크 액세스 (Broad network access): 자원은 표준 메커니즘을 통해 네트워크를 폭넓게 이용할 수 있다. 2) 신속한 탄력성 (Rapid elasticity): 신속하고 탄력적으로 프로비저닝(구축/제공)하되, 자동적으로 제공된다. 3) 측정된 서비스 (Measured service): 자원이용은 모니터링되고 자동적으로 최적화된다. 조직 자체와 서비스를 이용하는 고객 모두에게 일관성을 제공한다. 4) 주문형 자가 서비스 (On-..

Cloud Computing 2020.10.20