장바구니 담기 close

장바구니에 상품을 담았습니다.

IPython 60

IPython 60

  • 토마스비터만
  • |
  • 에이콘출판
  • |
  • 2018-03-09 출간
  • |
  • 432페이지
  • |
  • 188 X 235 X 21 mm
  • |
  • ISBN 9791161751276
판매가

30,000원

즉시할인가

27,000

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
27,000

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




[역자의 말]
오늘날은 바야흐로 빅데이터의 세상이다. 빅데이터가 일상에 깊숙이 스며들면서 대용량 분산 처리를 넘어 고성능 컴퓨팅과 병렬 컴퓨팅의 필요성도 자연히 커졌다. 과거 포트란이 주도하던 이 분야에 새롭게 등장한 강자가 바로 IPython이다.
IPython은 Interactive Python의 약자로 기존의 배치 처리 방식이 아닌 시스템과의 인터랙션을 강조한 고성능 컴퓨팅 언어다. IPython의 개발자인 페르난도 페레즈는 전통적인 파이썬에서 벗어나 명령행에서 인터랙티브하게 수행될 수 있는 노트북 형식의 인터페이스를 만들고자 했다.
그 결과 파이썬의 여러 강점과 객체지향 패러다임을 포함하는 IPython이 탄생했다.
이 책은 고성능 병렬 컴퓨팅의 관점에서 IPython이 갖는 고유한 특징을 면밀히 소개하고, 실제 프로젝트에 적용할 수 있도록 다양한 예제로 패키지와 라이브러리를 설명한다. 독자가 이해해야 할 핵심은 크게 세 가지다.
첫째, 고성능 병렬 컴퓨팅을 가능케 하는 IPython의 내부 병렬 아키텍처와 메시징 시스템이다. IPython의 병렬 아키텍처는 기본적으로 엔진, 컨트롤러, 허브, 스케줄러라는 네 개의 컴포넌트로 구성되는데, 실제 병렬 잡을 수행하는 엔진과 이를 관리하는 컨트롤러 (허브와 스케줄러를 포함)가 어떻게 동작하는지 보여준다.
또한 ipyparallel 라이브러리로 다양한 유형의 병렬 구조를 지원하는 방식도 설명한다. 더불어 병렬 프로세스 간 커뮤니케이션을 지원하는 대표적인 메시징 시스템인 제로MQ와 MPI도 살펴본다. 특히 제로MQ가 IPython의 내부 메시징 프레임워크로서 어떻게 쓰이고 있는지 예제와 함께 알아본다.
둘째, 앞서 설명한 병렬 아키텍처를 쉽고 효율적으로 다룰 수 있는 IPython의 내부 라이브러리를 알 수 있다. IPython이 제공하는 API를 사용하면 병렬 계산 결과에 접근하고 조작하거나 성능 프로파일링 등을 수행할 수 있다.
이 중 비동기식 호출을 가능케 하는 AsyncResult, 잡을 제어하는 Client 클래스, 여러 엔진을 하나의 엔티티처럼 다룰 수 있는 DirectView, 스케줄러를 사용해 블로킹 없이 다수의 잡을 실행하는 LoadBalancedView를 중점적으로 살펴본다.
셋째, IPython을 더욱 풍부하게 사용할 수 있는 외부 도구와 언어를 다룬다. 이 책은 두 가지 목적으로 나눠 설명하는데, 먼저 복잡한 컴퓨팅을 지원하는 외부 언어와의 통합이다. 통계에 적합한 R, 수 계산에 특화된 옥타브, 빅데이터 분석에 유용한 하이 등을 논한다.
다음은 데이터 시각화를 위한 외부 도구와의 통합이다. 파이썬 기반의 2D 그래프 라이브러리인 matplotlib, 파이썬 대화형 시각화 라이브러리인 보케, 그리고 R 등을 예제 코드와 함께 다룬다.
이 밖에도 모든 개발 프로젝트의 기본인 테스트와 설명서도 빼놓지 않는다.
과학과 공학 분야에 걸쳐 고성능 컴퓨팅 자원을 반드시 필요로 하는 문제들이 점차 늘어나고 있다. 또한 높은 성능과 확장을 위해 클라우드와 같은 병렬 컴퓨팅에 점점 더 의존하고 있다. IPython은 병렬 컴퓨팅을 위한 새로운 아키텍처와 병렬 장비로의 강력하고 유연한 인터페이스를 제공한다.
이 책을 통해 고성능 병렬 컴퓨팅에 IPython을 적극적으로 활용해보고 IPython의 가치를 스스로 평가해보길 바란다.


목차


1장. IPython을 사용한 고성능 컴퓨팅

__속도의 필요성
__포트란으로 해결 - 포트란이 다룬 문제
____가독성
____이식성
____효율성
____컴퓨팅 환경
__IPython과 포트란 중 선택
____포트란
____IPython
________객체지향
________채택의 편이성
____대중성 - 포트란 대 IPython
________유용한 라이브러리
____소프트웨어 개발(과 유지보수) 비용
________요구사항과 명세 얻기
________개발
________실행
________테스트와 유지보수
__대안
________교차 언어 개발
________프로토타이핑과 탐색 개발
__사례 - 고속 푸리에 변환
____고속 푸리에 변환
________포트란
________Python
__성능 관점
__소프트웨어 공학 관점
________복잡도 기반 측정
________크기 기반 측정
____현황
__고성능 컴퓨팅
____고성능 컴퓨팅 학습 곡선
____넘쳐나는 병렬화의 기회(아마존의 컴퓨터는 사용자의 컴퓨터보다 크다)
____고성능 컴퓨팅과 병렬화
____클라우드와 고성능 컴퓨팅
__병렬
____용어
____병렬 프로그래밍 예제
________직렬 프로그램
________병렬 동등
________논의
__요약

2장. 고급 셸 주제

__IPython이란?
__IPython 설치
__통합 배포
____Mastering
____콘다로 패키지 관리
__캐노피 패키지 매니저
__노트북의 변화터미널에서 시작하기
__파이썬을 뛰어넘는 IPython
____셸 통합
____히스토리
__매직 명령어
____맞춤형 매직 명령어 생성
__싸이썬
__IPython 설정
__디버깅
____사후 분석 디버깅
____구동 시 디버깅
____디버거 명령어
__읽기 - 평가 - 출력 루프와 IPython 아키텍처
__대안 개발 환경
____스파이더
____캐노피
____PyDev
____그 밖의 환경
__요약


3장. IPython을 사용한 병렬 컴퓨팅

__직렬 프로세스
____프로그램 카운터와 주소 공간
____배치 시스템
____멀티태스킹과 선점
____시분할
__스레딩
____파이썬으로 스레딩
____예제
____스레딩의 한계
____전역 인터프리터 락
________인터프리터가 하는 일
________CPython
________멀티코어 장비
________전역 인터프리터 락 제거
__다수의 프로세서 사용
__IPython 병렬 아키텍처
____개요
____컴포넌트
________IPython 엔진
________IPython 컨트롤러
________IPython 허브
________IPython 스케줄러
__ipyparallel 시작하기
____ipcluster
____Hello world
____map_sync 사용하기
____비동기 호출
____동기식 임포트
__병렬 매직 명령어
____%px
____%%px
____%pxresult
____%pxconfig
____%autopx
__병렬화 유형
____SIMD
____SPMD
________ipcluster와 mpiexec/mpirun
________ipcluster와 PBS
________엔진 구동
________컨트롤러 구동
________스크립트 사용하기
____맵리듀스
________스캐터와 개더
________더 정교한 방법
____MIMD
____MPMD
____태스크 파밍과 부하 분산
________@parallel 함수 장식자
__데이터 병렬화
____데이터 종속성이 없는 경우
____외부 데이터 종속성
__애플리케이션 조종
____디버깅
____사전 사후 분석 디버깅
____안전한 종료
__요약


4장. 제로MQ와 MPI를 사용한 메시징

__저장소 계층 구조
____주소 공간
____데이터 지역성
__제로MQ
____예제 제로MQ 프로그램
________서버
________클라이언트
____제로MQ의 메시징 패턴
________양방향
________클라이언트와 서버
________게시와 구독
________푸시와 풀
____제로MQ의 주요 특징
____제로MQ 사용 시 이슈
________시작과 종료
________프로세스 찾기
__MPI
____Hello World
____순위와 역할
____점대점 커뮤니케이션
____브로드캐스팅
____리듀스
____논의
________설정 변경
________작업 분할
________작업 분배
____프로세스 제어
________마스터
________워커
__제로MQ와 IPython
____제로MQ 소켓 타입
____IPython 컴포넌트
________클라이언트
________엔진(들)
________컨트롤러
________허브
________스케줄러
________연결 그림
____메시징 유스케이스
________등록
________심장 박동
________IOPub
__요약


5장. 툴킷 - IPython API

__성능 프로파일링
____utils.timing
____%%timeit 사용
____%%prun 사용
__AsyncResult 클래스
____multiprocessing.pool.Pool
________블로킹 메서드
________논블로킹 메서드
________결과 획득
________다양한 메서드를 사용한 예제 프로그램
____mp.pool.AsyncResult
________결과 획득
________다양한 메서드를 사용한 예제 프로그램
____AsyncResultSet 메타데이터
________메타데이터 키
________그 밖의 메타데이터
__Client 클래스
____속성
____메서드
__View 클래스
____View 속성
____파이썬 함수 호출
________동기식 호출
________비동기식 호출
________설정 호출
________잡 제어
__DirectView
________데이터 이동
________임포트
________논의
____LoadBalancedView
________데이터 이동
________임포트
__요약
6장. IPython과 외부 도구 통합

__R
____rpy2 모듈/확장
________rpy2 설치
____Rmagic 사용
________%R 매직
________%%R 매직
________푸시와 풀
____그래픽
____rpy2.robjects 사용
________기초
________문자열을 R로 인터프리팅
__옥타브
____oct2py 모듈과 확장
________oct2py 설치
____옥타브 매직 사용
________%octave 매직
____%%octave 매직
____푸시와 풀
____그래픽
____옥타브 모듈 사용
________푸시와 풀
________옥타브 코드 실행
__하이
____hymagic 모듈과 학장
________hymagic 설치
____hymagic 사용
________%hylang 매직
________%%hylang 매직
____하이 간단 소개
________Hello world!
________괄호에 익숙해지기
________뜬금없는 위치에서의 산술 연산
________연쇄적 연산은 어디서든 가능하다
________하이의 제어 구조
________파이썬 호출
__요약

7장. 백문이불여일견 ? 시각화

__Matplotlib
____matplotlib 시작
____초기 그래프
____그래프 수정
____대화형 제어
__보케
____보케 시작하기
____초기 그래프
____그래프 수정
________그래프 맞춤화
__대화형 플롯
________대화형 플롯 예제
__R
____ggplot2 설치와 판다스
________데이터 프레임 사용
____초기 그래프
________그래프 수정
________다른 관점
__파이썬-nvd3
____파이썬-nvd3 시작하기
____초기 그래프
____여러 도구를 함께 사용하기.
____다른 종류의 플롯
__요약


8장. 데모로는 부족해! ? 테스트

__단위 테스트
____간단한 소개
________어서션
________환경 이슈
________테스트하기 쉽도록 테스트 작성
__unittest
____주요 개념
____setUp과 tearDown을 사용한 테스트
________일회성 setUp과 tearDown
____장식자
__pytest
____설치
____후방 호환성
____테스트 찾기
____테스트 파일 구성
____어서션
____setUp과 tearDown을 사용한 테스트
________전통적인 xUnit방식
____픽스처 사용
________누락과 실패
____몽키패치
__nose2
____설치
____후방 호환성
____테스트 찾기
________각 테스트 실행
____어서션과 설정, 해제
________xUnit방식의 수정
____장식자 사용
____플러그인
________junitxml 플러그인으로 XML 생성
__요약


9장. 설명서

__한 줄 주석
____한 줄 주석 사용하기
____함수 표기
________문법
________시맨틱
____타입 힌트
________문법
________시맨틱
__문서화 문자열
____예제
________문서화 문자열 상속
____추천 요소
________한 행 문서화 문자열
________문법
________다수 행 문서화 문자열
____예제
__RST(reStructuredText)
____역사와 목표
____고객
____해결안
____개요
________문단
________텍스트 방식
________글머리
________하이퍼링크
________섹션
__Docutils
____설치
____용법
____소스 파일 명세
__스핑크스
____설치와 시작
____소스 파일 명시
__요약


10장. 주피터

__설치와 시작
__대시보드
__노트북 생성
__파이썬 스크립트와 상호작용
__셀 작업
____셀 트릭
________셀 범위
________셀 실행
________재시작과 모두 실행
________매직
____셀 구조
________코드 셀
________마크다운 셀
________로우 셀
________헤딩 셀
__그래픽 생성
____matplotlib 사용
____보케 사용
____R 사용
____파이썬-nvd3 사용
__형식 변환
____그 외 형식
____nbviewer
__요약


11장. 미래

__역사
__주피터 프로젝트
____노트북
____콘솔
____주피터 클라이언트
____주피터의 미래
________공식 로드맵
________공식 하위 프로젝트
________인큐베이션
__IPython
____현재 활동
__병렬화의 대두
____메가헤르츠 전쟁의 종말
____문제점
____과거와의 유사점
____현재
________문제는 더 커지고 어려워진다
________컴퓨터는 더 병렬화되고 있다
________클라우드가 밀려온다
________방법이 없다
__성장하는 전문성
____NSF
________지속적인 혁신을 위한 소프트웨어 인프라
__요약

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.