일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Writing
- 영어원서읽기
- 읽기
- Daily Challenge
- 괜찮음
- 스탭퍼
- 3줄정리
- 10분
- 뭐든
- 개발자
- 링피트
- 프로젝트
- 사이드
- 운동
- realclass
- 잡생각
- English
- 영어공부
- Problem Solving
- leetcode
- 쓰릴오브파이트
- 화상영어
- 월간
- 미드시청
- FIT XR
- 파비최
- 매일
- 리얼 클래스
- 만화도
- 30분
- Today
- Total
파비의 매일매일 공부기록
파이썬 병렬 프로그래밍 - #6 패러렐 파이썬 활용 본문
이번장은 네임드 파이프(named pipe)와 프로세스로 병렬 태스크를 수행하는 패러렐 파이썬의 사용하여 구현할 예정이다.
프로세스 간 통신 이해
- 프로세스 간 통신(Interprocess communication, IPC)은 프로세스 사이에 정보를 교환할 수 있는 메커니즘으로 구성
- IPC 구현은 여러 가지 방법 존재. 일반적으로 선택한 실행 환경의 아키텍처에 의존
- 프로세스는 다른 프로세스의 주소 공간에 절대로 접근이 불가하므로, 네임드 파이프라고 불리는 메커니즘 사용해야 함
네임드 파이프
- 구현하는 특정 파일과 관련된 파일 디스크립터 사용을 통한 IPC 통신 허용
- 정보를 관리할 수 있는 방법으로 일반 파이프와 구분
- 네임드 파이프는 파일 디스크립터와 파일 시스템의 특수한 파일 사용. 일반 파이프는 메모리에 생성
다음은 이 전장들과 마찬가지로 파이썬에서 실제로 구현하는 예제를 소개한다.
이 부분 역시 책 내용을 참고하면 좋을 듯.
책의 소스를 실행해본 결과(python3, Windows 10)
parallel python의 경우 pip로 설치 불가하다.
그러므로 https://www.parallelpython.com/downloads.php에서 python3을 다운로드한 후, 설치하면 import가 가능하다.
그러고 나서 소스를 동일하게 적고 실행하면 오류가 나는데
os.uname()이라는 게 없어서 발생하는 오류다.
uname은 리눅스 계열 명령어라 윈도즈에는 없으니
해당 부분은 그냥 빈 문자열("")로 치환하면 실행된다.
그리고 task를 실행할 다른 머신이 없는 경우(혹은 그냥 local에서 하고 싶으면) "127.0.0.1"을 넣어주면 된다.
그런데 단순 ("127.0.0.1")로 넣으면 튜플이 아니라고 오류 발생하니
tuple("127.0.0.1")로 넣어주면 된다.
'Study > Python' 카테고리의 다른 글
파이썬 병렬 프로그래밍 - #8 비동기 프로그래밍 (0) | 2021.07.26 |
---|---|
파이썬 병렬 프로그래밍 - #7 샐러리를 이용한 테스크 분산 (0) | 2021.07.25 |
파이썬 병렬 프로그래밍 - #5 multiprocessing과 ProcessPoolExecutor 모듈 사용 (0) | 2021.07.23 |
파이썬 병렬 프로그래밍 - #4 threading과 concurrent.futures 모듈 사용 (0) | 2021.07.22 |
파이썬 병렬 프로그래밍 - #3 병렬화 문제 확인 (0) | 2021.07.21 |