루이지애나 주립대학교에서 박사 학위를 받고 현재 비텐베르크 대학의 조교수로 재직 중이다. 수년의 경력이 있고, 가장 최근에는 오하이오 슈퍼컴퓨터 센터에서 일했다. 전자 상거래, 기업 메시징, 무선 네트워크, 슈퍼컴퓨팅, 학계에 걸쳐 다양한 경험을 갖고 있다. 여가 시간에는 팩트출판사와 오라일리의 책을 저술하며 프로그래밍 감각을 잃지 않으려 노력한다.
고성능 병렬 환경에서 활약 중인 IPython 6.0의 세계에 온 걸 환영한다. 지금까지는 파이썬이 관련 분야를 선도해왔으며, 이러한 강점을 기반으로 IPython이 만들어졌다.
고성능 컴퓨팅(HPC, High-performance computing)에는 다른 대다수 컴퓨팅 영역과 구별되는 많은 특징이 있다. 고성능 컴퓨팅의 특징과 IPython이 어떻게 판도를 바꾸는 기술이 될 수 있을지 간단히 요약한다.
우선 IPython 명령행을 설명한다. 주피터를 IPython 프로젝트로부터 분리했으므로 명령행은 개발자가 IPython 언어와 소통하는 기본 수단이다. 두 장에 걸쳐 설명할 만큼 중요한 주제다. 1장은 기초 명령어에 중점을 둬 IPython의 명령어 수행 방법을 설명한다. 2장은 좀 더 고급 명령어를 다루면서 명령행이 반드시 제공해야 하는 기능을 이해시킨다.
이어서 병렬 프로그래밍의 세부적인 내용을 설명한다. IPython에서 병렬 기능은 하나의 패키지로서 IPython으로 병렬 컴퓨팅을 수행하는 데 필요한 수많은 기능을 포함한다. 이 패키지는 유연한 병렬 프로그래밍 모델을 지원하며, 다중 병렬 아키텍처를 활용하는 데 매우 중요하다.
서로 다른 프로세서에서 병렬로 실행되는 프로그램들은 별도의 주소 공간이 있다 해도 종종 정보를 교환해야 한다. 이때 메시지 전송을 이용한다. 메시징 시스템인 제로MQ와 MPI를 소개하고, 두 시스템이 기존 프로그램에서 어떻게 쓰이며 IPython과 어떻게 상호작용하는지 다룬다.
사용자의 생산성을 강화할 수 있는 라이브러리도 자세히 알아본다. IPython 내에 들어있는 라이브러리와 외부 도구에서 제공하는 라이브러리를 포괄한다. 이 책이 다루는 많은 도구뿐만 아니라 다른 책에서도 계속 여러 도구를 설명하고 있지만, 병렬과 고성능 컴퓨팅 프로젝트에 적용할 만한 도구는 많지 않다.
IPython의 중요한 기능은 데이터셋과 결과의 시각화 지원이다. 언어에 내장된 기능과 외부 도구를 통한 지원을 포함해 IPython의 폭넓은 기능을 설명한다.
IPython에 대한 설명은 테스트와 설명서를 다루며 마무리한다. 종종 도외시되는 주제지만, 실패한 코드와 전문 코드를 분리해낼 때 중요하다. IPython이 2개발 단계를 어떻게 지원하는지 살펴본다. 끝으로 병렬 컴퓨팅 분야의 흐름을 논한다. 모든 기술이 늦어도 한 해 걸러 한 번씩은 변하는 점이 프로그래밍의 재미 중 하나다. 미래에 일어날 일을 예상해보자.