파이썬 병렬 프로그래밍 (threading, multiprocessing, PP, Celery, asyncio 모듈 이해와 활용)

파이썬 병렬 프로그래밍 (threading, multiprocessing, PP, Celery, asyncio 모듈 이해와 활용)

$14.91
Description
[파이썬 병렬 프로그래밍]은 고성능 병렬 컴퓨팅 시스템을 개발하고 유지 보수하기 위해 필요한 모든 내용을 다룬다. 먼저 병렬, 동시성, 분산의 개념부터 병렬화와 관련된 문제점과 대안을 살펴본 후, 파이썬의 스레드 기반 threading 모듈과 프로세스 기반 multiprocessing 모듈, 병렬 태스크를 수행하는 패러럴 파이썬(PP)과 분산 처리를 위한 셀러리(celery), 비동기 프로그래밍이 가능한 asyncio 모듈을 설명한다. 각 파이썬 모듈 사용법에 대한 명쾌한 이해를 돕기 위해 피보나치 수열 계산과 웹 수집기 구현 방법을 사례로 들어 간결하게 풀어나간다.
저자

얀팔라흐

저자얀팔라흐(JanPalach)는경력13년차의소프트웨어개발자다.C++,자바,파이썬기술을사용해민간회사를위해과학시각화와백엔드단을개발해왔다.브라질의리우데자네이루(RiodeJaneiro)에있는에스따씨오데사(EstaciodeSa)대학교에서정보시스템학위,파라나주연방기술(ParanaStateFederalTechnological)대학교에서석사학위를받았다.현재는C++시스템을구현하는통신부문에속한민간기업에서수석시스템분석가로근무하고있다.기술적으로열광하는파이썬과얼랭으로재미있게실험하기를좋아한다.자연스러운호기심으로새로운기술에도전해공부하고,낯선사람을만나고,다른문화에대해배우기를좋아한다.

목차

1장.병렬,동시성,분산프로그래밍문맥설명
__병렬프로그래밍을왜사용하는가
__일반적인병렬화
__병렬프로그래밍에서의통신
____공유상태이해
____메시지전달이해
__병렬프로그래밍문제점확인
____교착상태
____기아상태
____경쟁조건
__파이썬병렬프로그래밍도구찾기
____파이썬threading모듈
____파이썬multiprocessing모듈
____패러렐파이썬모듈
____셀러리:분산태스크큐
__파이썬GIL에관한주의사항
__요약

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

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

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

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

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

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

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

출판사 서평

★이책에서다루는내용★

■병렬화문제관련기술
■파이썬코드를구현하기위한패러럴파이썬모듈통합
■간단한문제에관한병렬해결책실행.
■파이프와큐를이용한프로세스간의통신
■셀러리분산태스크큐사용
■파이썬asyncio모듈을이용한비동기I/O구현
■스레드에안전한구조생성

★이책의대상독자★

능숙한파이썬프로그래머며간단한방법으로병렬애플리케이션에서가용컴퓨팅리소스를활용하고싶다면,이책은당신을위한책이다.이책을최대한활용하기위해서는파이썬개발에대한기본지식이필요하다.

★이책의구성★

1장,‘병렬,동시성,분산프로그래밍문맥설명’에서는병렬프로그래밍모델의개념,장단점과구현을다룬다.덧붙여병렬솔루션을구현하기위한몇몇파이썬라이브러리를제시한다.
2장,‘병렬알고리즘설계’에서는병렬알고리즘을설계하기위한몇가지기술에관해논의한다.
3장,‘병렬화문제확인’에서는병렬과관련된문제를예시로소개한후,이문제를병렬조각으로나눌수있는지분석한다.
4장,‘threading과concurrent.futures모듈사용’에서는3장,‘병렬화문제확인’에서제시한각문제를threading과concurrent.futures모듈을사용해구현하는방법을설명한다.
5장,‘multiprocessing과ProcessPoolExecutor모듈사용’에서는3장,‘병렬화문제확인’에서제시한각문제를multiprocessing과ProcessPoolExecutor모듈을사용해구현하는방법을설명한다.
6장,‘패러렐파이썬활용’에서는3장,‘병렬화문제확인’에서제시한각문제를병렬파이썬모듈을사용해구현하는방법을제시한다.
7장,‘셀러리를이용한태스크분산’에서는3장,‘병렬화문제확인’에서제시한각문제를셀러리분산태스크큐를사용해구현하는방법을제시한다.
8장,‘비동기프로그래밍’에서는asyncio모듈을사용하는방법과비동기프로그래밍에관한방법을설명한다.