6. Ý nghĩa khoa học và thực ti ễn ca đề tài
3.3.1. Đăng nhập hệ thống
Ta dùng phần WinSCP để kết nối đến cụm máy tính song song c a ccs1.hune.edu.vn với tài khoản có sẵn.
Sau khi login vào hệ thống ccs1 ta được như hình
Hình 3.10. Giao diện khi đã kết nối 3.3.2.Cách chạy chương trình trên hệ thống ccs1
Dịch chương trình Dijstra và Prim bằng lệnh mpic++dijkstra.cpp-o dijkstra Khi này chương trình thực hiện có tên dijkstra (không có phần đuôi) được tạo ra.
Tạo file dijkstra.script có nội dung #!/bin/sh
/usr/local/bin/mpiexec /home/son/laund1/dijkstra Thực hiện chạy song song
Submit file PBS script thông qua lệnh qsub như sau: qsub –q 11 -1 nodes= 2:ppn= 4 dijkstra.script Di50.txt
Hệ thống sẽ tạo ra kết quảđầu ra trong file dijkstra.script.o16619 Tất cả các lệnh được thực hiện thông qua phần mềm PuTTY
Hình 3.11. Giao diện phần mềm PuTTY
Sau khi login ta được giao diện như sau
Hình 3.12. Giao diện để gõ lệnh của hệ thống
Có 2 cách thực hiện chương trình: chạy tương tác trên nền hệ điều hành (ví dụ
./hello) hoặc thông qua Bộ quản lý chương trình PBS Torque (qsub mpi_hello.script).
Nếu chương trình c a bạn nhỏ (yêu cầu 1 bộ xử lý, chạy trong th i gian ngắn, và yêu cầu ít bộ nhớ) thì có thể chạy trực tiếp trên hệ điểu hành như ví dụ hello trên. Nếu chương trình lớn, đòi hỏi nhiều bộ xử lý, th i gian thực hiện lâu thì phải thực hiện
thông quả Bộ quản lý chương trình PBS Torque
Tất cả các chương trình chạy trên Trung tâm Khoa học tính toán đều nên chạy thông qua PBS Torque (chú ý rằng tất cả chương trình, kể cả chương trình chạy trên 01 bộ xử lý đều có thể thực hiện thông qua PBS) để các tài nguyên c a Trung tâm được khai thác hiệu quảvà để PBS Torque phục vụ các chương trình c a tất cả ngư i sử dụng một cách tối ưu.
3.3.3.Kết quảthu được
Dưới đây là kết quả bài toán Dijkstra với 02 BXL P0 và P1 với th i gian chạy là 0.002539 sescond Bộ xử lý chính (P0) ghi nhớ các đỉnh đểtìm đư ng đi Bộ xử lý phụ (P1)ghi nhớ các đỉnh đểtìm đư ng đi Bộ xử lý chính (P0) tìm chiều dài từ đỉnh 1 đến các đỉnh 1, 2, 3, 4, 5, 6 Bộ xử lý phụ (P1)tìm chiều dài từđỉnh 1 đến các đỉnh 7, 8, 9, 10, 11, 12
3.3.4.Đánh giá thuật toán
Trong thuật toán song song ngư i ta sử dụng tốc độ (Speedup) để đánh giá th i gian thực hiện c a thuật toán song song so với thuật toán tuần tự.
Dữ liệu đầu vào là đồ thị được tạo ngẫu nhiên có đuôi .txt
Hình 3.14. File đầu vào bài toán Dijkstra với 50 đỉnh
Trong đó Speedup (tốc độ)= Ts/ Tp
Ts: Sequential time (Th i gian chạy tuần tự) Tp: Parallel time (Th i gian chạy song song) Bảng đánh giá trên được biểu diễn bằng đồ thị sau:
Bài toán Dijkstra
Chúng tôi tạo đồ thị gồm 1200 đỉnh và cho thực hiện trên 1 bộ xử lý (tuần tự), 2, 4, 6, 8 bộ xử lý thì kết quảđược cho bảng sau:
Bảng 3.1. Bảng đánh giá thời gian thực hiện thuật toán song song so với thuật toán tuần tựbài toán Dijkstra 1200 đỉnh
S b x lý 2 4 6 8
T căđ
Hình 3.15. Đồ thị biểu diễn sựđánh giá thuật toán song song so với tuần tự bài toán
Dijkstra 1200 đỉnh
Chúng tôi tiếp tục tạo thêm đồ thị gồm 2500 đỉnh và cho thực hiện trên 1 bộ xử lý (tuần tự), 2, 4, 6, 8 bộ xử lý thì kết quảđược cho bảng sau:
Bảng 3.2. Bảng đánh giá thời gian thực hiện thuật toán song song so với thuật toán tuần tựbài toán Dijkstra 2500 đỉnh
S b x lý 2 4 6 8
T căđ (Speedup) 1.5 1.78 1.99 2.09
Hình 3.16. Đồ thị biểu diễn sựđánh giá thuật toán song song so với tuần tự bài toán
Dijkstra 2500 đỉnh 1.42 1.68 1.8 2.01 0 0.5 1 1.5 2 2.5 2 4 6 8 Sp ee du p tố đ ộ Dijkstra
Num er of pro essors số ộ xử lý
Num er of pro essors số ộ xử lý
1.5 1.78 1.99 2.09 0 0.5 1 1.5 2 2.5 2 4 6 8 Sp ee du p tố đ ộ Dijkstra
Num er of pro essors số ộ xử lý
Bài toán Prim
Chúng tôi tiếp tục tạo thêm đồ thị gồm 2100 đỉnh và cho thực hiện trên 1 bộ xử lý (tuần tự), 2, 4, 6, 8 bộ xử lý thì kết quảđược cho bảng sau:
Bảng 3.3. Bảng đánh thời gian thực hiện thuật toán song song so với thuật toán tuần tựbài toán Prim 2100 đỉnh
S b x lý 2 4 6 8
T căđ
(Speedup) 1.45 1.73 1.91 2.05
Hình 3.17. Đồ thị biểu diễn sựđánh giá thuật toán song song so với tuần tự bài toán
Prim 2100 đỉnh
Nh n xét: từ đồ thị và bảng kết quả trên, chúng ta nhận thấy rằng tốc độ xử lý được tăng lên đáng kể khi xử lý trên 2 bộ xử lý thì th i gian giảm hơn 1,6 lần so với xử lý tuần tự. 1.45 1.73 1.91 2.05 0 0.5 1 1.5 2 2.5 2 4 6 8 Sp ee du p tố đ ộ Prim
Num er of pro essors số ộ xử lý
K T LU N VĨăH NG PHÁT TRI N
K T LU N
Luận văn đã nghiên c u tổng quát về thuật toán song song và áp dụng cho một số bài toán về đồ thị. Luận văn cũng đã khái quát các khái niệm về thuật toán song song và các vấn đề liên quan đến thuật toán song song, các mô hình song song, môi trư ng lập trình song song, lý thuyết đồ thị, cách biểu diễn đồ thị trên máy tính, các vấn đề vềđư ng đi, cây bao trùm trên bảng đồ.
Từ các hiểu biết trên luận văn đã nghiên c u để song song hóa các thuật toán tìm đư ng đi ngắn nhất (Dijkstra) và cây khung nhỏ nhất (Prim) từ các thuật toán tuần tự truyền thống.
Ngoài ra do còn thiếu kinh nghiệm trong việc phân tích, thiết kế nên kết quảđạt được còn hạn chế.
Qua nghiên c u đềtài này cũng đã nắm được các kiến th c về xử lý song song, lập trình song song, lý thuyết đồ thị. Tìm hiểu được cách ng dụng thuật toán song song và đã áp dụng vào một số bài toán cụ thể.
H NG PHÁT TRI N
Sau khi hoàn thành đề tài tôi sẽ tiếp tục nghiên c u thêm để phát triển đề tài này, cải tiến thêm các thuật toán và áp dụng vào các lĩnh vực như:
⁻ Áp dụng song song hóa các thuật toán Dijkstra, Prim theo mô hình máy tính phân cụm.
⁻ Nghiên c u mô hình lập trình song song và áp dụng chuyển các thuật toán tuần tự khác vềđồ thị sang thuật toán song song.
DANH M C TÀI LI U THAM KH O
Tài li u Ti ng Vi t
[1] PGS.TS Đoàn Văn Ban, TS. Nguyễn Mậu Hân, Xử lý song song & phân tán, Viện Công nghệ Thông tin, 2006.
[2] PGS.TSKH Trần Quốc Chiến, Hồ Xuân Bình, Thuật toán song song tìm luồng cực
đại, Tạp chí Khoa học & Công nghệ, Đại học Đà Nẵng, 5(22)/2007, 37-42
[3] PGS.TSKH Trần Quốc Chiến, Giáo trình Lý thuyết đồ thị, Đại học Đà Nẵng 2007.
[4] PGS.TSKH Trần Quốc Chiến, Trần Thị Mỹ Dung, “ ng dụng thuật toán tìm
đường đi ngắn nhất Đa nguồn đích tìm luồng cực đại đa hàng hóa đồng thời”, kỷ yếu hội thảo khoa học Công nghệThông tin, Đại học Sư Phạm Đà Nẳng, 11-2011.
[5] Nguyễn Đ c Nghĩa, Nguyễn Tô Thành, “ Toán rời rạc “, Nhà Xuất Bản Đại học quốc gia Hà Nội, 2006
[6] PGS.TS Lê Huy Thập, “ Cơ sở lý thuyết song Song “, Nhà Xuất Bản Thông Tin và Truyền Thông, 2011
[7] Nguyễn Đ c Nghĩa, “ Cấu trúc dữ liệu và giải thuật “, Nhà Xuất Bản KHKT Hà Nội, 2013
Tài li u Ti ng Anh
[1] Tom Wilson, Nicholas Hofbauer, Dijkstra’s Algorithm in Parallel, team report 2008.
[2] A. Grama, A.Gupta, G.Karypis, V.Kumar, “Introduction to Parallel Computing”, 2003
[3] Seyed H. Roosta, Parallel Processing and Parallel Algorithms, Theory and Computation, Springer 1999.
[4] Joseph JáJá, An Introduction to Parallel Algrithms, Addison - Wesley, 1992
[5] Thomas Rauber, Gudula Runger (2013), Parallel Programming: for Multicore and Cluster Systems, Springer.
[6] JimKeogh(2004),Java Dymistyfied, Chapter 12 Multithreading.
[7] William Gropp et al, MPICH2 User’s Guide Version 1.0.6, Mathematics and ComputerScience Division, Argonne National Laboratory, 2007