간편결제, 신용카드 청구할인
PAYCO(페이코) 최대 5,000원 할인
(페이코 신규 회원 및 90일 휴면 회원 한정)
네이버페이 1%
(네이버페이 결제 시 적립)
북피니언 롯데카드 30% (17,640원)
(최대할인 3만원 / 3만원 이상 결제)
EBS 롯데카드 20% (20,160원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 NEW 우리V카드 10% (22,680원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 현대카드 7% (23,440원)
(최대할인 3만원 / 3만원 이상 결제)
Close

파이썬 성능 높이기 2/e : 프로그램 병목 찾기부터 파이썬 구현 선택, 병렬 시스템 확장까지

원제 : Python High Performance - Second Edition : Build robust applications by implementing concurrent and distributed processing techniques
소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 353
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

28,000원

  • 25,200 (10%할인)

    1,400P (5%적립)

할인혜택
적립혜택자동적립
추가혜택
배송정보
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(19)

  • 사은품(13)

책소개

프로그램 병목 찾기부터 파이썬 구현 선택, 병렬 시스템 확장까지

파이썬 프로그램의 성능을 높이기 위한 여러 가지 전략을 소개한다. 파이썬에서 기본적인 프로그램 성능을 높이기 위한 병목 찾기를 어떻게 진행하는지부터 성능이 좋은 라이브러리 도입, 확장 파이썬을 컴파일하는 컴파일러, 파이썬 프로그램을 병렬적으로 만드는 것까지 다양한 수준의 성능 개선 기법이 나와 있으므로 파이썬을 어느 정도 써본 사람이라면 도움 될 것이다.

출판사 서평

[이 책에서 다루는 내용]

- NumPy와 Pandas 라이브러리로 효율적인 수치 계산 코드 작성하기
- Cython과 Numba를 사용해 네이티브 성능 달성하기
- 프로파일러로 파이썬 코드의 성능 병목 찾기
- Asyncio와 RxPy를 사용해 비동기 코드 작성하기
- 파이썬에서 텐서플로와 테아노를 사용해 자동으로 병렬 처리하기
- Dask와 PySpark를 사용해 클러스터에 분산 알고리즘 설정, 실행하기

[이 책의 대상 독자]

애플리케이션 성능을 개선하려는 파이썬 개발자를 대상으로 한다. 파이썬에 대한 기초 지식이 있다고 가정한다.

[이 책의 구성]

1장, '벤치마크와 프로파일링 파이썬'에서는 프로그램 성능을 평가하는 방법과 코드의 느린 부분을 알아내고 고립시키는 실용적인 전략을 알려준다.
2장, '순수 파이썬 최적화'에서는 파이썬 표준 라이브러리와 순수 파이썬 서드파티 모듈이 제공하는 효율적인 데이터 구조와 알고리즘을 사용해 실행 시간을 수십 배 단위로 향상시키는 방법을 다룬다.
3장, 'NumPy와 Pandas를 사용한 고속 배열 연산'에서는 NumPy와 Pandas 패키지에 대한 안내를 한다. 이 패키지를 정복하면 빠르게 동작하는 수치적 알고리즘을 표현력 좋고 간결한 인터페이스로 구현할 수 있게 된다.
4장, 'Cython으로 C 성능 얻기'에서는 효율적인 C 코드를 생성하기 위해 파이썬 호환 문법을 사용하는 언어인 Cython을 살펴본다.
5장, '컴파일러 탐구'에서는 파이썬을 효율적 기계어 코드로 컴파일하는 데 사용할 수 있는 도구를 다룬다. 파이썬 함수를 최적화하는 컴파일러인 Numba와 파이썬 프로그램을 실행하면서 바로 최적화할 수 있는 대안 인터프리터인 PyPy를 사용하는 방법을 배운다.
6장, '동시성 구현'에서는 비동기적 프로그래밍 및 반응형 프로그래밍에 대한 지침을 알아본다. 여기서는 주요 용어와 개념을 배우고, asyncio와 RxPy 프레임워크를 사용해 깔끔한 동시성 코드를 작성하는 방법을 시연할 것이다.
7장, '병렬 처리'에서는 다중 코어 프로세서와 GPU에서의 병렬 프로그래밍을 소개한다. multiprocessing 모듈을 사용하고 코드가 테아노(Theano)와 텐서플로(Tensorflow)를 사용하도록 해 병렬성을 얻는 법을 배운다.
8장, '분산 처리'에서는 대규모 문제와 빅데이터를 위한 분산 시스템에서 병렬 알고리즘을 실행하는 데 초점을 두고 7장의 내용을 확장한다. Dask, PySpark, mpi4py 라이브러리를 다룬다.
9장, '성능을 높이는 설계'에서는 고성능 파이썬 애플리케이션 개발과 테스트, 배포를 위한 일반적 최적화 전략과 모범 사례를 다룬다.

목차

1장. 벤치마킹과 프로파일링
애플리케이션 설계
테스트와 벤치마크 작성하기
-벤치마크 시간 측정하기
pytest-benchmark로 개선된 테스트와 벤치마크
cProfile로 병목 찾기
line_profiler로 행 단위 프로파일
코드 최적화
dis 모듈
memory_profiler를 통한 메모리 사용량 프로파일링
요약

2장. 순수 파이썬 최적화
유용한 알고리즘 및 데이터 구조
-리스트와 덱
-딕셔너리
-집합
-힙
-트라이
캐싱과 메모이제이션
-JOBLIB
조건 제시법과 제너레이터
요약

3장. NumPy와 Pandas를 사용한 고속 배열 연산
NumPy 시작하기
-배열 생성하기
-배열 접근하기
-브로드캐스팅
-수학 연산
-놈 계산
입자 시뮬레이터를 NumPy로 다시 작성하기
numexpr로 최적의 성능에 도달하기
Pandas
-Pandas 기초
-Pandas를 사용한 데이터베이스 방식의 연산
요약

4장. Cython으로 C 성능 얻기
Cython 확장 컴파일
정적 형식 추가
-변수
-함수
-클래스
선언 공유
배열 다루기
-C 배열과 포인터
-NumPy 배열
-형식화된 메모리뷰
Cython 입자 시뮬레이터
Cython 프로파일링
주피터로 Cython 사용하기
요약

5장. 컴파일러 탐구
Numba
-NUMBA 첫 단계
-형식 특수화
-객체 모드와 원시 모드
-Numba와 NumPy
-JIT 클래스
-Numba 제약
PyPy 프로젝트
-PyPy 설치
-PyPy로 입자 시뮬레이터 실행하기
그 밖의 흥미로운 프로젝트
요약

6장. 동시성 구현
비동기적 프로그래밍
-I/O 대기
-동시성
-콜백
-퓨처
-이벤트 루프
asyncio 프레임워크
-코루틴
-블로킹 코드를 논블로킹 코드로 변환하기
반응형 프로그래밍
-옵저버블
-유용한 연산자
-뜨거운 옵저버블과 차가운 옵저버블
-CPU 모니터 구축
요약

7장. 병렬 처리
병렬 처리 개론
-그래픽 처리 장치
여러 프로세스 사용하기
-PROCESS와 POOL 클래스
-Executor 인터페이스
-파이 값의 몬테 카를로 근사치 계산법
-동기화와 잠금
OpenMP를 사용한 병렬 Cython
자동 병렬성
-테아노 시작
-텐서플로
-GPU에서 코드 실행
요약

8장. 분산 처리
분산 컴퓨팅 소개
-맵리듀스 소개
Dask
-방향성 비순환 그래프
-Dask 배열
-Dask Bag과 DataFrame
-Dask distributed
파이스파크 사용하기
-스파크와 파이스파크 설정
-스파크 아키텍처
-RDD
-스파크 데이터프레임
mpi4py를 사용한 과학기술 컴퓨팅
요약

9장. 성능을 높이는 설계
적절한 전략 선택하기
-일반 애플리케이션
-수치 코드
-빅데이터
소스 코드 구조화하기
격리와 가상 환경, 컨테이너
-Conda 환경 사용하기
-가상화와 컨테이너
지속적인 통합
요약

본문중에서

파이썬 프로그래밍 언어는 문법이 직관적이고 재미있으면서 최고 품질의 서드파티 라이브러리가 다양한 덕분에 최근 몇 년 동안 급격히 큰 인기를 얻었다. 수많은 대학 입문 강좌와 고급 강좌에서 꼽힌 데 더해 과학과 엔지니어링 분야와 같이 집중적으로 숫자를 다루는 분야를 위해서도 선택됐다. 머신 러닝과 시스템 스크립팅, 웹 애플리케이션도 파이썬이 주로 활용되는 영역이다.
대부분이 C나 C++, 포트란(Fortran)과 같은 저수준 언어에 비해 레퍼런스 파이썬 인터프리터인 CPython이 비효율적이라고 여긴다. CPython의 성능이 형편없는 이유는 프로그램 명령instruction을 효율적인 기계어 코드로 컴파일하는 대신 인터프리터가 처리하기 때문이다. 인터프리터를 사용하면 이식성이 좋아지고 추가적 컴파일 단계가 없어지는 등 몇 가지 장점이 있지만 프로그램과 기계 사이에 간접 계층이 더해져 실행 효율성이 떨어진다.
몇 년에 걸쳐 CPython의 성능 문제를 극복하기 위해 많은 전략을 개발했다. 이 책의 목적은 그 간극을 메우고 일관적으로 파이썬 프로그램의 성능을 강하게 만들 방법을 가르치는 것이다.
이 책은 숫자를 다루는 코드 및 과학적 코드의 최적화를 다룰 뿐만 아니라, 웹 서비스와 애플리케이션의 응답 시간을 개선하는 전략까지 다뤄 많은 독자들에게 도움될 것이다.
('지은이의 말' 중에서)

파이썬은 최근에 굉장히 인기 있는 언어로 널리 쓰이고 있습니다. 머신 러닝부터 데이터 가공, 웹 애플리케이션까지 다양한 분야에서 파이썬을 활용할 수 있으며 사용하기 쉽고 직관적인 문법을 갖고 있어 진입 장벽도 낮은 편입니다. 그러나 또 개발자들은 파이썬으로 프로그램을 빨리 만들어 사용할 수는 있지만, 규모가 커지면 성능상 문제가 일어날 것이기 때문에 중요한 곳에서는 사용할 수 없다고도 생각합니다. 그런 영역이 있을지도 모르지만, 저는 어쩌면 너무 빨리 파이썬을 포기하는 것이 아닐까 의심했습니다.
이 책은 파이썬을 사용하면서 충분한 성능을 얻을 수 있는 여러 가지 접근법에 대해 설명합니다. 첫 장에서는 일반적인 성능 개선에 대해 사용할 수 있는 프로파일링과 벤치마킹에 대해 다룹니다. 그다음은 알고리즘과 데이터 구조 및 캐싱을 활용하는 순수 파이썬 최적화를 다룹니다. 데이터 분석에서 널리 사용되는 NumPy와 Pandas로 고속 배열 연산을 하는 방법도 설명하며, Cython으로 확장 파이썬 문법을 사용해 효율적인 C 코드를 얻고 사용하는 방법도 소개합니다. JIT를 활용하는 파이썬 성능 개선 방법도 보여주며, 동시성과 병렬성, 분산 처리를 파이썬에서 구현하는 방법과 라이브러리에 대해서도 소개합니다. 이 과정에서 반응형 프로그래밍 개념, 테아노나 텐서플로, 스파크처럼 요즘 유명해진 라이브러리 등에 대해서도 소개합니다.
좀 더 확장된 파이썬 언어 구현이나 파이썬 성능을 높이는 다양한 방법에 대해 관심이 있다면 이 책이 좋은 길잡이 역할을 해줄 거라고 생각합니다.
('옮긴이의 말' 중에서)

저자소개

가브리엘레 라나로(Gabriele Lanaro) [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

브리티시컬럼비아 대학교(University of British Columbia) 화학과에서 분자 시뮬레이션 분야를 연구하는 박사과정생이다. 대규모 시뮬레이션의 화학 반응 분석을 위한 고성능 파이썬 코드를 주로 작성해왔다. 고성능 파이썬 시각화 프로그램인 Chemlab과 emacs 텍스트 에디터를 사용해 파이썬 코드를 쉽게 작성할 수 있는 emacsfor-python 익스텐션을 개발했다. 저자가 연구와 개인 프로젝트를 통해 터득한 과학 연구를 위한 파이썬 프로그래밍을 이 책에서 소개한다.

이 상품의 시리즈

프로그래밍 언어 시리즈(총 19권 / 현재구매 가능도서 19권)

펼쳐보기

이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

    리뷰

    0.0 (총 0건)

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    10.0

    교환/환불

    교환/환불 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

    교환/환불 가능 기간

    고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

    교환/환불 비용

    고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

    교환/환불 불가사유

    반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
    배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

    소비자 피해보상

    소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
    교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

    기타

    도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

    배송안내

    • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

    • 배송비

    도서(중고도서 포함) 구매

    2,000원 (1만원이상 구매 시 무료배송)

    음반/DVD/잡지/만화 구매

    2,000원 (2만원이상 구매 시 무료배송)

    도서와 음반/DVD/잡지/만화/
    중고직배송상품을 함께 구매

    2,000원 (1만원이상 구매 시 무료배송)

    업체직접배송상품 구매

    업체별 상이한 배송비 적용