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

* Cập nhật

Trên tạp chí Dr.Dobbs, Rob Farber đã viết tiếp Phần 9 cho loạt bài về CUDA đang rất được quan tâm “CUDA, Supercomputing for the Masses”. Trong phần 9, Rob đề cập đến việc sử dụng CUDA cùng với các ngôn ngữ cấp cao khác, như Python chẳng hạn. Chuyện tác giả chọn ngôn ngữ lập trình này để trao đổi cũng dễ hiểu, vì với cú pháp trong sáng định hướng đối tượng, những năm gần đây Python được dân lập trình hiệu năng cao sử dụng rất triệt để. Các tài liệu nói về vấn đề này có thể tìm thấy khá nhiều trên Net, tôi ghi lại đây một số chính mà tôi đã có dịp đọc qua để tiện tham khảo khi cần thiết.

  1. Bài viết trên tạp chí “Computing in Science & Engineering”, tập 9, số 6 năm 2007, trang 82-89 (Bản online truy cập free ở đây).
  2. Một ứng dụng thành công của Python trong tính toán song song là Star-P, phần mềm giúp chúng ta viết chương trình MATLAB chạy song song trên server của SGI. Trên trang này, phần sử dụng Python được đề cập đến trong bài viết “
    Research Report: Use of Python in Technical Computing”.
  3. Trang web liên quan đến việc sử dụng Python trong tính toán song song và đa xử lý.
  4. Trang web liên quan đến việc sử dụng Python trong tính toán khoa học.
  5. PyCUDA, phần mềm cho phép gọi CUDA từ Python, sản phẩm nghiên cứu của
    Andreas Klöckner, sinh viên khoa Toán Ứng Dụng tại đại học tổng hợp Brown, Hoa kỳ.

Cũng qua bài viết của Rob, tôi biết được thêm một cách để liên kết các mã nguồn C/C++ với nhiều ngôn ngữ lập trình cấp cao khác, gọi là SWIG. Rất thú vị và đáng để “ngâm cứu” một ngày không xa.

* Tài liệu mới

Cũng trên tạp chí Dr.Dobbs, Herb Sutter đã có một bài viết mới rất hay bàn về cách làm thế nào để đánh giá mức độ hiệu quả của các mã nguồn song song do chúng ta viết ra. Bài này có tựa đề là “Understanding Parallel Performance”.

Trên tạp chí HPC Wire, Michael Wolfe, một chuyên gia viết trình biên dịch nổi tiếng của nhóm The Portland Group, Inc. đã bắt đầu loạt bài phân tích về sự hỗ trợ của các trình biên dịch hiện tại cho việc lập trình trên GPU, với 2 bài sau đây:

  1. “Compilers and More: GPU Architecture and Applications”, số ra ngày 10 tháng 9 năm 2008.
  2. “Compilers and More: Optimizing GPU Kernels”, số ra ngày 30 tháng 10 năm 2008. Bài thứ hai này thú vị hơn bài thứ nhất, vì trình bày rất chi tiết hiệu năng đạt được khá ấn tượng trong lập trình với CUDA và CPU, thông qua sự thay đổi các tùy chọn (option) khi biên dịch chương trình. Tác giả cũng cung cấp cả mã nguồn để mọi người kiểm tra kết quả.