1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn điện toán lưới và đám mây Song song hóa thuật toán Dijkstra trên nền tảng điện toán đám mây

31 450 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 31
Dung lượng 2,05 MB

Nội dung

- 1 - ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TIỂU LUẬN MÔN HỌC ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY Đề tài: Song song hóa thuật toán Dijkstra trên nền tảng điện toán đám mây Học viên thực hiện: Nguyễn Minh Luân Mã số học viên: CH1301024 GVHD: PGS.TS. Nguyễn Phi Khứ Tp.HCM tháng 06-2014 - 2 - MỤC LỤC 2 - 3 - DANH MỤC HÌNH VẼ 3 MỞ ĐẦU 4 Chương 1. Thuật toán Dijkstra và song song hóa Dijkstra 5 1.Giới thiệu 5 2.Thuật toán tuần tự Dijkstra 5 3.Thuật toán song song Dijkstra 7 Chương 2. Tổng quan về điện toán đám mây 10 1. Định nghĩa 10 2. Quá trình phát triển 10 3. Những đặc điểm của điện toán đám mây 11 4. Các mô hình dịch vụ 12 5. Các mô hình triển khai 14 6. Các vấn đề ảo hóa trong môi trường điện toán đám mây 16 7. Nền tảng điện toán đám mây 18 Chương 3. Song song hóa thuật toán Dijkstra trên nền tảng điện toán đám mây 1.Giới thiệu Windows Azure Platform 20 20 2. Ứng dụng Windows Azure Platform xử lý song song 21 3. Triển khai Windows Azure trên Private cloud của VNPT Tiền Giang 22 4. Thực nghiệm thuật toán Dijkstra song song trên Private cloud của VNPT Tiền Giang 23 KẾT LUẬN 28 TÀI LIỆU THAM KHẢO 29 - 4 - DANH MỤC HÌNH VẼ Hình 1: Ghi nhớ kết quả tính được trên đồ thị ….……………………………… 6 Hình 2: Sơ đồ định nghĩa điện toán đám mây ….……………………………… 10 Hình 3: Mô hình dịch vụ điện toán đám mây ….…………………………….… 12 Hình 4: Các mô hình triển khai điện toán đám mây ………………………….… 14 Hình 5: Kiến trúc Host-based………………………….………………………….17 Hình 6: Kiến trúc Hyperisor-based…………………….………………………….18 Hình 7: Tương tác khách hàng/doanh nghiệp với Windows Azure………………20 Hình 8: Mô tả một khung ứng dụng song song trên nền Windows Azure……… 21 Hình 9: Mô hình ứng dụng song song kết nối từ UD cục bộ đến Worker Role… 22 Hình 10: Development Fabric cung cấp môi trường giả lập Windows Azure……23 - 5 - MỞ ĐẦU Bài toán tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh là một trong số những bài toán tối ưu trên đồ thị được ứng dụng rộng rãi trong đời sống xã hội như lĩnh vực khoa học kỹ thuật, y tế, sinh vật, đặc biệt trong mạng giao thông vận tải (số đỉnh của đồ thị lên đến hàng chục ngàn và phải xử lý trong một thời gian rất ngắn). Bài toán được đề xuất và giải quyết bởi nhà khoa học máy tính người Hà Lan Edsger Dijkstra và được gọi là thuật toán Dijkstra. Thuật toán có độ phức tạp là O(n 2 ), với độ phức tạp tính toán cao của thuật toán này cũng như đòi hỏi về mặt thời gian, việc giải bài toán này với tính chất tuần tự của giải thuật sẽ gặp phải khó khăn về thời gian thực hiện chương trình, tốc độ xử lý, khả năng lưu trữ của bộ nhớ, xử lý dữ liệu với quy mô lớn,… kích thước của bài toán tăng lên và không gian tìm kiếm càng lớn, yêu cầu phải song song hóa giải thuật để tăng t ố c độ và hiệu quả của giải thuật. Bên cạnh đó, sự phát triển như vũ bão của “điện toán đám mây” đã hỗ trợ rất tốt cho việc triển khai các phần mềm ứng dụng, bài toán có kích cỡ lớn. Trong phạm vi của tiểu luận, em xin trình bày nội dung “Song song hóa thuật toán Dijkstra trên nền tảng điện toán đám mây”.Bao gồm: Chương 1: Thuật toán Dijkstra và song song hóa Dijkstra Chương 2: Tổng quan về điện toán đám mây Chương 3: Thực nghiệm song song hóa thuật toán Dijkstra trên nền tảng điện toán đám mây Kết luận: Định hướng phát triển kết quả nghiên cứu. - 6 - CHƯƠNG 1. THUẬT TOÁN DIJKSTRA VÀ SONG SONG HÓA DIJKSTRA 1. Giới thiệu Bài toán tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh là một trong số những bài toán tối ưu trên đồ thị và được ứng dụng rộng rãi trong thực tế. Bài toán được đề xuất và giải quyết bởi nhà khoa học máy tính người Hà Lan Edsger Dijkstra và được gọi là thuật toán Dijkstra. Thuật toán có độ phức tạp là O(n 2 ), với độ phức tạp tính toán cao của thuật toán này cũng như đòi hỏi về mặt thời gian, việc giải bài toán này với tính chất tuần tự của giải thuật sẽ gặp phải những vấn đề về thời gian thực hiện chương trình, tốc độ xử lý, khả năng lưu trữ của bộ nhớ, xử lý dữ liệu với quy mô lớn, … kích thước của bài toán tăng lên và không gian tìm kiếm càng lớn, yêu cầu phải song song hóa giải thuật để tăng t ố c độ và hiệu quả của giải thuật. Thuật toán đã giải quyết trên đồ thị với thời gian chạy khá lâu trên đồ thị có số đỉnh lớn và dễ dàng tìm thấy nhiều ứng dụng trong các lĩnh vực khoa học kỹ thuật, y tế, sinh vật và đặc biệt trong mạng giao thông vận tải. Tuy nhiên, có rất nhiều ứng dụng cần xử lý nhanh trên đồ thị có số đỉnh lớn thì thuật toán tuần tự không đáp ứng được. Vì vậy phải chia đồ thị cho nhiều bộ xử lý đồng thời tham gia tính toán, dẫn đến thuật toán song song trên đa bộ xử lý, điều này thuật toán tuần tự chạy trên một bộ xử lý không thể thực hiện được. Hiện nay, mô hình xử lý song song đã và đang phát triển mạnh mẽ giải quyết những vấn đề bế tắc mà mô hình xử lý tuần tự gặp phải như: vấn đề thời gian thực hiện chương trình, tốc độ xử lý, khả năng lưu trữ của bộ nhớ và xử lý dữ liệu với quy mô lớn. Vì vậy, “Song song hóa thuật toán Dijkstra tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh” trên đồ thị với m bộ xử lý nhằm khắc phục được các vấn đề tồn tại đã nêu ở trên. 2. Thuật toán tuần tự Dijkstra tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh Đầu vào: Đồ thị liên thông G(V,E,w), w(i,j) > 0, ∀ ( i , j ) ∈ E, đỉnh nguồn a. Đầu ra: Chiều dài đường đi ngắn nhất và đường đi ngắn nhất từ đỉnh a đến tất cả các đỉnh trên đồ thị. + Phương pháp: Bước 1. Gán L(a):=0. Với mọi đỉnh x ≠ a gán L(x) = ∞. Đặt T:=V. Bước 2. Chọn v ∈ T, v chưa xét sao cho L(v) có giá trị nhỏ nhất. Đặt T:=T\{v}, đánh dấu đỉnh v đã xét. Bước 3. Nếu T= φ , kết thúc. L(z),  ∀ z ∈ V, z≠a là chiều dài đường đi ngắn nhất từ a đến z. Từ z lần ngược theo đỉnh được ghi nhớ ta có đường đi ngắn nhất. - 7 - (L(z) không thay đổi, nếu L(z)= ∞ thì không tồn tại đường đi_(Not Path)). Ngược lại sang bước 4. Bước 4. Với mỗi x ∈ T kề v gán L(x):= min{L(x), L(v)+w(v,x)}. Nếu L(x) thay đổi thì ghi nhớ đỉnh v cạnh đỉnh x bằng mảng truoc[] (với truoc[] của đỉnh 1= 0) để sau này xây dựng đường đi ngắn nhất. Quay về bước 2. Độ phức tạp của thuật toán Dijkstra là O(n 2 ). Ví dụ: Cho đồ thị được biểu diễn như sau, sau khi thuật toán thực hiện xong thì kết quả được ghi nhớ lên các nhãn đỉnh tương ứng Mảng truoc[]=0 1 1 2 3 3 6 4 8 11 7 11 (Mảng ghi nhớ truoc [] dùng để tìm đường đi, với truoc[1]=0) Mảng độ dài L = 0 7 5 13 15 15 17 18 38 39 24 29 Vậy kết quả từ đỉnh 1 đến tất cả các đỉnh là: - 8 - đến 2=7 (12) đến 3=5 (13) đến 4=13 (124) đến 5=15 (135) đến 6=15 (136) đến 7=17 (1367) đến 8=18 (1248) đến 9=38 (1248) đến 10=39 (13671110) đến 11= 24 (136711) đến 12=29 (13671112) Với các bước thực hiện tuần tự như trên, giải thuật có độ phức tạp là O(n 2 ) khi n tăng lên quá lớn (khoảng vài chục ngàn đỉnh) thì thời gian xử lý sẽ chậm đi rất nhiều, điều này không đáp ứng được những ứng dụng cho giải thuật Dijkstra đòi hỏi chạy với thời gian nhanh hơn. Ngoài ra, mô hình xử lý song song cũng như các hệ thống xử lý song song được phát triển mạnh mẽ trên thế giới và cả ở Việt Nam. Xử lý song song tốn ít thời gian hơn và thời gian là khác nhau tùy theo hệ thống có bao nhiêu bộ xử lý và chỉ ra được trong tính toán song song thì thời gian thực hiện của bài toán phụ thuộc vào thời gian truyền dữ liệu trong hệ thống cộng với thời gian thực hiện tính toán. Vì vậy, song song hóa thuật toán Dijkstra là rất cần thiết trong thực tiễn. 3. Thuật toán song song Dijkstra tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh Ý tưởng: Chia đồ thị ban đầu cho m bộ xử lý (P 0 , P 1 ,…,P m-1 ), cùng tính toán đồng thời, mỗi bộ BXL đảm nhận n/m đỉnh của đồ thị (n là số đỉnh trên đồ thị, m là số BXL ) và ma trận trọng số n/m cột n dòng (nếu n chia hết cho m). Ngược lại trường hợp không chia hết thì ta sẽ thực hiện theo công thức (*) ở bước 1 trong thuật toán song song. Với m BXL, mỗi bộ xử lý sẽ thực hiện tính min L(x) với x là những đỉnh kề với đỉnh mà nó đang nhận để xét. Sau đó BXL trung tâm (P 0 ) sẽ tìm min của các L(x) trên các BXL để tiếp tục gửi đỉnh x lên các BXL để thực hiện. Đầu vào: Đồ thị liên thông G(V,E,w), w(i,j) > 0 ∀ ( i , j ) ∈ E, đỉnh nguồn a, 1 bộ xử lý chính và m-1 bộ xử lý phụ. Đầu ra: Chiều dài đường đi ngắn nhất là đường đi ngắn nhất từ đỉnh a đến tất cả các đỉnh trên đồ thị. Phương pháp: Bước 1. Bộ xử lý chính thực hiện - Gán L(a):=0. Với mọi đỉnh x ≠ a, x thuộc bộ xử lý chính gán L(x)= ∞. - Chia đều số đỉnh và ma trận trọng số để gửi cho m BXL. Cách chia đều như sau: Giả sử ta có n đỉnh và m bộ xử lý P 0 ,P 2 ,…,P m-1 . Gọi n i là số đỉnh của bộ xử lý P i (i=0,…,m-1). - 9 - - Nếu n chia hết cho m thì For i=0 to m-1 do n i = n / m - Nếu n không chia hết cho m thì For i=0 to m-2 do - Ta xây dựng T i (i=0,…,m-1) là tập đỉnh mà bộ xử lý P i sẽ nhận như sau: N=0; kt là số phần tử mà các bộ xử lý nhận - Ta xây dựng A i (i=0,…,m-1) là ma trận trọng số mà bộ xử lý P i sẽ nhận như sau: Gọi A là ma trận trọng số của đồ thị đầu vào thì A=(w ij ) nxn, suy ra: được bộ xử lý Pi (i=0,…,m-1) nhận. - Gửi T i (i=1, ,m-1), A i (i=1, ,m-1), L(x), (i=1, ,m-1), cho m-1 BXL phụ P 1 ,P 2 ,…,P m-1. Bước 2. m bộ xử l ý thực hiện - Trong m bộ xử lý (trừ bộ xử lý chính), gán L(x i )= ∞, sao cho x i thuộc T i - 10 - (i=1,…,m-1). - Trên m bộ xử lý tìm L i (x i )= min{L(x i ), (i=0,…,m-1), x i chưa xét}. - Các bộ xử lý phụ gửi L i (x i ) về bộ xử lý chính. Bước 3. Bộ xử lý chính thực hiện - Bộ xử lý chính tìm l(v)= min{L i (x i ), i=0, ,m-1}trên m bộ xử lý. - Chuyển đỉnh v lên m bộ xử lý để thực hiện các bước tiếp theo. Bước 4. m bộ xử lý thực hiện - Trên m BXL kiểm tra nếu , T i =T i \{v} (i=0,…,m-1), đánh dấu đỉnh v đã xét. - Kiểm tra nếu T i (i=0, ,m-1) = , thì bộ xử lý thứ i kết thúc, sang bước 6. - Ngược lại, sang bước 5. Bước 5. m bộ xử lý thực hiện for x ∈ T i (i=0,…,m-1) kề với v if L( x ) > L( v ) +w ( v , x) { L(x) := L[v] + w(v,x) Truoc[x]=v // ghi nhớ đỉnh v vào x} quay lại bước 2 Bước 6. Bộ xử lý chính thực hiện. Nếu tất cả m-1 bộ xử lý phụ kết thúc thì bộ xử lý chính thực hiện: nhận kết quả từ các bộ xử lý phụ và kết luận chiều dài đường đi ngắn nhất từ a đến tất cả các đỉnh và đường đi ngắn nhất qua các đỉnh đã ghi nhớ. Đỉnh nào có nhãn không thay đổi (bằng ∞) thì không tồn tại đường đi_(Not Path). Hệ thống kết thúc. [...]... vụ đám mây cài đặt và vận hành phần mềm ứng dụng bên trong đám mây và những người sử dụng điện toán đám mây truy cập các phần mềm từ các khách hàng của dịch vụ đám mây Những người sử dụng điện toán đám mây không quản lý cơ sở hạ tầng đám mây và nền tảng mà trên đó các ứng dụng đang chạy, việc này giúp loại bỏ việc cài đặt và chạy các ứng dụng trên máy tính của người dùng, đơn giản hóa việc bảo trì và. .. mây, sử dụng các ngôn ngữ lập trình và các công nghệ nguồn mở được hỗ trợ trên mỗi nền tảng, được phân loại nền tảng cơ bản và các nền tảng chuyên dụng Các nền tảng cơ bản là những đề xuất tối thiểu (vật lý hay ảo hóa) và có thể có một hệ điều hành Hoàn toàn tự do để cấu hình hệ thống trong đám mây, chỉ cần một nền tảng cơ bản,khi đó, tachỉ cần xác định một số đặc tả kỹ thuật phần cứng như dung lượng bộ... mạng và không chỉ các VM có thể chạy trên nền tảng Hyper-V, nó có thể kết nối với VMware và Citrix XenServer VMware: VMware là lâu đời nhất và hầu hết có các tính năng hoàn chỉnh, các sản phẩm ảo hóa gồm ESXi, vSphere Citrix: Giải pháp điện toán đám mây của Citrix là tập trung vào sản phẩm XenServer và được hỗ trợ bởi cơ sở hạ tầng và cộng đồng mã nguồn mở CloudStack - 21 - CHƯƠNG 3 SONG SONG HÓA THUẬT... 2012 và 2013 thị trường Smart Phone của Samsung và Apple phát triển mạnh mẽ 3 Những đặc điểm của điện toán đám mây Các đặc điểm của môi trường điện toán đám mây trình bày sau, có thể không là tất cả, tham khảo từ nhiều nguồn tài liệu khác nhau,nhìn chung các loại dịch vụ được cung cấp trên điện toán đám mây có những đặc điểm như sau: - Tính co giãn và khả năng mở rộng (Elasticity and scalability): Điện. .. khai các ứng dụng, người dùng điện toán đám mây cài đặt hệ điều hành và phần mềm ứng dụng của họ trên cơ sở hạ tầng đám mây Trong mô hình này, người dùng sẽ phải vá lỗi, bảo trì hệ thống và phần mềm ứng dụng của họ Các nhà cung cấp dịch vụ điện toán đám mây thường tính phí dịch vụ IaaS trên cơ sở điện toán thành phần: chi phí phản ánh số lượng nguồn tài nguyên được phân bổ và sử dụng Những nhà cung cấp... Cloud Services 4.2 Nền tảng như một dịch vụ (PaaS) Trong mô hình PaaS, những nhà cung cấp dịch vụ đám mây cung cấp nền tảng bao gồm hệ điều hành, môi trường thực hiện ngôn ngữ lập trình, cơ sở dữ liệu và máy chủ web Nhà phát triển ứng dụng có thể phát triển và chạy các giải pháp phần mềm của họ trên một nền tảng điện toán đám mây mà không cần tốn chi phí và sự phức tạp của việc mua và quản lý phần cứng... 11 - CHƯƠNG 2 TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY 1 Định nghĩa Một mô hình điện toán phân tán có tính co giãn lớn mà hướng theo co giãn về mặt kinh tế, là nơi chứa các sức mạnh tính toán, kho lưu trữ, các nền tảng (platform) và các dịch vụ được trực quan, ảo hóa và co giãn linh động, sẽ được phân phối theo nhu cầu cho các khách hàng bên ngoài thông qua Internet Điện toán đám mây là một hệ thống, nơi mà... hành khác nằm trên nó + Các ứng dụng máy ảo: Các máy ảo này sẽ lấy tài nguyên từ phần cứng, thông qua sự cấp phát và quản lý của hypervisor Một số ví dụ về các hệ thống Bare-metal hypervisor như là: Oracle VM, VMware ESX Server, IBM's POWER Hypervisor (PowerVM), Microsoft's Hyper-V, Citrix XenServer… 7 Nền tảng điện toán đám mây 7.1 Nền tảng mã nguồn mở Có nhiều nền tảng điện toán đám mây, sử dụng các... lập trình và cơ sở dữ liệu MySQL hoặc Postgres Đây là những lựa chọn phổ biến và có thể tìm một số tùy chọn cấu hình sẵn (sử dụng nền tảng nguồn mở Aptana) Các nền tảng chuyên dụng cung cấp một số kiểu môi trường lập trình và các dịch vụ trên một nền tảng cơ bản Các nền tảng chuyên dụng này thường đơn giản và cung cấp một số dịch vụ duy nhất (Sử dụng máy ứng dụng Google App Engine) 7.2 Nền tảng thương... nhiều lợi thế so với loại công cộng Việc kiểm soát chi tiết hơn trên các nguồn tài nguyên khác nhau, các đám mây riêng là lý tưởng khi các kiểu công việc đang được thực hiện không phù hợp cho một đám mây công cộng do vấn đề về quản lý và an ninh 5.3 Đám mây lai (Hybrid cloud) Là một sự kết hợp của các đám mây công cộng và đám mây riêng, trên nguyên tắcvẫn giữ nguyên các thành phần của chúng nhưng liên . MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TIỂU LUẬN MÔN HỌC ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY Đề tài: Song song hóa thuật toán Dijkstra trên nền tảng điện toán đám mây Học viên thực hiện: Nguyễn Minh Luân Mã. bài toán có kích cỡ lớn. Trong phạm vi của tiểu luận, em xin trình bày nội dung Song song hóa thuật toán Dijkstra trên nền tảng điện toán đám mây .Bao gồm: Chương 1: Thuật toán Dijkstra và song. toán Dijkstra và song song hóa Dijkstra Chương 2: Tổng quan về điện toán đám mây Chương 3: Thực nghiệm song song hóa thuật toán Dijkstra trên nền tảng điện toán đám mây Kết luận: Định hướng phát

Ngày đăng: 19/05/2015, 21:12

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w