본문 바로가기
Research/Computer Science

parallel computing

by RIEM 2023. 4. 6.

Nam jun Paik, Li Tai Po

배경

전통적으로 컴퓨터 소프트웨어는 직렬 컴퓨팅 방식이다. 하나의 명령을 수행하면 다음 명령을 수행하는 방식이다. 이 방식은 하드웨어 리소스를 효율적으로 활용하지 못한다는 단점이 있다.

병렬 컴퓨팅

병렬 컴퓨팅(parallel computing)은 동시에 여러 연산을 수행하는 방법이다. 풀고자 하는 문제를 여러 명령들로 잘게 쪼갠 뒤 동시적으로 해결한다.

장점

  1. 동시 수행으로 인해 자원을 효율적으로 사용한다(남는 리소스까지 모두 사용)
  2. 거대한 문제를 풀기 적합하다

유형

  1. 비트-수준 병렬처리(Bit-level Parallelism) : 프로세서의 크기에 따른 병렬 컴퓨팅 방식. 거대한 크기의 작업을 수행하기 위한 명령들을 간소화한다
  2. 명령-수준 병렬처리(Instruction-level Parallelism) : 프로세서는 각 클락 사이클에 하나의 명령어만 배분할 수 있는데, 이러한 명령들은 재조직하고 그루핑되는 방식으로 병렬 처리가 가능하다
  3. 작업 병렬처리(Task Parallelism) : 작업을 세부 작업으로 쪼개고, 프로세서가 이를 동시적으로 처리한다
  4. 데이터-수준 병렬처리(DLP, Data-level Parallelism) : 단일 스트림에서 오는 명령어들을 다양한 데이터에 동시 처리한다

사용 이유

  • 작업들이 동시 다발적으로 발생하는 현실세계에 적합하기 때문
  • 동시성 제어와 리소스 효율화를 달성하기 때문
  • 복잡하고 거대한 데이터셋은 병렬 처리만 감당할 수 있기 때문

사용 분야

  • DB와 데이터 마이닝
  • 실시간 시뮬레이션 시스템
  • 과학과 엔지니어링
  • AR, VR

한계

  • 수 많은 세부 작업들간 통신과 동기화를 다루기 어려움
  • 병렬 처리에 맞는 알고리즘이 필요
  • 알고리즘이나 프로그램들 간 의존성이 낮아야 한다는 어려운 과제를 안고 있음
  • 진입장벽이 높음

참조

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

CORS  (0) 2023.04.07
JWT  (0) 2023.04.06
OOP in Javascript  (0) 2023.04.04
ISO, TCP-UDP, TCP 3way handshake  (0) 2023.03.31
List, Set, Map, HashMap  (0) 2023.03.30

댓글