개발하는 체대생

병렬 프로그래밍 본문

취업스터디

병렬 프로그래밍

개발하는체대생
질문 : 병렬 프로그래밍에 대해 설명해주세요.

답변 : 병렬 프로그래밍컴퓨터 시스템에서 두 개 이상의 작업이 동시에 실행되도록 하는 프로그래밍 방식입니다. 이를 통해 프로그램 실행 시간을 단축시키고 작업 처리량을 향상시킬 수 있습니다.

병렬프로그래밍

병렬 프로그래밍은 컴퓨터 시스템에서 두 개 이상의 작업이 동시에 실행되도록 하는 프로그래밍 방식입니다. 이렇게 개발하는 이유는 여러 개의 프로세스를 동시에 활용하여 성능을 향상시키기 위함입니다. 

 추가로 하나의 프로세스 내에서 여러 개의 스레드를 생성하여 병렬로 작업을 수행하는 '멀티 스레드'라는 개념이 있는데 컴퓨터 시스템에서 두 개 이상의 작업이 동시에 실행되는 '병렬프로그래밍'과는 다른 개념입니다.

 쉽게 말해 멀티스레드는 하나의 프로세스 내에서 여러 개의 스레드를 동시에 실행하여 병렬 처리를 수행하는 것이며, 병렬 프로그래밍은 일반적으로 하나의 작업을 여러 개의 작은 작업으로 분할하고, 이를 병렬적으로 처리하여 성능을 개선하는 것을 의미합니다. 즉, 멀티스레드는 하나의 프로세스 내에서 실행되므로, 병렬 프로그래밍의 하위 개념으로 볼 수 있습니다.

 

병렬 프로그래밍의 구현방법

 

스레드(Thread)를 이용한 병렬 프로그래밍

  • 여러 개의 스레드를 생성하고, 각 스레드가 병렬적으로 작업을 수행하도록 구현하는 방법입니다.
  • 스레드 간의 동기화와 데드락 등의 문제를 고려해야 합니다.


프로세스(Process)를 이용한 병렬 프로그래밍

  • 여러 개의 프로세스를 생성하고, 각 프로세스가 독립적으로 작업을 수행하도록 구현하는 방법입니다.
  • 프로세스 간의 통신 및 데이터 공유 문제를 고려해야 합니다.


벡터화(Vectorization)를 이용한 병렬 프로그래밍

  • 벡터화는 단일 명령어로 여러 개의 데이터를 처리하는 기법으로, CPU의 SIMD(Single Instruction Multiple Data) 명령어를 이용합니다.
  • 벡터화 명령어를 이용하여 빠른 속도의 계산을 수행할 수 있습니다.

 

GPU(Graphic Processing Unit)를 이용한 병렬 프로그래밍

  • GPU는 그래픽 처리를 위해 설계된 CPU와 별도로, 대규모 병렬 처리를 수행할 수 있는 프로세서입니다.
  • 병렬 처리에 특화된 GPU를 이용하여 빠른 속도의 계산을 수행할 수 있습니다.

 

추가참고자료

https://rpguswns.tistory.com/186

 

멀티쓰레드(Multi-thread)와 멀티프로세스(Multi-process)

질문 : 멀티쓰레드(Multi-thread)와 멀티프로세스(Multi-process)의 차이점은 무엇인가요? 답변 : 멀티쓰레드는 하나의 프로세스 내에서 여러 개의 쓰레드를 생성하여 작업을 처리하는 반면, 멀티프로세

rpguswns.tistory.com

 

'취업스터디' 카테고리의 다른 글

JPA  (0) 2023.04.08
CORS  (0) 2023.04.07
RDB와 NoSQL  (0) 2023.04.06
오버로딩(Overloading)과 오버라이딩(Overriding)  (0) 2023.04.05
시간복잡도와 공간복잡도  (0) 2023.04.05
Comments