Dưới đây là Kế hoạch học tập 15 tuần môn "Lập trình Song song và Hiệu năng cao" theo mẫu chuẩn bạn yêu cầu:
Môn "Lập trình Song song và Hiệu năng cao" cung cấp kiến thức và kỹ năng để phát triển các ứng dụng tính toán hiệu suất cao (High Performance Computing - HPC) thông qua việc khai thác sức mạnh của kiến trúc phần cứng hiện đại như đa lõi, GPU và các hệ thống phân tán. Sinh viên sẽ được tiếp cận với các mô hình lập trình song song như OpenMP, MPI, CUDA và thực hành tối ưu hóa mã nguồn để đạt hiệu suất cao nhất.
Môn học đặc biệt quan trọng đối với những lĩnh vực có khối lượng tính toán lớn như mô phỏng khoa học, xử lý dữ liệu lớn, trí tuệ nhân tạo, tài chính định lượng…
Chú thích: Môn học giúp sinh viên hiểu rõ cơ chế tính toán song song và phát triển ứng dụng tối ưu về thời gian và tài nguyên.
Hiểu kiến trúc phần cứng đa lõi, đa xử lý, GPU và cụm máy.
Lập trình song song hiệu quả với các công cụ như OpenMP, MPI, CUDA.
Phân tích hiệu năng và tối ưu hóa chương trình.
Giải quyết các bài toán thực tế đòi hỏi tính toán song song.
Làm việc nhóm và phát triển phần mềm hiệu suất cao trên hệ thống thực.
Kỹ năng lập trình C/C++ tốt, hiểu rõ cấu trúc bộ nhớ và con trỏ.
Kiến thức cơ bản về kiến trúc máy tính.
Kỹ thuật thuật toán và phân tích độ phức tạp.
Chú thích: Sinh viên cần nền tảng lập trình vững để dễ dàng thích nghi với các mô hình và công cụ song song phức tạp.
| Tuần | Nội dung học tập | Mục tiêu cụ thể / Ghi chú |
|---|---|---|
| Tuần 1 | Giới thiệu tổng quan về tính toán hiệu năng cao (HPC) và lập trình song song | Phân biệt tính toán tuần tự – song song – phân tán, ứng dụng thực tiễn. |
| Tuần 2 | Kiến trúc phần cứng hỗ trợ song song: CPU đa lõi, GPU, bộ nhớ | Hiểu cách phần cứng ảnh hưởng đến lập trình và hiệu năng. |
| Tuần 3 | Các mô hình lập trình song song (Shared memory vs Distributed memory) | Giới thiệu OpenMP, MPI, CUDA. |
| Tuần 4 | Lập trình song song với OpenMP | Thực hành tạo luồng, phân chia công việc trên hệ thống chia sẻ bộ nhớ. |
| Tuần 5 | Lập trình song song với MPI – Phần 1 | Truyền thông điệp giữa tiến trình, gửi – nhận cơ bản. |
| Tuần 6 | Lập trình song song với MPI – Phần 2 | Đồng bộ, Broadcast, Scatter/Gather, tổng hợp dữ liệu. |
| Tuần 7 | Quản lý dữ liệu và bộ nhớ hiệu quả trong môi trường song song | Tối ưu cache, memory layout, tránh race condition và deadlock. |
| Tuần 8 | Lập trình song song với CUDA – Phần 1 | Cấu trúc chương trình CUDA, các khái niệm thread, block, grid. |
| Tuần 9 | Lập trình song song với CUDA – Phần 2 | Quản lý bộ nhớ GPU, tối ưu truy cập và hiệu suất. |
| Tuần 10 | Phân tích hiệu năng và đo lường tốc độ (Profiling) | Dùng công cụ đo hiệu năng: speedup, efficiency, scalability, bottleneck. |
| Tuần 11 | Chiến lược tối ưu hóa chương trình song song | Giảm overhead, phân vùng hợp lý, tối ưu truyền dữ liệu. |
| Tuần 12 | Dự án nhỏ: Giải bài toán thực tế bằng OpenMP hoặc MPI hoặc CUDA | Thực hành xây dựng ứng dụng song song thực tế. |
| Tuần 13 | Tiếp tục hoàn thiện và kiểm thử dự án | Tinh chỉnh hiệu năng, kiểm thử kết quả, chuẩn bị trình bày. |
| Tuần 14 | Thuyết trình và đánh giá dự án | Trình bày và nhận xét, phản biện từ nhóm khác, cải tiến sản phẩm. |
| Tuần 15 | Kiểm tra cuối kỳ (lý thuyết + lập trình thực hành) | Đánh giá tổng thể về kiến thức, kỹ năng lập trình và tối ưu chương trình song song. |
Tài liệu tham khảo gợi ý:
Using OpenMP: Portable Shared Memory Parallel Programming – Chapman, Jost, van der Pas
Parallel Programming in C with MPI and OpenMP – Michael Quinn
CUDA by Example – Jason Sanders, Edward Kandrot
High Performance Python – Micha Gorelick, Ian Ozsvald
Nếu bạn muốn kế hoạch cho các môn tiếp theo, hãy cho biết nhé!