Đề tài Lập trình song song
Bạn đang xem 20 trang mẫu của tài liệu "Đề tài Lập trình song song", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- de_tai_lap_trinh_song_song.pdf
Nội dung text: Đề tài Lập trình song song
- Add your company slogan Trường Đại học Cửu Long Khoa Công Nghệ Thông Tin Đề tài LOGO
- Add your company slogan LOGO Slide 2
- Add your company slogan LOGO Slide 3
- Add your company slogan “Số lượng transistor trên mỗi đơn vị inch vuông sẽ tăng lên gấp đôi sau mỗi năm.” Gordon Moore (1929) Nguồn: Internet LOGO Slide 4
- Add your company slogan Nguồn: www.developers.net LOGO Slide 5
- Add your company slogan Đa nhiệm trong hệ thống đơn lõi LOGO Slide 6
- Add your company slogan Đa luồng trong hệ thống đa lõi LOGO Slide 7
- Add your company slogan (Parallel Computing) Là chia công việc ra thành các phần nhỏ và thực hiện đồng thời bởi một hệ thống gồm nhiều máy tính kết nối với nhau (Multi-Computer)hoặc nhiều bộ vi xử lý (Multi-Processor) hay bộ vi xử lý đa nhân (Multi-Core). Parallel Programing Là việc lập trình để tách ra các công việc nhỏ và sắp xếp để xử lý song song. LOGO Slide 8
- Add your company slogan p: số lượng CPU. T1: thời gian thực thi thuật toán tuần tự. Tp: thời gian thực thi thuật toán song song. Sp: Tốc độ xử lý. Ep: hiệu quả thực hiện phép toán song song so với tuần tự. LOGO Slide 9
- Add your company slogan Sự ra đời và phát triển mạnh mẽ của các dòng chip đa lõi (Multi-Core) tạo cơ hội cho sự ra đời của tính toán và lập trình song song. LOGO Slide 10
- Add your company slogan LOGO Slide 11
- Add your company slogan Tiến trình là một chương trình đang chạy: - Bộ nhớ được cấp phát bởi hệ điều hành. - Thường không có sự chia sẻ bộ nhớ giữa các tiến trình với nhau. Ví dụ: LOGO Slide 12
- Add your company slogan Tiểu trình là một dòng điều khiển tuần tự: - Chạy trong không gian bộ nhớ của tiến trình. - Nó có bộ đếm chương trình (program counter) và ngăn xếp(stack frame) riêng. Ví dụ: Trong chương trình WINWORD.exe có các luồng: luồng ghi nhận nhập kí tự, luồng kiểm tra chính tả, luồng hiển thị lên màn hình, luồng quản lý giao diện LOGO Slide 13
- Add your company slogan LOGO Slide 14
- Add your company slogan Born - Mới được tạo ra. Ready (Runnable) - Sẵn sàng thực thi. Running - Đang thực thi. Dead - Bị hệ thống đánh dấu loại bỏ. Blocked - Không cho phép xử lý. Sleeping - Khi phương thức Sleep được gọi. Waiting - Trạng thái ngừng để chờ. LOGO Slide 15
- Add your company slogan LOGO Slide 16
- Add your company slogan Multi-Computer: nhiều máy tính được kết nối với nhau để cùng xử lý một chương trình. Mô hình Multi-Computer. LOGO Slide 17
- Add your company slogan Multi-Processor/Multi-Core: Nhiều bộ vi xử lý trong cùng một máy tính hoặc một bộ vi xử lý gồm nhiều CPU. Mô hình Multi-Processor. Mô hình Multi-Core. LOGO Slide 18
- Add your company slogan Hệ thống lai: Kết hợp giữa hai hệ thống trên. Dùng để tạo nên một hệ thống tính toán khổng lồ và phức tạp. Mô hình hệ thống lai. LOGO Slide 19
- Add your company slogan Lập trình song song trên Java. Lập trình song song trên C#.NET. Một số ngôn ngữ có thư viện hàm hỗ trợ song song như C/C++, FORTRAN, Python, Ada cần cài đặt trình biên dịch song song: OpenMP, MPI, MPICH, PyMPI LOGO Slide 20
- Add your company slogan (Message Passing Interface) là một mô hình lập trình song song sử dụng cơ chế truyền thông điệp. MPI 1.0 phát hành năm 1994. MPI 2.0 phát hành năm 1997. Thư viện hỗ trợ: Fortran, C, C++ LOGO Slide 21
- Add your company slogan LOGO Slide 22
- Add your company slogan Gồm ba giai đoạn chính: Phân chia chương trình thành các công việc con (Sub-task Decomposition). Phân tích sự phụ thuộc (Dependence Analysic). Định thời các công việc (Task Scheduling). LOGO Slide 23
- Add your company slogan Các thread chạy bên trong máy ảo JVM (Java) hoặc trình biên dịch song song (Ngôn ngữ khác). Mỗi thread có biến dữ liệu và ngăn xếp riêng được cấp phát bởi JVM. JVM chịu sự quản lý của Hệ điều hành. LOGO Slide 24
- Add your company slogan Hệ điều hành cấp phát bộ nhớ cho từng ứng dụng riêng biệt. Vì vậy các biến và vùng dữ liệu của các chương trình (tiến trình) khác nhau là khác nhau. LOGO Slide 25
- Add your company slogan + Giao tiếp và chuyển - Cơ chế giao tiếp, đổi nhanh. chuyển đổi phức tạp. + Tách công việc để xử - Mất thời gian cho việc lý song song, tiết kiệm quản lý đồng bộ dữ liệu. thời gian. - Khó lập trình, kiểm + Tận dụng tối đa sức tra lỗi. mạnh đa lõi. - Hình thành hệ thống + Khả năng mở rộng và phức tạp đòi hỏi trình độ tăng tốc độ tính toán. cao để có thể quản lý. LOGO Slide 26
- Add your company slogan Mỗi thread có một độ ưu tiên khác nhau và có mối quan hệ với nhau. Thread có quyền ưu tiên cao có thể chuyển sang hoặc gọi một thread khác gọi là Context Switching. Một thread có thể tự động sinh ra thread khác. Thread có độ ưu tiên cao hơn có thể giành quyền sử dụng CPU từ thread ưu tiên thấp hơn. Nếu quyền ưu tiên ngang nhau thì xử lý theo cơ chế của hệ điều hành. LOGO Slide 27
- Add your company slogan Đồng bộ hóa (Synchronization): Hai hay nhiều thread có thể cùng truy cập vào tài nguyên tại một thời điểm. Các thread được đồng bộ hoá trong Java sử dụng thông qua một Monitor (Semaphore - “Cột tín hiệu”). Chỉ có một thread được sử dụng một monitor vào bất kỳ một khoảng thời gian nào. LOGO Slide 28
- Add your company slogan Có hai cách để đồng bộ hoá các thread: Sử dụng method được đồng bộ hóa. Trong Java, mỗi thread có một monitor cho đến khi từ khóa Synchronized được gọi. Sử dụng phát biểu (Statement) được đồng bộ hóa. Phát biểu đồng bộ hóa chứa block được đồng bộ hóa, bên trong đặt những đối tượng và những method được đồng bộ hóa. LOGO Slide 29
- Add your company slogan Một thread đôi khi cần giao tiếp với những thread khác trong suốt quá trình xử lý. Các lập trình viên gọi đó là Inter-Process Communication (Giao tiếp trong tiến trình). LOGO Slide 30
- Add your company slogan LOGO Slide 31
- Add your company slogan Khởi dựng thread bằng Runnable Interface và extends lớp Thread. Dùng nhiều thread trong một chương trình. Cài đặt quyền ưu tiên cho thread. Thực thi đồng bộ hóa các thread. Đồng bộ dùng method. Đồng bộ dùng phát biểu đồng bộ hóa. Giao tiếp giữa các thread. Sử dụng thread trong Swing. LOGO Slide 32
- Add your company slogan class MyThread implements Runnable { Thread t; MyThread() { t = new Thread(this, “My thread”); t.start(); } public void run() { System.out.println("Child thread started"); System.out.println("Child thread terminated"); } } class Demo { public static void main(String args[]) { new MyThread(); System.out.println("Main thread started"); System.out.println("Main thread terminated"); } } LOGO Slide 33
- Add your company slogan Một số ví dụ: . Google.com dùng phương thức tìm kiếm song song; khi ta ghõ một từ khóa thì máy chủ tại VN tìm kiếm từ khóa cho ra kết quả ở VN; đồng thời cũng cho ra kết quả các tiếng khác (tiếng Anh, ) vì thế Google là một trong những trang web dùng lập trình song song mà ta dễ thấy nhất. LOGO 34
- Add your company slogan [1] Jim Keogh (2004), Java Dymistyfied, Chapter 12 Multithreading. [2] www.developers.net [3] www.google.com.vn [4] Bách Khoa Toàn Thư Mở [5] Nguyễn Tuấn Anh (2006), Parallel Computing. LOGO Slide 35
- Add your company slogan LOGO Slide 36