일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 회귀
- 해커톤
- 티스토리챌린지
- regression
- LG
- GPT-4
- supervised learning
- Machine Learning
- ChatGPT
- 오블완
- LLM
- OpenAI
- LG Aimers 4th
- LG Aimers
- 머신러닝
- PCA
- deep learning
- Classification
- 분류
- 딥러닝
- AI
- gpt
- 지도학습
Archives
- Today
- Total
SYDev
[풀스택서비스프로그래밍] parallelism vs concurrency 본문
1. Parallel Computing
- def(wikipedia): simultaneously(동시에) 많은 계산을 하는 연산의 한 방법 -> 실제로 한 번에 많은 작업을 처리
- 크고 복잡한 문제를 작게 나눠 동시에 병렬적으로 해결하는 데에 주로 사용
- 주로 고성능 연산에 이용
- multi-core processor
- dart의 비동기 처리 -> parallel process에 해당!!
multi-core
- multi-core (processor) CPU: 두 개 이상의 독립 core를 단일 집적회로로 이루어진 하나의 패키지로 통합한 것
- Chip-level Multi Processor(CMP)
- multi-threading -> core의 개수에 따라, 그 개수만큼의 thread를 동시에 처리할 때 효율적으로 동작
- multi-core processor: 2개 이상의 processor를 포함한 Integrated circuit -> power 증가, 열 손실 감소
multi-processing
- 한 컴퓨터 내 2개 이상의 CPU가 같은 작업 내 2개 이상의 서로 다른 부분을 동시에 처리
- 장점
- 독립성: 독립 구조로 안정성이 높음 -> 프로세스 하나에 문제가 생겨도, 다른 프로세스에 영향 X
- 단점
- 작업량이 많으면(context switching) overhead가 발생할 수 있음
multi-threading
- multi-threading: 하나의 CPU가 multiple threads의 실행을 제공하는 것
- 같은 process의 자원을 공유
- 장점
- 응답성: 작업을 분리해서 수행 -> 실시간으로 사용자에게 응답
- 효율성: 속한 process 내 thread와 memory, resources 공유하여 효율적 사용
- 경제성: process 생성 비용보다 thread 생성 비용이 적고, context switching이 process보다 빠름
- 단점
- 하나의 프로세스 안에서 작동 -> 하나의 thread에서 문제가 발생하면 전체 process에 영향
2. Concurrent Computing
- def(wikipedia): concurrently(병행) 방식으로 연산하는 방법 -> 다른 계산이 모두 끝날 때까지 기다리지 않고, 다른 계산을 진행
- asynchronous process: 여러 작업을 처리하도록 예약한 뒤, 작업이 끝나면 결과를 받는 방식 -> CPU 유휴 시간을 줄여 프로그램의 퍼포먼스를 높이는 것이 비동기 처리의 목적
- python의 fast api -> concurrent process에 해당!!
coroutine
- 일반적 함수 -> call하면 실행, 결과값 return하면 함수 종료
- coroutine -> suspend/resume 가능
- 결과값을 바로 리턴하지 않고 suspend/yield 가능 -> 중단 시점부터 resume할 수 있다.
참고자료
parallelism vs concurrency(병렬처리와 비동기 처리)
python으로 병렬 프로그래밍과 비동기 프로그래밍 적용하기
velog.io
병렬 컴퓨팅 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. IBM의 블루 진/P 대규모 병렬 슈퍼컴퓨터 병렬 컴퓨팅(parallel computing) 또는 병렬 연산은 동시에 많은 계산을 하는 연산의 한 방법이다. 크고 복잡한 문제를 작게
ko.wikipedia.org
멀티 코어 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 싱글 다이 및 멀티 코어의 개념도: CPU 코어와 L1 캐시가 2 개 있으므로 L2 캐시는 2 개의 코어와 공유된다. 인텔 코어 2 E6300은 듀얼 코어 프로세서이다. AMD Athlon X2
ko.wikipedia.org
병행 컴퓨팅 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 병행 컴퓨팅 또는 컨커런트 컴퓨팅(concurrent computing)은 여러 개의 계산들을 연속적(하나씩 일을 마치는 것)으로가 아닌, 병행 처리하는 것을 말한다. 병행 시스
ko.wikipedia.org
728x90
반응형
'3학년 2학기 전공 > 풀스택서비스프로그래밍' 카테고리의 다른 글
MongoDB 기본 개념 (0) | 2024.11.21 |
---|---|
[풀스택서비스프로그래밍] Lecture 02. RESTful API Client & Server 개발 (2) | 2024.10.01 |
[풀스택서비스프로그래밍] Lecture 01. Dart 언어의 이해(심화) - part2 (0) | 2024.09.25 |
[풀스택서비스프로그래밍] Lecture 01. Dart 언어의 이해(심화) - part1 (1) | 2024.09.16 |
[풀스택서비스프로그래밍] Lecture 01. Dart 언어의 이해(기초) (2) | 2024.09.16 |