티스토리 뷰
꽤 오래전 글이지만 얼마 전 세미나에서 "The Free Lunch Is Over" 라는 말을 처음 듣고 멀티코어 CPU의 동작 원리가 궁금했다. 그래서 찾아보니 다행히 어려운 전공 서적이 아닌 프로그래머를 위한 이 책이 있었다.
이 책을 읽으면서 생각해보니 내가 알고있는 CPU에 대한 지식은 대학교 학부시절 '컴퓨터 구조' 수업이 거의 마지막이었던 것 같다. 아래의 책이 교재였었다. 그 당시에는 처음 들어보는 컴퓨터 시스템 구조와 원리에 대한 내용이라서 흥미있게 들었지만 나중에 이 내용이 크게 도움이 될 것이라고는 기대하지 않았었다. 그러나 수년 간 현업에 있으면서 '성능 좋은 S/W를 만들기 위해서는 하면서 H/W 지식도 필요하다' 라는 생각이 가끔은 든다.
이 책은 CPU 작동 원리에 대한 가능한 많이 지식을 담으려는 저자의 노력과 욕심이 보인다. 기초 지식이 부족해서 정확히 이해가지 않는 부분들이 꽤 있었다. 그럼에도 불구하고 끝까지 읽을 수 있었던 건 그 만큼 저자가 어려울 수 있는 전문 지식을 쉽게 풀어서 설명해 주었기 때문이었다.
본문 중에서...
"앞서 인용한 '공짜 점심은 끝났다'라는 말처럼 프로그래머는 이제 적극적으로 병렬 프로그래밍에 관심을 가져야 한다. 높은 싱글스레드의 성능이 특히 요구되는 고사양의 게임은 듀얼코어에서 쿼드코어로 업그레이드했다고 속도가 저절로 높아지는 것은 아니다. 과거와 비교할 때 훨씬 더 많은 노력을 가해 프로그램을 병렬화해야 한다."
이 책은 CPU의 동작 원리와 알리고즘들을 설명하고 있지만 결국 깨달은 점은 'CPU는 결국 프로그래밍 언어로 표현 가능한 알고리즘을 실행시키는 장치' 라는 것과 멀티코어 프로그래밍은 더 이상 특정 분야만을 위한 기술이 아니라는 것이다. 마지막으로 입문서 위주의 국내 컴퓨터 분야 도서 시장에서 이 책과 같은 특정 분야의 전문 지식을 담은 책들을 더 많이 만나볼 수 있으면 좋겠다.
참조
{&&, ||, !} vs. {&, |, ~} http://egloos.zum.com/minjang/v/1968466
암달의 법칙(Amdahl's law) http://en.wikipedia.org/wiki/Amdahl%27s_law
루프 풀기: 실제 컴파일러는 어떻게 http://egloos.zum.com/minjang/v/2280747
The Free Lunch Is Over http://www.gotw.ca/publications/concurrency-ddj.htm
Multicore Is Bad News For Supercomputers
http://spectrum.ieee.org/computing/hardware/multicore-is-bad-news-for-supercomputers
Single-Threaded vs. Multithreaded : Where Should We Focus http://research.cs.wisc.edu/multifacet/papers/ieeemicro07_debate.pdf
SIMD 명령어로 두 구의 충돌 검사 최적화 해보기 ttp://egloos.zum.com/minjang/v/2520416
cache http://en.wikipedia.org/wiki/Cache_(computing)
CPU cache http://en.wikipedia.org/wiki/CPU_cache
Cache algorithms http://en.wikipedia.org/wiki/Cache_algorithms
Branch predictor http://en.wikipedia.org/wiki/Branch_predictor
병렬 프로그래밍 : 자료구조의 '민영화' http://egloos.zum.com/minjang/v/2473618
Intel Parallel Advisor Lite http://egloos.zum.com/minjang/v/2510905
OpenMP를 이용한 병렬 프로그래밍 http://www.mimul.com/pebble/default/2012/05/30/1338342349153.html
Scheduling multithreaded computations by work stealing
http://supertech.csail.mit.edu/papers/steal.pdf
Intel Cilk Plus https://www.cilkplus.org/
Intel Thread Building Blocks https://www.threadingbuildingblocks.org/
Ct : C for Throughput Computing
https://www.nersc.gov/assets/RD/ATG_Meetings/SIAM_PP08/CT-SIAM-PP08.pdf
NVIDIA CUDA SDK Code Samples
http://developer.download.nvidia.com/compute/cuda/1.1-Beta/x86_website/samples.html
분산 메모리 환경을 위한 방법론 MPI
http://www.mcs.anl.gov/research/projects/mpi/
false sharing http://egloos.zum.com/minjang/v/1848130
우선순위 역전 현상 http://egloos.zum.com/minjang/v/1018977
락을 대체할 수 있는 트랜잭셔널 메모리 http://egloos.zum.com/minjang/v/2313699
[고객센터] 프로그래머가 몰랐던 멀티코어 CPU 이야기 http://minjang.egloos.com/2644402
- James Song
'Books_tech' 카테고리의 다른 글
경쟁하지 말고 독점하라 <제로 투 원> (0) | 2015.05.02 |
---|---|
HTTP 교과서 <HTTP 완벽 가이드> (0) | 2015.04.09 |
<미래를 바꾼 아홉가지 알고리즘>을 읽고... (0) | 2015.01.17 |
[도서]1만 페이지 독서력 (0) | 2014.12.25 |
[도서]구글은 어떻게 일하는가 (How Google Works) (0) | 2014.12.14 |
- #cplusplus
- #레거시코드
- Effective C++
- 상속
- #ndc
- #제럴드와인버그
- #세미나
- 객체 지향 설계
- #uwp
- #techdays2015
- #로버트마틴
- #mva
- #자녀교육
- #build2016
- 책
- #csharp
- Scott Meyers
- #알고리즘
- Effective Modern C++
- #cpp
- #스콧마이어스
- #임백준
- #팀개발
- #클린코드
- #ModernCPP
- #scottmeyers
- #EffectiveModernCpp
- #코드최적화
- #프로그래밍심리학
- #마이클페더스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |