平行程式優化與生物資訊演算法應用實務
Parallel program optimization with practical applications in Bioinformatics
| 節 | 週三 |
|---|---|
3 10:10–11:00 | 平行程式優化與生物資訊演算法應用實務 ED102(光復) 2 節連堂 |
4 11:10–12:00 |
* 根據陽明交大上課時間表所列
本課程將介紹各種重要的平行運算與硬體加速技術,從中了解如何讓軟體充分利用到現代的硬體架構來達到更高的效能表現。本課程會利用需要大量運算資源的生物資訊演算法為例來解說,並配合Modern C++的技術來實作。 課堂中會介紹許多跨領域的應用,幫助學生觸類旁通理解所學理論與技術,提昇將來投入領域的廣度。 In this class, we will learn an array of parallelization techniques, ranged from SIMD, multithreading, distributed/cloud computing to CUDA that can utilizing fulling all the computing resource available. We will use Bioinformatics algorithms as examples and implement them by modern C++ (i.e. C++17).
C++ programming language, Data structures, Algorithms , Operating systems, Computer architecture and organization.
無備註
助教一名,線上參考資料: Parallel computing: https://computing.llnl.gov/tutorials/parallel_comp/ C++: http://en.cppreference.com , SIMD: https://www.kernel.org/pub/linux/kernel/people/geoff/cell/ps3-linux-docs/CellProgrammingTutorial/ CUDA: http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#axzz4UHwzrl7r
課堂表現 (20%), 作業 (40%), 期末專題 (40%) Involvement (20%), homework (40%), final project (40%)
Modern C++ feature review
New language features in C++11, C++14 and C++17
- 講授:
- 3 hrs
Basics of parallel computing and terminology
Amdahl's law, Flynn's taxonomy, Classes of parallel computers, and history
- 講授:
- 3 hrs
Multithreading
Review of OS and computer architecture, C++ multithreading
- 講授:
- 9 hrs
- 示範:
- 2 hrs
Massage-passing system
Distributed system, OpenMPI, and boost::MPI, MapReduce
- 講授:
- 6 hrs
- 示範:
- 2 hrs
Cloud computing
Virtualization, Linux container, Docker
- 講授:
- 3 hrs
- 示範:
- 2 hrs
Hardware-assisted acceleration
SIMD and GPU computing
- 講授:
- 9 hrs
- 示範:
- 3 hrs
Algorithms in Bioinformatics
Use as examples in corresponding topics (BLAST, SW, and BWT algorithms)
- 講授:
- 3 hrs
- 示範:
- 3 hrs
| 週次 | 主題 |
|---|---|
| 第 1 週 | Introduction:
 1. The description and objectives of this course
 2. Briefing what and how you will learn from this course
 3. My teaching methods and principles
 4. Instructional materials of the course
 5. Performance evaluation: how will you be rated& #63 
 6. Knowing each other and your background
 7. Scheduling meeting 2025-02-19(三) |
| 第 2 週 | New language features in C++11, C++14 and C++17
 1. lambda function
 2. decltype and auto
 3. rvalue reference
 4. etc. 2025-02-26(三) |
| 第 3 週 | Basics of parallel computing
 1. Amdahl's law
 2. Flynn's taxonomy
 3. Classes of parallel computing
 4. SIMD/MIMD/GPU computing/FPGA
 5. History 2025-03-05(三) |
| 第 4 週 | The basic of parallel computing
 1. Parallel computing hardware architecture
 2. OS: process
 3. OS: thread
 4. OS: Mutex, lock and semaphore 2025-03-12(三) |
| 第 5 週 | Multithread programming in C++ (I)
 1. std::thread
 2. std::mutex
 3. std::lock
 4. std::unique_lock and shared_lock
 2025-03-19(三) |
| 第 6 週 | Multithread programming in C++ (II)
 1. std::promise
 2. std::packaged_task
 3. std::future
 4. std::async 2025-03-26(三) |
| 第 7 週 | Demonstration with related algorithms (BLAST) 2025-04-02(三) |
| 第 8 週 | Project Proposal 2025-04-09(三) |
| 第 9 週 | Introduction to massage-passing system
 1. MPI and PVM
 2. OpenMPI
 3. MapReduce 2025-04-16(三) |
| 第 10 週 | OpenMPI and Boost::MPI 2025-04-23(三) |
| 第 11 週 | Demonstration with related algorithms (Crossbow) 2025-04-30(三) |
| 第 12 週 | Introduction to Cloud computing
 1. Virtualization
 2. AWS and Eucalyptus
 3. Linux container
 4. Docker 2025-05-07(三) |
| 第 13 週 | Introduction to hardware-assisted acceleration
 1. SIMD
 2. GPU computing
 3. FPGA
 4. ASIC 2025-05-14(三) |
| 第 14 週 | Introduction to SIMD
 1. SIMD Operation
 2. SIMD-Ready Vectors
 3. Elimination of Conditional Branches
 4. Intel SSE
 2025-05-21(三) |
| 第 15 週 | Demonstration with related algorithms (SW algorithm) 2025-05-28(三) |
| 第 16 週 | Introduction to GPU computing
 1. CUDA
 2. Host and device
 3. Thread and Memory management 
 4. GPU Cluster 2025-06-04(三) |
| 第 17 週 | Demonstration with related algorithms (BWT algorithm) 2025-06-11(三) |
| 第 18 週 | Final project demonstration 2025-06-18(三) |
Introduction to Parallel Computing by Blaise Barney C++ Concurrency in Action: Practical Multithreading 1st Edition by Anthony Williams
- 地點
- Office
- 時間
- TBA
- 聯絡方式
