본문 바로가기
반응형

multiprocessing5

[CS] 프로세스와 스레드 그리고 멀티작업들 | LIM 먼저, 간단한 개념을 먼저 잡고 넘어가자! ✔️ 프로세스 - 컴퓨터에서 실행 중인 프로그램 - 각각의 프로세스는 독립된 메모리 공간을 할당받음 ✔️ CPU - 명령어를 실행하는 연산 장치 ✔️ 메인메모리 - 프로세스가 CPU 실행되기 위해 대기하는 곳 🤔 그렇다면 먼저 가장 초장기의 프로그램 시스템은 어땠을까? 일단 처음에 프로그램 시스템은 단일 프로세스 시스템이었다. - 한 번에 하나의 프로그램만 실행 ( 따라서 한 개의 작업이 끝나야 다른 작업을 실행시킬 수 있음 ) - CPU 사용률이 좋지 않음 - 프로세스가 IO 작업을 만나게 되면 아무것도 하지 않고 놀고 있는 상태가 됨 ✨ 이에 대한 해결책으로 멀티프로그래밍이 나왔다. 여러 개의 프로그램을 메모리에 올려놓고 동시에 실행시키는 방법이 나오게 됨 .. 2023. 2. 11.
[Python] Ray 를 활용한 병렬처리 | LIM 기존에 병렬처리에 대해 학습하고 Python의 기본 라이브러리인 Multiprocessing Module을 이용하여 시간을 많이 단축했던 적이 있다. https://amazelimi.tistory.com/50 [Python] MultiProcessing map() vs imap() | LIM Intro 빅데이터를 다루다보면 계산을 parallel 하게 진행해야할 필요성이 생기게 된다. 파이썬에서는 multiprocessing 모듈을 사용하여 진행할 수 있다. 파이썬의 multiprocessing 모듈 내에는 Process, Pool, map, amazelimi.tistory.com Multiprocessing 보다 더 빠르고 간단하게 병렬처리를 구현할 수 있는 라이브러리가 있다고 하여 공부해보았다. 목차.. 2023. 1. 21.
[Python] MultiProcessing map() vs imap() | LIM 1. Python Multiprocessing에 대한 간단한 설명 2. Pool.map() 과 Pool.imap() 의 차이 3. Pool.imap_unordered() 🖥 Python MultiProcessing 멀티 프로세싱을 활용하면 여러 작업을 별도의 프로세스를 생성 후 병렬처리해서 더 빠르게 결과를 얻어낼 수 있다. 다만 멀티 프로세싱은 메모리 사용률이 높아진다는 단점이 존재한다. 멀티 프로세싱과 멀티 스레드 두 가지 방법이 존재하는데, 파이썬에서는 GIL(Global Interpreter Lock) 정책 때문에 cpu 위주의 작업에서는 멀티 스레딩은 오히려 성능을 떨어뜨린다. 즉 정리하자면, 쓰레드는 가볍지만 파이썬의 GIL정책으로 인해 I/O 처리를 하는 경우에만 주로 효과적이고 프로세스는 .. 2022. 9. 19.
Scraper 을 통해 실습해본 Go와 Python 의 성능 테스트 노마드 코더의 강의를 들으면서 Go Scraper를 실습해보았다. 무료 강의여서 부담없이 Go 를 체험(?) 해볼 수 있었다. 확실히 매력적인 언어였다. 멀티코어를 GO의 Channel을 이용해서 Goroutine으로 구현했더니 파이썬의 multiprocessing 을 이용한 것보다 엄청나게 빠른 속도를 보여주었다..ㄷㄷ 예제코드를 깃헙에 올려두었다. 파이썬 scraper 코드와 Goroutine을 사용해서 만든 scraper 코드 모두 올려두었다. https://github.com/HWALIMLEE/go-project/tree/main/job_scraper/goroutine GitHub - HWALIMLEE/go-project: go 를 공부하기 위한 repo go 를 공부하기 위한 repo. Cont.. 2022. 7. 24.
[Python] Flask와 FastAPI로 Python 동시성 테스트 | LIM 📌 파이썬의 동시성 파이썬에서는 쓰레드를 사용하는 threading 모듈, 태스크를 사용하는 asyncio 모듈, 그리고 프로세스를 사용하는 multiprocessing 모듈이 있는데 여기서 병렬적으로 작업을 처리하는 것은 실제로 multiprocessing 뿐이다. threading 과 asyncio 모듈은 모두 하나의 프로세서를 사용하기 때문에 한 번에 하나씩 실행할 수밖에 없다. 서로 context switching 되면서 동시에 실행되는 것처럼 보이게 되는 것이다. 이렇게 해서 작업 시간을 줄인다. 📌 threading과 asyncio 차이(concurrency) 파이썬에서 동시적인 작업을 할 때 사용하는 threading과 asyncio의 차이점은 threading은 모듈에서 실행되고 있는 각 .. 2022. 7. 3.
반응형