파이썬 병렬 프로그래밍

threading, multiprocessing, PP, Celery, asyncio 모듈 이해와 활용
$15.88
SKU
9788960779204
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Wed 05/22 - Tue 05/28 (주문일로부 10-14 영업일)

Express Shipping estimated by Fri 05/17 - Tue 05/21 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2016/11/04
Pages/Weight/Size 188*235*0mm
ISBN 9788960779204
Categories IT 모바일 > 프로그래밍 언어
Description
고성능 병렬 컴퓨팅 시스템을 개발하고 유지 보수하기 위해 필요한 모든 내용을 다룬다. 먼저 병렬, 동시성, 분산의 개념부터 병렬화와 관련된 문제점과 대안을 살펴본 후, 파이썬의 스레드 기반 threading 모듈과 프로세스 기반 multiprocessing 모듈, 병렬 태스크를 수행하는 패러럴 파이썬(PP)과 분산 처리를 위한 셀러리(celery), 비동기 프로그래밍이 가능한 asyncio 모듈을 설명한다. 각 파이썬 모듈 사용법에 대한 명쾌한 이해를 돕기 위해 피보나치 수열 계산과 웹 수집기 구현 방법을 사례로 들어 간결하게 풀어나간다.
Contents
1장. 병렬, 동시성, 분산 프로그래밍 문맥 설명
__병렬 프로그래밍을 왜 사용하는가
__일반적인 병렬화
__병렬 프로그래밍에서의 통신
____공유 상태 이해
____메시지 전달 이해
__병렬 프로그래밍 문제점 확인
____교착상태
____기아상태
____경쟁 조건
__파이썬 병렬 프로그래밍 도구 찾기
____파이썬 threading 모듈
____파이썬 multiprocessing 모듈
____패러렐 파이썬 모듈
____셀러리: 분산 태스크 큐
__파이썬 GIL에 관한 주의 사항
__요약


2장. 병렬 알고리즘 설계
__분할 정복 기법
__데이터 분해 사용
__파이프라인으로 태스크 분해
__프로세스 매핑
____독립 태스크 식별
____데이터 교환이 필요한 태스크 식별
____부하 분산
__요약


3장. 병렬화 문제 확인
__여러 입력으로 가장 높은 피보나치 값 얻기
__웹 수집
__요약


4장. threading과 concurrent.futures 모듈 사용
__스레드 정의
____스레드 사용에 따른 장단점
____스레드의 다른 종류 이해
____스레드 상태 정의
____thread과 _thread 중 하나를 선택
__여러 입력으로 피보나치 수열 항을 얻기 위해 스레드 사용
__concurrent.futures 모듈을 이용해 웹 수집
__요약


5장. multiprocessing과 ProcessPoolExecutor 모듈 사용
__프로세스 개념 이해
____프로세스 모델 이해
________프로세스 상태 정의
____다중처리 통신 구현
____multiprocessing.Pipe 사용
____multiprocessing.Queue 이해
__여러 입력으로 피보나치 수열 항을 얻는 multiproce ssing 사용
__ProcessPoolExecutor를 이용한 웹 수집
__요약


6장. 패러렐 파이썬 활용
__프로세스 간 통신 이해
____네임드 파이프 살펴보기
____파이썬으로 네임드 파이프 사용
________네임드 파이프에 쓰기
________네임드 파이프 읽기
________PP 발견
__SMP 아키텍처에서 PP를 이용해 피보나치 수열 항 계산
__PP를 이용해 분산 웹 수집기 만들기
__요약


7장. 셀러리를 이용한 태스크 분산
__셀러리 이해
____왜 셀러리를 사용하는가
__셀러리 아키텍처 이해
____태스크로 작업
____메시지 전송(브로커) 발견
____작업자 이해
____결과 뒷단 이해
__환경 설정
____클라이언트 머신 설정
____서버 머신 설정
__간단한 태스크 디스패치
__셀러리로 피보나치 수열 항 얻기
__태스크 타입으로 큐 정의
__셀러리를 이용해 분산 웹 수집기 만들기
__요약


8장. 비동기 프로그래밍
__블록킹, 논블록킹, 비동기 연산 이해
____블록킹 연산 이해
____논블록킹 연산 이해
____비동기 연산 이해
__이벤트 루프 이해
____폴링 함수
____이벤트 루프 사용
__asyncio 사용
____동시 실행 루틴과 asyncio.Future 이해
________동시 실행 루틴과 asyncio.Future 사용
________asyncio.Task 사용
________호환성이 없는 라이브러리를 asyncio와 함께 사용하기
__요약
Author
얀 팔라흐,이문호