great_park
great_park
great_park
전체 방문자
오늘
어제
07-05 15:14
  • 분류 전체보기 (124)
    • Computer Science (48)
      • Database (9)
      • Operating System (8)
      • Computer Network (0)
      • Computer Architecture (9)
      • Cloud computing (9)
      • Algorithm (13)
    • Algorithm PS (62)
      • DFS & BFS (21)
      • Floyd-Warshall (1)
      • Dijkstra (0)
      • Divide and Conquer (0)
      • Dynamic Programing (22)
      • Greedy (0)
      • BackTracking (11)
      • Binary Search (6)
      • Brute Force (0)
      • Sorting (0)
      • Stack & Queue (1)
      • Number Theory (0)
    • 기타 (12)
      • AWS (3)
      • Docker (1)
      • 기타 (8)
    • 2023 Google Solution Challenge (1)

최근 글

인기 글

블로그 메뉴

  • 홈
  • 태그
  • 방명록
반응형

태그

  • Binary Search
  • backtracking
  • Computer Architecture
  • Single-Cycle Datapath
  • dp
  • pub/sub
  • Binarysearch
  • cloud computing
  • operating system
  • dfs
  • php
  • Node.js
  • DeadLock
  • BFS
  • Database
  • mysql
  • BOJ
  • LIS
  • Docker
  • 알고리즘
hELLO · Designed By 정상우.
great_park

great_park

[Cloud computing] 6. Parallel & Distributed
Computer Science/Cloud computing

[Cloud computing] 6. Parallel & Distributed

2022. 10. 24. 18:55
반응형

Reference

1. Thomas Erl_ Zaigham Mahmood_ Ricardo Puttini - Cloud Computing_ Concepts, Technology & Architecture-Prentice Hall,

2. Cloud Computing class by Professor Heonchang-Yu of the Department of Computer Science and Engineering at Korea University

3. Open Source material : opencourses.emu.edu.tr, WEEK 5 - APPLICATION OF PETRI NETS

 

cloud comtuting의 major milestone 세 가지

  • mainframe computing
  • cluster computing
  • grid computing

+) Peer to Peer system

 


1. Historical development

mainframe computing

  • 대규모 데이터 이동, I/O 작업에 특화된 강력하고 신뢰성이 높은 컴퓨터
  • distributed system 아님! , 여러 processor를 사용하여 큰 계산 능력 제공

cluster computing

  • 여러 대의 컴퓨터들이 고대역폭 네트워크로 연결된 집합
  • 쉽게 확장 가능

Grid computing

  • 대규모 작업을 수행하기 위해 컴퓨터의 처리 능력을 한 곳으로 모아 중요한 업무에 집중 사용할 수 있게 해주는 기술
  • 지리적으로 분산된 cluster의 집합체 → 서로 다른 조직에 속한 cluster들이 계산 능력을 공유
  • 여러 독립 컴퓨터의 리소스를 통합하는 distributed computing의 일종

Peer-to-Peer System

  • 중앙 서버 없이 computer끼리 연결하여 data를 주고 받는 것
  • Self-organizing and decentralized
  • scalable, resilient

 

Distributed and Grid computing

유사점

  1. Resource sharing
  2. Heterogeneity & concurrency
  3. Openness & transparency
  4. Redundancy
  5. Scalability

차이점

  1. definition : broader vs narrower
  2. scope of application : broader(gps, 인터넷) vs narrower(빅데이터 분석, AI 모델링)
  3. Model and architecture : 다양함(grid, cloud, cluster computing) vs specific computing model

 


2. Parallel and Distributed Computing

병렬 computing은 분산 computing의 한 종류이다.

  • Parallel → Coupled system: 모든 processor가 memory 공유
  • Distributed → 전부 포함 : processors on (1)different nodes, (2) same computer, (3) cores within same processor
  • Parallel processing : multiple processor가 동시에 다량의 task 처리

Hardware architectures for parallel processing

PE : processing element

(1) Single-instruction, single-data (SISD) systems

(2) Single-instruction, multiple-data (SIMD) systems

(3) Multiple-instruction, single-data (MISD) systems

(4) Multiple-instruction, multiple-data (MIMD) systems

  • shared memory MIMD machine : tightly coupled multiprocessor system -모든 PE가 단일 memory에 연결되고, 모두 접근 가능
  • distributied memory MIMD machine : loosely coupled multiprocessor system - 모든 PE에 로컬 메모리가 있고, 네트워크를 통해 PE간 통신

 

Approaches to parallel programming

병렬 컴퓨팅 : 큰 problem을 작은 problem으로 나누어서 동시에 해결할 수 있다

(1) Data parallelism

  • 분할 정복 기술을 통해서 데이터를 여러 set으로 분리하고 각 set에 동일한 명령을 사용하여 서로 다른 PE에서 이를 처리
  • SIMD 모델에 적합

(2) Process parallelism

  • 여러 processor가 처리

(3) Farmer and worker model

  • 작업을 분배한다. 한 process가 master가 되고 나머지 모든 PE가 slave가 된다.
  • master가 slave에게 작업을 할당하고, 완료 시 master에게 알려서 결과를 수집한다.

 

parallelism으로 얻을 수 있는 benefit이 얼마나 되는가

  • 연산의 속도는 system cost의 제곱근에 비례한다. → 선형 증가 X
  • n개의 processor → k* log(N)배

 


3. Parallel and Distributed Systems

Amdahl’s law

  • speed-up of the parallel computation : S(N) = T(1)/T(N) → 1/N이 안 나옴
  • ⇒ (dependency 때문에 병렬 수행이 불가능한 경우가 존재하기 때문)

 

Modeling concurency with Petri nets (PNs)

4가지로 구성

  • Token : 작은 꽉 차 있는 원으로 표현됨. 화살표를 따라 움직이면서 프로세스를 진행시키는 역할
  • Place : 원으로 표현됨. Place는 token을 소유할 수 있다.
  • Treansition : 사각형으로 표현됨. 이벤트 로그에서의 액티비티를 뜻한다. transition은 Token을 만들어내거나 소비한다.
  • Arc : 화살표로 표현된다. Transition과 place을 연결하는 역할을 하며, token은 Arc를 따라 이동한다.

 

Enabled(준비)과 Fire(실행)

  • Enabled : transition이 실행(fire)될 수 있도록 준비된 상태를 의미한다. transition으로 들어오는 모든 place들에 token이 한 개 이상 있는 상태이다.

⇒ 만약, 2개 이상의 place에 연결된 transition의 경우, 한 쪽이라도 token이 없는 place가 있을 때는 enabled 상태가 아니다.

  • Fire : transition이 enabled되었을 때 그 transition이 실행되는 것이다. 이때 모든 input place에 있는 한 개의 token들은 소비되고(consume), 모든 output place에 한 개의 token이 만들어 진다.(produce)

⇒ transition에서 event가 발생함으로써 상태가 변화

⇒ 즉, input place가 1개라도 out place가 여러 개라면, token이 1개만 소비되었지만 여러 개의 token이 생성되는 것이다.

⇒ Arc에 Token 숫자를 명시한다!

 

Example 1,2,3

 

Example 4,5,6

마지막 예제의 경우, shared memory에서 process간 동시성 문제를 해결하는 locking 방법을 petri net으로 나타낸 것입니다.

좀 더 자세히 살펴보면,

  • 최대 k개의 process가 동시에 reading 가능
  • 1개의 process가 writing 할 때, 아무도 reading하거나 writing 하지 못하고 오직 그 process만 wirting할 수 있다.

⇒ reading은 data를 단순히 조회하는 것이지만, write의 경우 data가 변경되므로 lock을 걸어서 동기화를 시켜주는 것이다.

 


4. Concepts of Distributed systems

Definition

  • message passing으로 소통하는 hardware, software components
  • 독립적인 computer들이 message passing 방식으로 조직화 된 system

Concurrency

  • 자원을 공유하면서, 사용자들이 각자의 work를 동시에 수행
  • 자원을 공유하고 동시에 실행되는 program들 간 coordination 중요
  • core 1개, multithread → 한 번에 하나의 thread만 core 할당
  • message passing 방식으로 동기화
  • Deadlock 발생 가능
  • Livelock 발생 가능 (마치 길에서 마주칠 때 계속 같은 쪽으로 서로 비켜서서 길이 막히는 경우와 같다)

Consequences

No global clock

  • global하게 공유되는 clock이 없다.
  • local clock들을 동기화하는 것은 불가능하다
  • 따라서 일종의 “번호표”를 사용. Order가 중요한 것

Independent failures

  • 네트워크가 끊어지면 해당 computer는 고립됨, 해당 computer의 program들은 네트워크가 끊어진지도 모를 수도 있다.
  • 한 computer에서 이상이 생겨 program이 비정상적으로 종료되어도, 다른 computer들은 이를 즉시 알아채지 못함

 


5. Issues

(1) Heterogeneity

  • heterogeneous collection of computers and network 위에서 사용자들이 service에 접근하고 application을 run시킬 수 있어야 한다.

⇒ 이를 위해 Middleware가 masking, conciling 해야 한다.

  • Middleware : 아래 단의 heterogeneity을 masking 하는 programming abstraction을 제공하는 소프트웨어 layer

⇒ Local OS간의 heterogeneity를 Middleware layer을 통해 추상화하여 극복

(2) Openness

  • 다양하게 확장이 가능하다.

(3) Security

Confidentiality - 인증 안 된 유저로 부터 보호

Integrity - 변조로 부터 보호

Availability - 자원 접근 보호

⇒ Ddos 공격 등 보호 필요

(4) Scalability

  • 물리적 자원의 비용을 조절

자원에 대한 수요가 증가할 때, 적당한 비용에서 system을 확장시켜야 한다.

사용자가 n명인 시스템을 확장하려면 사용자를 지원하는 데 필요한 물리적 리소스의 양이 **최대 O(n)**여야 한다.

  • Performance loss를 조절

hierarchic(계층) 구조를 사용하는 알고리즘은 linear 구조를 사용하는 알고리즘보다 더 잘 확장된다. 그러나 hierarchic 구조에서도 크기가 증가하면 성능이 다소 저하된다.

  • Preventing software resources running out

자원이 소진되지 않도록 주의

  • Avoiding performance bottlenecks

병목 구간이 생기지 않도록 주의

(5) Failure Handling → Redundancy 적용

  • failures 탐지
  • Masking (hiding) failure : 사용자는 apllication을 사용하면서 failure를 못 느끼도록 masking
  • Tolerating failure : 실패해도 계속 동작하도록
  • Recovery from failure : check point 지정해서 recovery

(6) Concurrency

  • multiple client의 request를 동시에 수용
  • data가 consistent하기 위해 동기화 필요
  • semaphores 사용 : 공유하는 자원에 여러 process or thread가 접근하는 것을 막는다.

(7) Transparency - 투명성

  • Access : 동일한 operation으로 자원에 접근
  • Location : 물리적 위치에 상관없이 자원에 접근
  • Concurrency : 간섭없이 여러 process들이 자원을 공유하며 동시에 실행
  • Replication : 안정성과 성능을 높이기 위해 여러 자원의 복제본 사용, 복제본끼리는 서로 존재를 모름
  • Failure : failure을 conciling
  • Mobility : 사용자, 프로그램에게 영향을 주지 않고 자원의 이동
  • Performance : 성능 향상
  • Scaling : system 구조 변경 없이 곧바로 확장 가능
  • Network : network을 통해서 access, location transparency 가능
반응형
저작자표시 (새창열림)

'Computer Science > Cloud computing' 카테고리의 다른 글

[Cloud computing] 8. Logical Clock  (0) 2022.12.04
[Cloud computing] 7. Models  (0) 2022.12.04
[Cloud computing] 5. Virtualization  (0) 2022.10.14
[Cloud computing] 3. Architecture  (0) 2022.10.13
[Cloud computing] 2. Model  (0) 2022.10.12
    'Computer Science/Cloud computing' 카테고리의 다른 글
    • [Cloud computing] 8. Logical Clock
    • [Cloud computing] 7. Models
    • [Cloud computing] 5. Virtualization
    • [Cloud computing] 3. Architecture
    great_park
    great_park
    GitHub : https://github.com/great-park

    티스토리툴바