หลักสูตร
ชุดวิชาวิศวกรประมวลผลสมรรถนะสูง (High-performance Computing Engineer Module)
240-352 ชุดวิชาวิศวกรประมวลผลสมรรถนะสูง 9((6)-6-15) หน่วยกิต
(High-performance Computing Engineer Module)
คำอธิบายรายวิชา
การเขียนโปรแกรมที่ขับเคลื่อนด้วยเหตุการณ์และเกิดขึ้นพร้อมกัน อัลกอริธึมแบบกระจาย แบบจำลองระบบกระจาย ความซับซ้อนของอัลกอริทึม ภาวะพร้อมกัน การจัดกำหนดการและการส่งการประเมิน ประสิทธิภาพของระบบ ระบบไฟล์ เครื่องมือวัดประสิทธิภาพ โครงสร้างพื้นฐานแบบกระจาย การวิเคราะห์ออกแบบทดสอบและประเมินผลระบบคอมพิวเตอร์ โมเดลการเขียนโปรแกรมแบบขนาน สถาปัตยกรรมและการเขียนโปรแกรมแบบขนานและแบบกระจาย การโปรแกรมเธรด เธรดโพสิกซ์และโอเพนเอ็มพี อาร์พีซี อาร์เอ็มไอ และเอ็มพีไอ โมเดลการเขียนโปรแกรมแม็บรีดิวซ์และระบบไฟล์แบบกระจาย การจัดการคิวข้อความและภาวะติดตาย การจัดกำหนดการและการทำโหลดบาลานซ์ อัลกอริธึมการกระจายขั้นสูง การคำนวณอเนกประสงค์ในหน่วยประมวลผลกราฟิก จีพีจีพียู การประมวลผลเวกเตอร์และ การโปรแกรมเอสไอเอ็มดี การออกแบบสถาปัตยกรรมที่ปรับขยายได้ขนาดใหญ่ ไมโครเซอร์วิส การคำนวณ คลัสเตอร์ ระบบคอมพิวเตอร์ที่รองรับความผิดปกติ กรณีศึกษาจริงจากภาคธุรกิจทางการแพทย์หรืออุตสาหกรรม
ผลลัพธ์การเรียนรู้:
ผู้เรียนสามารถ
1. เข้าใจสถาปัตยกรรมคอมพิวเตอร์ ระบบปฏิบัติการและอธิบายความสัมพันธ์ขององค์ประกอบต่าง ๆ ภายในระบบคอมพิวเตอร์ได้อย่างมีเหตุผล
2. เขียนโปรแกรมแบบขนานและกระจายที่มีประสิทธิภาพ และประเมินค่าสมรรถนะ (speed up and efficiency) ของโปรแกรมได้
3. เข้าใจและวิเคราะห์พร้อมทั้งเขียนโปรแกรมสำหรับภาระงานแบบทับซ้อน (concurrency) และทำการแบ่งภาระงานในการประมวลผลได้อย่างเหมาะสม
4. วิเคราะห์ความต้องการของระบบและออกแบบระบบคอมพิวเตอร์สมรรถนะสูง
Course Description
Event-driven and concurrent programming; distributed algorithms; distributed system models; algorithmic complexity; concurrency; scheduling and dispatch; system performance evaluation; file systems; performance measurement tools; distributed infrastructure: analyze, design, test, and evaluate computer-based system; parallel programming models; parallel and distributed architecture and programming; threads programming : POSIX thread and OpenMP; RPC/RMI and MPI; map-reduce programming model and distributed file system; message queue and deadlock management; scheduling and load balancing; advanced distributed algorithms; general-purpose computing on graphics processing units : GPGPU; vector processing and SIMD programming; large scalable architecture design; micro-service; cluster computing; fault tolerance computer system; real case studies from medical or industrial business sectors;
Learning outcomes:
Students are able to
1. understand computer architectures, operating systems and reasonably explain the relationships among components inside the computer systems
2. write efficient parallel and distributed programs and evaluate their speedup and efficiency
3. understand, analyze and write concurrent programs, as well as suitably balance processing loads
4. analyze system requirements and design high-performance computing systems