| 000 | 00000cam c2200205 c 4500 | |
| 001 | 000046171429 | |
| 005 | 20240228175810 | |
| 007 | ta | |
| 008 | 240228s2019 ulka 001c kor | |
| 020 | ▼a 9791161752419 ▼g 94000 | |
| 020 | 1 | ▼a 9788960772106 (set) |
| 035 | ▼a (KERIS)BIB000014984890 | |
| 040 | ▼a 241050 ▼c 241050 ▼d 211009 | |
| 041 | 1 | ▼a kor ▼h eng |
| 082 | 0 4 | ▼a 005.133 ▼2 23 |
| 085 | ▼a 005.133 ▼2 DDCK | |
| 090 | ▼a 005.133 ▼b P999 2019z53 | |
| 100 | 1 | ▼a Lanaro, Gabriele |
| 245 | 1 0 | ▼a 파이썬 성능 높이기 : ▼b 프로그램 병목 찾기부터 파이썬 구현 선택, 병렬 시스템 확장까지 / ▼d 가브리엘레 라나로 지음 ; ▼e 임혜연 옮김 |
| 246 | 1 9 | ▼a Python high performance : ▼b build robust application by implementing concurrent and distributed processing techniques ▼g (2nd ed.) |
| 260 | ▼a 서울 : ▼b 에이콘, ▼c 2019 | |
| 300 | ▼a 337 p. : ▼b 삽화 ; ▼c 24 cm | |
| 490 | 1 0 | ▼a Acorn+packt technical book 시리즈 |
| 500 | ▼a 색인수록 | |
| 650 | 0 | ▼a Python (Computer program language) |
| 650 | 0 | ▼a Computer programming |
| 700 | 1 | ▼a 임혜연, ▼e 역 |
| 830 | 0 | ▼a Acorn+packt technical book 시리즈 |
| 900 | 1 0 | ▼a 라나로, 가브리엘레, ▼e 저 |
| 945 | ▼a ITMT |
소장정보
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.133 P999 2019z53 | 등록번호 121265751 (2회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
파이썬 프로그램의 성능을 높이기 위한 여러 가지 전략을 소개한다. 파이썬에서 기본적인 프로그램 성능을 높이기 위한 병목 찾기를 어떻게 진행하는지부터 성능이 좋은 라이브러리 도입, 확장 파이썬을 컴파일하는 컴파일러, 파이썬 프로그램을 병렬적으로 만드는 것까지 다양한 수준의 성능 개선 기법이 나와 있으므로 파이썬을 어느 정도 써본 사람이라면 도움 될 것이다.
★ 이 책에서 다루는 내용 ★
■ 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장, '성능을 높이는 설계'에서는 고성능 파이썬 애플리케이션 개발과 테스트, 배포를 위한 일반적 최적화 전략과 모범 사례를 다룬다.
정보제공 :
저자소개
가브리엘레 라나로(지은이)
중대형 컴퓨터 시뮬레이션을 사용한 결정체의 형성과 성장 연구를 수행해왔다. 2017년 이론 화학에서 박사 학위를 취득했다. 머신 러닝과 수치 계산 시각화, 웹 기술에 관심사가 걸쳐 있다. 좋은 소프트웨어를 향한 열정을 갖고 있으며 오픈 소스 패키지인 chemlab, chemview의 저자다. 이 책의 초판인 『고성능 파이썬 프로그래밍』(에이콘, 2013)을 썼다.
임혜연(옮긴이)
인터넷 세상의 언어에 관심이 많은 개발자다. 지금은 어떻게 하면 검색을 통해 좋은 연결을 만들 수 있을지 고민하는 일을 주로 하고 있다. 옮긴 책으로는 『데이터 접근 패턴 Data Access Patterns』(에이콘, 2013), 『자연어 텍스트 처리를 통한 검색 시스템 구축』(에이콘, 2014), 『파이썬 성능 높이기 2/e』(에이콘, 2018), 『HTTP/2 in Action』(에이콘, 2020), 『데이터 과학을 위한 파이썬과 R』(한빛미디어, 2022)이 있다.
목차
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 환경 사용하기 ____가상화와 컨테이너 __지속적인 통합 __요약
