Multicore Application Programming

1.
Mechanical Sympathy이라는 말을 들어보셨나요? 얼마 전 코스콤 사보에 기고한 글에서 인용하였던 문장이 있습니다.

What can software development learn from the motor racing industry? By the 1970’s we began to see over specialisation of drivers and designers leading to drivers who knew little about how their cars worked.

Jackie Stewart, 3 times F1 world champion, coined the phrase “Mechanical Sympathy” as a term for the driver and the machine working together in harmony. This can be summarised in that a driver does not need to know how to build an engine but they need to know the fundamentals of how one works to get the best out of it.

소프트웨어는 하드웨어를 통하여 동작을 합니다. 하드웨어와 소프트웨어는 몸과 마음과 같은 관계입니다. 소프트웨어가 최상의 성능을 발휘하려면 하드웨어의 특성을 잘 파악하여야 합니다. 하드웨어중 핵심은 CPU입니다. 현대 CPU의 특징은 멀티코어입니다. 멀티코어의 구조를 잘 이해하여 소프트웨어를 개발하는 것, 개발자에게 중요합니다.

오라클의 소프트웨어 엔지니어인 Darryl Gove가 있습니다. Darryl Gove’s blog – Compiling and performance를 통하여 가끔씩 접합니다. Darryl Gove가 쓴 책중에 ‘ Multicore Application Programming: For Windows, Linux, and Oracle Solaris’가 있습니다. 책을 쓴 동기입니다.

Christy: What technologies or approaches does the book cover?

Darryl: Since the technology has relatively recently become mainstream, there are a large number of different approaches to writing parallel applications. Although I cover quite a few different approaches in the book, I ended up focusing on the three approaches that are most common. These are automatic parallelization, OpenMP, and native threads.

One advantage of picking these three approaches is that they are available on most platforms. This enabled me to separate the concepts and implementation, so the book covers both UNIX-like platforms and Microsoft Windows.

One choice I made was to focus on the traditional CPU. There is one exception to this: the topic of leveraging the GPU for parallel applications. This is an interesting area because the performance gains from this approach can be massive, if the problem can be made to fit the hardware. This is one area that I expect to become mainstream.

Christy: How is this book important and who should read it?

Darryl: Multicore is an important area for developers. If you look at the systems that are currently available, all are multicore. Some of the systems from Oracle have 512 hardware threads. So producing applications that scale to that number of threads is very important.

One audience for the book is developers who code in C or C++ who are looking to move to writing parallel applications. The examples are largely in C with a few places where I drop into either x86 or SPARC assembly language.

However, the book is also useful for people who want to understand the differences in behavior between a multicore system and a multiprocessor system. So although the primary audience is developers, people involved in capacity planning might also find some of the material useful.
Interview with Darryl Gove: Multicore Application Programming중에서

2.
어떤 분이 scribd에 올려놓았네요. 이와 비슷한 주제의 책으로 ‘The Art of Multiprocessor Programming’도 있습니다. 구글링을 하시면 러시아에서 받을 수 있습니다.(^^)

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.