이미 소장하고 있다면 판매해 보세요.
|
|
1장. 벤치마킹과 프로파일링
__애플리케이션 디자인 __테스트와 벤치마크 작성 ____벤치마크 실행 시간 측정 __cProfile을 사용하여 병목지점 찾기 __line_profiler를 사용한 라인 프로파일링 __코드 최적화 __dis 모듈 __memory_profiler를 사용한 메모리 사용 프로파일링 __파이썬 코드 튜닝 팁 __요약 2장. NumPy를 사용한 빠른 배열 연산 수행 __NumPy ____배열 생성 ____배열 접근 ____브로드캐스팅 ____수학 연산 ____노름 계산 __NumPy를 사용하여 입자 시뮬레이터 개선 __numexpr를 사용한 성능 개선 __요약 3장. Cython __Cython 확장 모듈 컴파일 __정적 타이핑 ____변수 ____함수 ____클래스 __코드 공유 __배열 다루기 ____C 배열과 포인터 ____NumPy 배열 ____자료형이 지정된 메모리뷰 __Cython 입자 시뮬레이터 __Cython 프로파일링 __요약 4장. 병렬처리 __병렬 프로그래밍 __multiprocessing 모듈 ____Process와 Pool 클래스 ____몬테 카를로 원주율 ____동기화와 잠금 __IPython parallel ____direct 인터페이스 ____작업 기반 인터페이스 __OpenMP를 사용한 병렬 Cython __요약 |
|
★ 이 책에서 다루는 내용 ★
■ 벤치마킹을 통한 프로그램 성능 측정 ■ 파이썬 프로파일링 도구를 사용해 코드의 병목 지점 검출 ■ 파이썬 루프를 NumPy로 대체해 코드 실행 속도 향상 ■ C 언어 급의 성능을 끌어내기 위해 Cython 사용 ■ 멀티코어 프로세서를 활용한 코드 작성 ■ 애플리케이션 프로파일링, 최적화, 재작성 ★ 이 책의 대상 독자 ★ 이 책은 고성능 애플리케이션을 개발하는 중상급 파이썬 개발자를 위한 책이다. 대부분의 예제는 과학 연구 관련 애플리케이션에서 사용되는 코드로 빠른 수학 연산 처리가 필수인 과학자나 엔지니어에게 적합하다. 하지만 이 책에서 다루는 내용은 모든 분야에 적용될 수 있다. 기본 개념부터 상급 주제까지 다양한 내용을 다루기 때문에 대부분의 파이썬 개발자라면 누구에게나 도움이 될 것이다. ★ 이 책의 구성 ★ 1장, ‘벤치마킹과 프로파일링’에서는 프로그램 내 최적화가 필요한 부분을 찾는 방법을 알아본다. 상황에 맞는 도구를 사용하고 프로파일링 결과를 분석 및 해석하는 방법을 학습한다. 2장, ‘NumPy를 사용한 빠른 배열 처리’에서는 NumPy 패키지 사용 방법을 설명한다. NumPy는 배열 연산을 빠르게 처리하는 파이썬 프레임워크다. 사용법이 쉬우며 간결한 API를 제공하고 효율적으로 배열 연산을 수행한다. 3장, ‘Cython’에서는 Cython 사용법을 소개한다. Cython은 파이썬과 C 언어 사이의 다리 역할을 하는 언어다. 파이썬의 상위 집합 언어며 파이썬 코드를 빠른 C 익스텐션으로 컴파일한다. 4장, ‘병렬처리’에서는 병렬 프로그래밍의 기본 개념을 살펴본다. 병렬과 직렬 프로그래밍의 차이를 설명하고 간단한 문제를 병렬 프로그램으로 작성해본다. multiprocessing과 IPython.parallel, cython.parallel을 사용해 멀티코어 프로세서를 활용하는 프로그램도 작성한다. ★ 지은이의 말 ★ 파이썬은 간결한 문법과 활발한 커뮤니티의 지원으로 인기를 끌고 있는 프로그래밍 언어다. 우수한 라이브러리 덕분에 여러 분야에서 사용된다. C와 C++, 포트란 같은 로우 레벨 언어는 성능 중심의 애플리케이션을 개발할 때 주로 사용된다. 하지만 로우 레벨 언어로 작성한 프로그램은 속도는 빠르나 개발과 유지보수가 어렵다. 파이썬은 복잡한 애플리케이션을 쉽고 빠르게 작성할 수 있는 언어다. C 언어와의 밀접한 관계 덕분에 동적 프로그래밍 언어 사용 시 발생하는 성능 저하를 피할 수 있다. 느린 코드는 빠른 C 익스텐션으로 대체하고, 그 외 부분은 파이썬 코드로 유지하여 성능을 높일 수 있다. 이 책은 프로그램의 성능 저하 원인을 찾고 개선하는 기본적인 방법부터 고급 기술까지 단계적으로 설명한다. 이 책에서 다루는 모든 내용은 예제와 함께 설명한다. 파이썬 프로그래밍에서 흔히 범하는 실수도 살펴본다. 이 책에서 사용된 도구들은 보편적이며 안정성이 검증되었다. 해당 분야에서 널리 사용되고 있으며 지속적으로 업데이트될 것이다. 기본부터 단계적으로 설명하기 때문에 첫 장부터 순서대로 읽을 것을 권장한다. 즐겁게 읽기 바란다. ★ 옮긴이의 말 ★ 컴퓨터 프로그래밍의 대중화는 더 쉽고 간결한 언어에 대한 기대와 활성화로 연결되었다. 그중 파이썬은 상대적으로 낮은 진입장벽과 쉽고 간결한 문법 덕분에 다양한 분야에서 사용된다. 간단한 스크립트부터 대규모 프로젝트까지 파이썬은 주 프로그래밍 언어로 성장했고 외부 라이브러리를 사용해 언어의 효율성과 실행 속도를 극대화하려는 많은 연구가 진행되고 있다. 파이썬의 가장 큰 장점은 훌륭한 외부 라이브러리들이 꾸준히 개발되고 있는 활발한 언어라는 점이다. 프로그래머는 사용성이 입증된 외부 패키지를 활용해 복잡한 알고리즘 개발에 할애하는 시간을 줄이고 효율적인 코드를 작성할 수 있다. 이 책은 외부 패키지를 사용해 파이썬 코드를 최적화하고 효율성을 높이는 몇 가지 핵심 방법을 소개한다. 기본적인 파이썬 문법 및 사용법을 숙지하고 외부 패키지 사용에 대한 개념을 이해하는 파이썬 프로그래머를 대상으로 한다. 간단한 파이썬 기반 프로그램을 단계적으로 작성하면서 문제점을 집어내고 Cython과 NumPy를 사용해 코드를 최적화한다. 또 프로그래밍 분야의 최대 난제이자 동시에 즐거움인 병렬처리의 개념을 소개하고 multiprocessing 모듈과 IPython Parallel 패키지 등을 사용해 파이썬 프로그램을 병렬화한다. 이 책에서 소개하는 최적화 기법은 거의 모든 파이썬 프로그램에 적용할 수 있는 보편적이며 유용한 기술이므로 반드시 숙지하기를 권유한다. |