Tài liệu tham khảo – Tháng 10/2008

Vừa qua nhân dịp chuẩn bị bài giảng cho các lớp huấn luyện về lập trình song song của công ty, tôi đã tìm ra được rất nhiều tài liệu hay trên net, đa phần đều có thể tham khảo hoặc download miễn phí. Chi tiết mời các bạn xem dưới đây.

1. Số tháng Ba/tháng Tư vừa qua của tạp chí nổi tiếng ACM Queue đã giành trọn cả số cho chủ đề “GPUs for Parallel Programming”. Trong số này có một số bài rất hay mà tôi đã đọc qua là:

“A Conversation with Kurt Akeley and Pat Hanrahan”: Bài này ghi lại buổi phỏng vấn hai huyền thoại trong làng đồ họa máy tính là Kurt Akeley và Pat Hanrahan, do một huyền thoại khác trong nghề là Tom Duff thực hiện. Tôi sẽ có bài giới thiệu chi tiết về các nhân vật này riêng trong phần “Công nghệ & Nhân vật” vào một dịp khác. Nói một cách ngắn gọn, Kurt là một trong những người sáng lập ra công ty lừng danh SGI (Silicon Graphics) năm 1982, là tác giả của RealityEngine, của OpenGL – còn Pat là tác giả đặc tả giao diện RenderMan của Pixar, là người nhận giải thưởng Oscar 2004 về Thành tựu kỹ thuật trong Đồ họa, là thầy hướng dẫn luận văn tiến sỹ của Ian Buck, tác giả của BrookGPU và hiện là người chịu trách nhiệm phát triển CUDA tại NVIDIA. Không kém gì hai người được phỏng vấn, người phỏng vấn, Tom Duff, cũng là một chiến binh lão luyện tại Pixar, người đứng đằng sau nhiều bộ phim lớn, từ Star Trek II cho đến Ratatouille (đầu bếp chuột).

Trong cuộc phỏng vấn này, Kurt và Pat đã trình bày ý kiến cá nhân về sự phát triển của CPU và GPU dựa trên quy luật Moore, cũng như tầm nhìn của họ về tương lai của GPU trong thập niên này. Phần lập luận của Pat về tính không hiệu quả trong việc thiết kế CPU là phần hay nhất.

“GPUs: A Closer Look”: Bài này trình bày một cách dễ hiểu về quá trình phát triển của GPU trong những năm vừa qua. Các bạn nào muốn học hỏi thêm về quá trình hiển thị 3-chiều trên máy tính (3-D rendering) chắc chắn phải đọc bài này.

“Scalable Parallel Programming with CUDA”: Trong bài này, những chuyên gia phụ trách về CUDA-Tesla của NVIDIA đã trình bày rất đầy đủ về mô hình lập trình song song mới mẻ này. Bài này dễ đọc hơn bài đã đăng trên IEEE Micro (xem phần phía dưới liên quan đến CUDA).

“Data-Parallel Computing”: Bài này do chuyên gia lập trình song song của Microsoft là Chas. Boyd viết. Boyd đã cung cấp cho người đọc bức tranh tổng thể về các giải pháp song song đã và đang hiện diện trong tầm tay của lập trình viên, bao gồm ý tưởng tiếp cận, công cụ hỗ trợ, khó khăn gặp phải, v.v… Mặc dù có nhiều điểm chưa hoàn toàn đồng ý với Boyd, tôi sẽ có một bài tóm tắt về những gì ông đã bàn đến.

2. Trong nhiều cố gắng chuyển sang chiến trường đồ họa, tháng Tám vừa qua Intel đã cho ra đời tạp chí Intel Visual Adrenaline, trong đó có nhiều bài viết hay về đồ họa, cụ thể là hai bài:

“Unlocking the Potential of Graphics Processing: Technology Transfer at Its Finest”: Đây là bài phỏng vấn Randi Rost, Intel. Rost là tác giả của “OpenGL Shading Language”. Ông trao đổi về cách thức Intel phát triển chiến lược đồ họa của mình.

“Epic’s Unreal Engine Stops Playing Around: Non-Game Uses Open New Opportunities”: Bài này đề cập đến một chủ đề rất lý thú là sử dụng các game engine vào các ứng dụng hiển thị 3-chiều phi game. Đây là một hướng đi mới chắc chắn sẽ còn nở rộ trong thời gian sắp tới.

Ngoài số báo nói trên, Intel còn có cả một thư viện Intel Software Dispatch Visual Computing Library với rất nhiều bài viết về:

Larrabee (“Larrabee: A Many-Core x86 Architecture for Visual Computing”)

Lập trình đa luồng (gồm 4 bài “A Library Based Approach to Threading for Performance”, “Real-Time Deep Ocean Simulation on Multi-Threaded Architectures”, “Threading the OGRE3D Render System”, và “White paper – Best Practices for Developing and Optimizing Threaded Applications”).

Tuy nhiên các bài này đòi hỏi người đọc phải có kiến thức đồ họa và/hoặc lập trình song song nhất định.

3. Các bài viết về lập trình song song dễ hiểu

Các bài trong mục “High Performance Computing” của tạp chí Dr.Dobbs, bắt đầu từ số tháng Chín năm 2000, đáng kể nhất là loạt bài của H. Sutter (nên đọc theo thứ tự) về tính đồng hành:

“The Free Lunch is Over – A Fundamental Turn Toward Concurrency in Software” (Dr.Dobbs, số tháng Ba 2005)

“Software and the Concurrency Revolution” (ACM Queue, số tháng Chín 2005)

“The Pillars of Concurrency” (Dr.Dobbs, số tháng Tám 2007)

Rất nhiều bài về lập trình song song trên website embedded.com được tập trung lại ở đây:

http://www.embedded.com/products/integratedcircuits/173400008?_requestid=227376

Các bài cần đọc trước tiên bao gồm

“Common multicore parallel programming problems and their solutions”

“Making the transition from sequential to implicit parallel programming”

“Threading and parallel constructs used in multicore systems”

“The Landscape of Parallel Computing Research: A View From Berkeley”

4. Các bài giới thiệu về lập trình CUDA

Trên tạp chí Dr.Dobbs có loạt bài “CUDA, Supercomputing for the Masses” rất thích hợp cho những ai mới bắt đầu lập trình CUDA.

Trang web của NVIDIA về CUDA có hẳn một mục liệt kê các giáo trình và trường đại học đang giảng dạy CUDA, với bài giảng, tài liệu hỗ trợ, v.v…

5. Trang web riêng của Intel về Thread Building Blocks, công cụ hỗ trợ lập trình song song trên CPU, có rất nhiều tài liệu bổ ích, và từ đó có thể download TBB miễn phí về dùng trên máy của mình. Từ trang này còn có đường link đến nhiều trang khác liên quan đến lập trình song song của Intel (xem cột phía dưới bên phải trang web). Ngoài ra các bài viết khác đáng đọc về TBB bao gồm:

“Intel Upgrades Threaded Building Blocks” (Dr.Dobbs, số tháng Bảy 2008)

“Intel Opts for Open Source with Threading Building Blocks” (Dr.Dobbs, số tháng Bảy 2007)

Bước tiến kế tiếp của Intel về lập trình song song là ở đây, trang web về Intel Parallel Studio.

6. IBM cũng có hẳn một trang web về lập trình song song trên bộ xử lý Cell B./E., trái tim của PlayStation 3. Tại đây trong mục “IBM Microelectronics Cell B./E. technical library” ở cột bên phải trang, có rất nhiều bài viết về lập trình trên Cell. Cho dù bạn không phải là tín đồ Cell giáo, có rất nhiều thứ về kiến trúc máy tính, bộ xử lý đa lõi mà chúng ta có thể tìm hiểu.

Hy vọng giờ đây các bạn đã có thể tự tạo cho mình một thư viện bỏ túi về lập trình song song.

3 responses

  1. Pingback: Tính toán song song dựa trên dữ liệu « Xử lý song song (CPU + GPU)

  2. Pingback: Tính toán song song dựa trên dữ liệu - Giới thiệu chung « Xử lý song song (CPU + GPU)

  3. Pingback: Tính toán song song dựa trên dữ liệu – Giới thiệu chung « Blog Xử Lý Song Song

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: