책 소개
라즈베리 파이와 싱글 보드 컴퓨터의 근본에서 출발해 슈퍼컴퓨팅과 병렬 프로그래밍의 기초를 다룬다. 파이의 노드를 준비하고 네트워크로 연결해 하나의 클러스터로 동작하게 하며, MPI4PY로 클러스터의 기능을 활용한다.
또한 파이썬을 활용한 수치 연산을 위해 NumPy 라이브러리, 과학 연산 라이브러리인 SciPy와 신호 처리 및 영상 처리에서 SciPy의 애플리케이션을 살펴본다. 마지막으로 이미지 데이터를 표현하는 방법과 matplolib 라이브러리로 히스토그램을 계산하는 방법을 다룬다.
이 책은 과학 연산의 놀라운 세계로 떠나는 여정의 시작에 불과하다. matplotlib, OpenCV, SciKit 라이브러리를 탐색할 수 있으며, OS 프로그래밍을 하려는 독자들은 라즈베리 파이의 C에서 pthread와 POSIX 라이브러리를 탐색할 수 있다. 라즈베리 파이의 가능성이 무한하다. 이 경이로운 여정의 시작을 위해 최선을 다하길 바란다.
★ 이 책에서 다루는 내용 ★
■ 슈퍼컴퓨팅의 핵심
■ 저가의 라즈베리 파이 클러스터 구축
■ 병렬 프로그래밍의 성능과 메시지 전달 인터페이스의 사용
■ 라즈베리 파이를 활용한 심볼릭, 수치, 과학 프로그래밍
★ 이 책의 대상 독자 ★
라즈베리 파이와 병렬 프로그래밍을 시작하는 사람을 위한 책이다. 사람들은 저비용 슈퍼컴퓨터를 만드는 방법에 관심이 있고, 매우 적은 비용으로 과학 프로그래밍을 시작하고 싶어한다. 하지만 이 책은 컴퓨터 과학의 세계를 완전 처음 접하는 사람을 위한 책이 아니다. 독자가 컴퓨터의 기본 지식을 갖고 있으며, 그와 관련된 대부분의 근본 개념을 처음 접하는 것이 아니라고 가정한다. 컴퓨터를 좋아하고, 컴퓨터 과학을 좀 더 탐구하기 위한 강력한 툴을 배우길 원하는 학생과 그와 같은 취미를 가진 사람에게 적합하다. 메이커와 해커 역시 이 책이 흥미롭다고 여길 것이다. 마지막으로 독자가 왜 이 책을 읽는지 모른다면 아마 라즈베리 파이, 슈퍼컴퓨터, 과학 프로그래밍, 병렬 프로그래밍에 관심이 있기 때문일 것이다. 내가 이 책을 집필하는 것을 즐겼던 것처럼 모든 독자가 이 책을 즐기며 읽기 바란다.
★ 이 책의 구성 ★
1장, ‘싱글 보드 컴퓨터와 라즈베리 파이의 소개’에서는 싱글 보드 컴퓨터의 역사와 철학을 소개한다. 또한 라즈베리 파이의 기초를 알아보고, 라즈베리 파이를 설치하며, 하나의 네트워크로 연결하는 방법을 소개한다.
2장, ‘중요한 리눅스 명령어와 원격 연결’에서는 중요한 리눅스 명령어를 소개한다. 또한 라즈베리 파이로 원격 연결을 구축하기 위한 절차를 상세히 설명한다.
3장, ‘파이썬 소개’에서는 파이썬 역사와 철학을 소개하고, 파이썬 2와 파이썬 3 사이의 차이를 논의하며, 파이썬 3 인터프리터의 다양한 모드를 알아본다.
4장, ‘슈퍼컴퓨팅의 개요’에서는 슈퍼컴퓨팅의 개념을 소개한다.
5장, ‘메시지 전달 인터페이스’에서는 MPI4PY를 라즈베리 파이에 설치하는 방법을 시연한다.
6장, ‘슈퍼컴퓨터 구축’에서는 멀티 파이로 슈퍼컴퓨팅을 구축하는 방법을 소개한다.
7장, ‘라즈베리 파이 오버클럭킹’에서는 안전하게 파이의 다양한 모델을 오버클럭하는 방법을 소개한다.
8장, ‘파이썬 3에서 병렬 프로그래밍’에서는 파이썬 3로 MPI4PY 프로그래밍하는 방법을 소개한다. 또한 병렬 프로그래밍의 중요한 개념들과 구조들을 알아본다.
9장, ‘SciPy 스택과 심볼릭 프로그래밍 소개’에서는 SciPy 스택의 구성 요소를 소개한다. 또한 SymPy를 이용해 심볼릭 프로그래밍(symbolic programming)하는 방법을 알아본다.
10장, ‘NumPy 소개’에서는 Numpy를 이용한 수치 연산의 세계를 소개한다.
11장, ‘SciPy 소개’에서는 SciPy 라이브러리의 다양한 모듈을 소개한다.
12장, ‘SciPy를 활용한 신호 처리’에서는 시각적으로 신호와 신호 처리의 놀라운 세계를 탐험한다.
13장, ‘SciPy를 활용한 처리’에서는 영상 처리의 기초를 알아본다.
14장, ‘Matplotlib’에서는 파이썬의 Matplotlib으로 데이터 시각화에 대한 짧은 소개를 제공한다.
작가 소개
지은이 : 애쉬윈 파얀카
프로그래머, 메이커, 작가, 유튜버로 박학다식하며 과학의 대중화에 힘쓰고 있다. 인도의 IIT 하이데라바드 MTech에서 컴퓨터 과학과 공학을 전공했다. 과학, 기술, 공학, 수학(STEM, science, technology, engineering, and mathematics)의 진흥에 관심을 갖고 있다. 팩트출판사(Packt Publication)에서 3권, 린펍(Leanpub)에서 6권, 에이프레스(Apress)에서 2권의 책을 출판했다. 또한 팩트출판사에서 출판한 4권의 책을 리뷰했다. 이 책은 에이프레스에서 출판하는 세 번째 책이며, 현재 몇 권의 책을 더 집필하고 있다.
옮긴이 : 배진호
웨이브엠 책임 연구원으로, 물류 로봇의 자율 주행 애플리케이션과 펌웨어 연구 개발 업무를 담당하고 있다. 서울과학기술대학원에서 기계설계로봇공학 석사 학위, 로즈헐맨공과대학(Rose-hulman Institute of Tech)에서 레이저공학 석사 학위를 받았다. 새로운 것을 배우고, 문제를 해결했을 때의 성취감에 매료돼 공학에 빠져들었다. 역서로는 에이콘출판사에서 출판한 『ROS 로보틱스 프로그래밍』(2017)이 있다.
목 차
1장. 싱글 보드 컴퓨터와 라즈베리 파이의 소개
__싱글 보드 컴퓨터
____SBC와 범용 컴퓨터의 차이
____시스템 온 칩
____SBC의 역사
____대중적인 SBC 계열
__라즈베리 파이
__라즈베리 파이 설정
____라즈베리 파이 설정을 위해 필요한 하드웨어
____라즈베리 파이를 위해 MicroSD 카드 준비
____필요한 무료 소프트웨어의 다운로드
____라즈베리안 OS를 MicroSD 카드에 쓰기
____VGA 모니터를 사용하는 경우, config.txt의 내용 변경
____파이 부팅
____파이의 환경 설정
__라즈비안
__config.txt
__네트워크와 인터넷에 라즈베리 파이 연결
____와이파이
____이더넷
__파이의 업데이트
____펌웨어 업데이트
____라즈비안의 업데이트와 업그레이드
____raspi-config의 업데이트
__라즈베리 파이의 종료와 재시작
__결론
2장. 중요한 리눅스 명령어와 원격 연결
__중요하고 유용한 리눅스 명령어
____리눅스 명령어 도움말
____네트워크 관련 명령어
__시스템 정보 명령어
____CPU 관련 정보
____메모리 관련 정보
____시스템과 OS 버전 정보
____파티션 관련 정보
____기타 유용한 명령어
__raspi-config로부터 SSH하기 위해 파이 활성화
__윈도우에서 원격으로 라즈베리 파이에 연결
____다른 컴퓨터에서 파이에 연결 확인
____PuTTY
____원격으로 라즈베리 파이 데스크톱에 접근
____WinSCP
__리눅스와 맥OS를 사용한 라즈베리 파이로 연결
____SSH로 원격 로그인
____SSH를 사용해 전달
____파일 전송을 위한 SCP
__결론
3장. 파이썬 소개
__파이썬의 역사
__파이썬의 특징
____단순함
____배우기 쉽다
____읽기 쉽다
____코드 유지보수가 쉽다
____오픈소스
____하이 레벨 언어
____이식성
____인터프리터
____객체지향성
____확장성
____풍부한 라이브러리
____강건성
____신속한 프로토타입
____메모리 관리
____영향력 있는 언어
____커뮤니티 지원
__파이썬 3
____파이썬 2와 파이썬 3 사이의 차이
____왜 파이썬 3을 사용하는가?
__라즈비안에서 파이썬 2와 파이썬 3
__파이썬 프로그램과 파이썬 모드의 실행
____인터랙티브 모드
____노멀 모드
__파이썬을 위한 IDEs
____IDLE
____Geany
__결론
4장. 슈퍼컴퓨팅의 개요
__슈퍼컴퓨팅의 개념
__슈퍼컴퓨터의 간략한 역사
__클러스터
____이종 클러스터
____베오울프 클러스터
__병렬성과 동시성
____병렬성
____동시성
____병렬 프로그래밍
__결론
5장. 메시지 전달 인터페이스
__메시지 전달 인터페이스
____MPI 표준의 역사와 발전
____MPI의 특징
____MPI의 구현
__MPI4PY
____파이썬, MPI4PY, MPI 조합을 사용하는 이유
____라즈비안에서 파이썬 3을 위한 MPI4Y 설치
__nmap의 설치
__결론
6장. 슈퍼컴퓨터 구축
__MicroSD 카드의 백업
__슈퍼컴퓨터의 노드 준비
__파이들의 네트워크
____DHCP를 사용하는 LAN
____와이파이 네트워크
____정적 IP 주소를 사용하는 LAN
__파이의 IP 주소를 찾기 위한 nmap의 활용
__mpirun으로 멀티 파이에서 호스트명 명령어 실행
____자동 인증을 위한 ssh-keygen 키 교환
__클러스터에서 파이의 조직
__결론
7장. 라즈베리 파이 오버클럭킹
__라즈베리 파이 오버클럭킹의 위험성
__파이에 방열판 설치
____방열판의 구매
__raspi-config를 이용한 파이의 오버클럭킹
__/boot/config.txt를 이용한 파이의 오버클럭킹
____/boot/config.txt 내의 옵션
__다양한 파이 모델에 대한 /boot/config.txt 옵션
____파이 B와 파이 B+를 위한 옵션
____파이 2를 위한 옵션
____파이 3을 위한 옵션
__결론
8장. 파이썬 3에서 병렬 프로그래밍
__MPI4PY의 기초
__MPI4PY로 시작
__조건문
__프로세스 개수 확인
__데이터의 송수신
__동적 데이터 송수신
__데이터 태깅...
__데이터 브로드캐스팅
__데이터 분산
__데이터 수집
__결론
9장. SciPy 스택과 심볼릭 프로그래밍 소개
__과학 파이썬 스택
__SciPy 스택의 설치
__SymPy
____SymPy 시작
____심볼
____SymPy 표현식으로 문자열의 변환
____SymPy의 출력 기능
____SymPy에서 단순화
____미적분
__결론
10장. NumPy 소개
__NumPy의 기초
____주피터
____주피터 노트북스
____N차원 배열(ndarray)
__ndarray 속성
____데이터 타입
__배열 생성 루틴
__행렬과 선형 대수
__삼각 메서드
__난수과 통계
__푸리에 변환
__결론
11장. SciPy 소개
__SciPy에서 과학과 수학 상수
__선형 대수
__적분
__보간
__결론
12장. SciPy를 활용한 신호 처리
__파형
__창 함수
____멕시코 모자 파형
____컨볼루션
__결론
13장. SciPy를 활용한 처리
__첫 번째 영상 처리 프로그램
__간단한 영상 처리
__영상 처리를 위한 NumPy 소개
__영상 처리를 위한 Matplotlib
__이미지 채널
__결론
14장. Matplotlib
__이미지 읽기
__컬러 맵
__컬러 바
__영상 처리를 위한 matplotlib
__보간 메서드
__결론
역자 소개
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |