Bài giảng Lập trình đồng thời và phân tán: Tổng quan môn học - Lê Nguyễn Tuấn Thành
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình đồng thời và phân tán: Tổng quan môn học - Lê Nguyễn Tuấn Thành LẬPTRÌNHĐỒNG TỔNG QUAN MÔN HỌC THỜI &PHÂN TÁN Giảng viên: Lê Nguyễn Tuấn Thành Email: thanhlnt@tlu.edu.vnGiới thiệu chung▪Tên môn học: Lập trình Đồng thời và Phân tán▪Tên tiếng Anh: Concurrent and Distributed Programming▪Mã môn học: CSE423▪Số tín chỉ: 3 (LT: 2, TH/BT/TL: 1)▪Số tiết: 30 - Lý thuyết và 15 - Thực hành 2Mục tiêu môn học▪Cung cấp các kiến thức, bài toán và kỹ năng cho lập trình đồng thời, lập trình song song và lập trình phân tán▪Cung cấp kiến thức nền tảng để phát triển ứng dụng đồng thời và phân tán 3Terminology▪ Concurrency, Parallelism, Distribution▪ Concurrent programming ▪ Thread, Process, Locks, Safety, Liveness, ▪ Deadlock, Livelock, Resource starvation, ▪ Critical section, ▪ Atomic operations/statements and variables ▪ Synchronization ▪ Semaphore, Monitor▪ Distributed programming ▪ Clock synchronization ▪ Happened-before ▪ Client-Server, RMI, RPC ▪ Graph theory 4 Quotes▪ Junior programmers think concurrency is hard !▪ Experienced programmers think concurrency is easy !▪ Senior programmers think concurrency is hard ! ▪ Bài 1: Những khái niệm cơ sở ▪ Bài 2: Bài toán loại trừ lẫn nhau ▪ Bài 3: Những cơ sở đồng bộ hóa ▪ Bài 4: Lập trình phân tánNội dung ▪ Bài 5: Mô hình và cơ chếmôn học đồng hồ ▪ Bài 6: Bài toán phân phối tài nguyên ▪ Bài 7: Kiểu thứ tự thông điệp ▪ Bài 8: Bài toán lựa chọn người lãnh đạo 6Yêu cầu với sinh viên▪ Tham dự lớp và nghe giảng đầy đủ▪ Thảo luận, làm bài tập trên lớp và Piazza (cộng điểm) ▪ Website môn học: https://sites.google.com/site/cse423fall2018/ ▪ Lớp học ảo https://piazza.com/tlu.edu.vn/summer2019/cse423summer2018/home▪ Cách đánh giá: ▪ Điểm quá trình (chuyên cần + thực hành + điểm cộng): 50% ▪ Điểm thi hết môn (trắc nghiệm): 50% 7Điểm quá trình▪ Bài tập sau giờ lý thuyết (HW): 35%▪ Bài tập trong và sau giờ thực hành (LAB): 35%▪ Nghiên cứu chủ đề: 30% ▪ Làm theo nhóm (1->3 người) ▪ Chọn 1 chủ đề/nền tảng/công cụ liên quan hoặc 1 chương trong một quyển sách đề xuất ▪ Tìm hiểu, dịch, viết tiểu luận (~ 10 trang) ▪ Làm slide, trình bày kết quả nghiên cứu trước lớp 8 ▪ Parallel programming: parallel architectures & patterns ▪ Java 7 & 8 have introduced new frameworks for parallelism (ForkJoin, Stream) that have significantly changed the paradigms for parallel programming since the early days of Java. ▪ Ada and C++ language for concurrent programming ▪ PROMELA (PROcess MEta LAnguage)Chủ đề ▪ a modeling language to describe concurrent (distributed) systems, such as:nghiên ▪ network protocols, telephone systems ▪ multi-threaded (-process) programs thatcứu (1) communicate via shared variables or synchronous/asynchronous message-passing ▪ Spin (Simple Promela INterpreter) ▪ a tool for analyzing Promela programs leading to detection of errors in the design of systems, e.g, deadlocks, race conditions, assertion violations, safety properties (system is never in a “bad” state), liveness properties (system eventually arrives in a “good” state) ▪ Verifying multi-threaded software 9 ▪ Apache Hadoop: một framework mã nguồn mở cho phép xử lý phân tán (distributed processing) các tập dữ liệu lớn trên các cụm máy tính (clusters of computers) ▪ Hive, HBase, Pig ▪ HDFS (Hadoop Distributed File System)Chủ đề ▪ MapReduce framework/paradigm ▪ Apache Sparknghiên ▪ Apache Flink ▪ Apache Helix: A framework for Distributedcứu (2) System Development ▪ MPI (Message Passing Interface): a de facto standard for modeling a parallel program on a distributed memory system. ▪ OpenMPI, MPICH2 ▪ OpenMP, RPC, RMI, Socket ▪ … 10Tài liệu tham khảo▪ Concurrent and Distributed Computing in Java, Vijay K. Garg, University of Texas, John Wiley & Sons, 2005▪ Tham khảo: ▪ Principles of Concurrent and Distributed Programming, M. Ben-Ari, Second edition, 2006 ▪ Foundations ...
Tìm kiếm theo từ khóa liên quan:
Lập trình đồng thời Lập trình phân tán Kỹ thuật lập trình Distributed programming Tổng quan môn học Đề cương môn học Giới thiệu môn họcGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần: Tâm lý học nông dân (Farmer Psychology)
7 trang 349 0 0 -
Đề cương chi tiết học phần: Khoa học gỗ
9 trang 315 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 266 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 208 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 195 0 0 -
Đề cương môn học: Cơ sở dữ liệu phân tán
8 trang 193 0 0 -
Tìm hiểu chương trình đào tạo ngành Điện tử - Viễn thông hệ đại học: Phần 2
174 trang 169 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 168 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 153 0 0 -
Đề cương chi tiết học phần Logic học đại cương
13 trang 144 1 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 118 0 0 -
Đề cương học tập môn Tin học văn phòng (Khối ngành Kinh tế - Luật – Quản trị kinh doanh)
17 trang 118 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 114 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 109 0 0 -
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 trang 106 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 2
184 trang 93 0 0 -
Giáo trình toán rời rạc - Phụ lục 2
15 trang 85 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 1
246 trang 85 0 0 -
Đề cương môn học Động lực học và điều khiển (Dynamic Systems and Control)
8 trang 84 0 0 -
Nghiên cứu triển khai nội địa hóa máy tính thương hiệu Việt Nam
585 trang 83 0 0