1. Trang chủ
  2. » Công Nghệ Thông Tin

Nghiên cứu tìm hiểu ứng dụng sóng đệ qui phân tán

78 205 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 78
Dung lượng 1,44 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - ĐẶNG CHUNG KIÊN TÊN ĐỀ TÀI LUẬN VĂN Chuyên ngành : XỬ LÝ THÔNG TIN VÀ TRUYỀN THÔNG LUẬN VĂN THẠC SĨ KHOA HỌC XỬ LÝ THÔNG TIN VÀ TRUYỀN THÔNG NGƯỜI HƯỚNG DẪN KHOA HỌC : TS HÀ QUỐC TRUNG Hà Nội – 2010 LỜI CAM ĐOAN Em xin cam đoan luận văn không chép từ luận văn khác Các nội dung đề cập luận văn em nghiên cứu biên soạn, phần tham khảo từ tài liệu chuyên môn khác ghi rõ nguồn gốc tác giả Em xin cam đoan nội dung nêu trên, không thật em xin chịu trách nhiệm Tác giả luận văn ĐẶNG CHUNG KIÊN   MỤC LỤC Trang phụ bìa Lời cam đoan Danh mục ký hiệu, chữ viết tắt Danh mục hình vẽ PHẦN MỞ ĐẦU PHẦN NỘI DUNG CHƯƠNG I: KHÁI NIỆM VÀ HÌNH THỨC HÓA SÓNG ĐỆ QUY PHÂN TÁN I Khái niệm sóng đệ quy phân tán: Lịch sử phát triển Sóng đệ quy - công cụ đồng hóa II Công cụ thực sóng đệ quy phân tán III Các dạng sóng đệ quy phân tán Sóng đệ quy Sóng đệ quy bao phủ Sóng đệ quy ngập lụt IV MÔ HÌNH TOÁN CỦA SÓNG ĐỆ QUY PHÂN TÁN Mô hình toán Ví dụ mô hình toán sóng đệ quy phân tán Xây dựng giải thuật mô hình toán V Xây dựng giải thuật phân tán sóng đệ quy Định nghĩa tập giá trị cục Lựa chọn phương phức dò tìm tiến trình lân cận Thiết kề pha Thiết kế pha Liên kết giá trị VI BÀI TOÁN TÌM ĐƯỜNG NGẮN NHẤT VÀ SÓNG ĐỆ QUY PHÂN TÁN CHƯƠNG II: TÌM HIỂU MỘT SỐ BÀI TOÁN PHÂN TÁN I BÀI TOÁN SNAPSHOT TRONG HỆ THỐNG PHÂN TÁN Sơ lược toán snapshot: Các khái niệm toán snapshot Thuật toán snapshot cho hệ thống có kênh truyền theo mô hình FIFO a Nguyên lý b Thuật toán Chandy-Lamport c Chứng minh thuật toán d Sự kết thúc thuật toán e Mã giả thuật toán Thuật toán snapshot cho hệ thống có kênh truyền không theo mô Trang 10 10 12 13 13 14 16 16 17 18 19 19 21 21 22 23 24 24 24 25 25 36 36 36 36 41 41 42 44 48 48 50 Trang 2    hình FIFO a Sơ lược thuật toán snapshot hệ thống phi FIFO b Thuật toán Lai-Yang II BÀI TOÁN ELECTION TRONG HỆ PHÂN TÁN Sơ lược toán election hệ phân tán Thuật toán Bully Thuật toán Ring CHƯƠNG III: ỨNG DỤNG SÓNG ĐỆ QUY TRONG VIỆC GIẢI QUYẾT CÁC BÀI TOÁN PHÂN TÁN I BỐI CẢNH THỰC HIỆN SÓNG ĐỆ QUY PHÂN TÁN: II ỨNG DỤNG SÓNG ĐỆ QUY TRONG BÀI TOÁN SNAPSHOT III ỨNG DUNG SÓNG ĐỆ QUY TRONG BÀI TOÁN ELECTION IV ĐÁNH GIÁ VÀ HIỆU CHỈNH THUẬT TOÁN SÓNG ĐẸ QUY PHÂN TÁN CHƯƠNG IV: ĐỀ XUẤT MÔ HÌNH CÀI ĐẶT SÓNG ĐỆ QUY PHÂN TÁN I Các thành phần cần thiết triển khai sóng đệ quy phân tán II Đề xuất Message Passing Interface cho sóng đệ quy MPI lịch sử phát triển Cấu trúc chung ứng dụng MPI Các khái niệm MPI a Một số khái niệm b Giao tiếp điểm điểm (Point-to-Point Communication) MPICH2 PHẦN KẾT LUẬN TÀI LIỆU THAM KHẢO PHỤ LỤC 1: HƯỚNG DẪN CÀI ĐẶT MPICH2 TRÊN MÔI TRƯỜNG WINDOWS 50 51 52 52 53 55 57 57 57 62 64 66 66 67 67 68 69 69 71 72 73 75 77 Trang 3    DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT Chữ kí hiệu, chữ viết tắt CHƯƠNG I RPC GR = ( X , Γ , C ) Γ( x ) r PC(x,y) PCmin(x,y) C(x,y) Ch(j)={x0=r,xi1,xi2,…,xj} Rsons Ý nghĩa Remote Procedure Call, lời gọi thủ tục từ xa Đồ thị trọng số hướng Tập hợp node hàng xóm node x Node gốc Cost đường (x,y) Cost đường ngắn (x,y) Cost cung (x,y) Đường từ gốc đến node j Tập tiến trình tiến trình CHƯƠNG II e = (p,s,s’,c,M) seq = (ei : ≤ i ≤ n ) S i +1 = next ( S i , ei ); ≤ i ≤ n Cij SCij { GS = U LSi , U SCij i i, j } FIFO client-server CHƯƠNG III Γ (i ) callers _ list (i ) Sự kiện e xảy tiến trình p có trạng thái s, s’ trạng thái sau e xảy có tin nhắn M kênh truyền c liên quan đến tiến trình p Một chuỗi kiện tiến trình hệ thống phân tán Trạng thái trạng thái Si Kênh truyền từ tiến trình i đến tiến trình j Trạng thái kênh truyền Cij Trạng thái toàn cục hệ thống First in first out Mô hình máy chủ - máy khách Tập hợp node hàng xóm i Tập hợp node có lời gọi đến i CHƯƠNG IV Deadtimeseq _ Wave Deadtime flood _ Wave Deadtimespanningtree _ Wave Thời gian chết toàn hệ thống thực sóng đệ quy phân tán dạng Thời gian chết toàn hệ thống thực sóng đệ quy phân tán ngập lụt Thời gian chết toàn hệ thống thực sóng đệ quy phân tán bao phủ Trang 4    MPI Java RMI ISO HPC MPICH2 Message Passing Interface Java Remote Method Invocation International Organization for Standardization High Performance Computer, máy tính hiệu cao High-performance and Widely Portable MPI, chuẩn MPI thiết kế cho hiệu cao khả áp dụng rộng rãi nhiều môi trường Trang 5    DANH MỤC HÌNH VẼ Hình 1: Pha pha sóng đệ quy phân tán Hình 2: Ví dụ mô hình sóng đệ quy phân tán Hình 3: Loại bỏ vòng tìm đường ngắn Hình 4: Mạng toán tìm đường ngắn Hình 5: Sóng toán tìm đường ngắn Hình 6: Các thành phần trạng thái toàn cục Hình 7: toán đơn giản gồm hai tiến trình Hình 8: Các chiều thẻ kênh Hình 9: Một ví dụ đầy đủ trình gửi nhận token Hình 10: Ví dụ chuyển tiền hệ thống gồm tài khoản Hình 11: Quá trình nhận marker ghi lại trạng thái Hình 12: Thuật toán Chandy-Lamport Hình 13: Quá trình gửi marker hệ thống tài khoản Hình 14: Một chu trình thuật toán Chandy-Lamport Hình 15: Một ví dụ snapshot hệ thống ngân hàng Hình 16: Lắt cắt thể trạng thái toàn cục hệ thống Hình 17: Tính đắn thuật toán Hình 18: Trạng thái marker trở Hình 19: Thuật toán Bully Hình 20: Thuật toán Ring Hình 21: Ví dụ mạng chạy thuật toán snapshot Hình 22: Pha sóng snapshot mạng Hình 23: Mô hình mạng thực sóng snapshot Hình 24: Mạng thực thuật toán election Hình 25: Pha sóng áp dụng cho thuật toán election Trang 12 21 29 34 34 36 39 39 40 41 42 42 43 43 44 45 46 46 54 56 57 58 59 62 63 Trang 6    PHẦN MỞ ĐẦU LÝ DO CHỌN ĐỀ TÀI: • Các hệ thống phân tán phát triển ngày lớn mạnh, ứng dụng phân tán có nhiều hệ thống, việc nghiên cứu phương pháp xử lý toán phân tán cần thiết • Sóng đệ quy phân tán công cụ mạnh việc giải toán phân tán LỊCH SỬ NGHIÊN CỨU: • 1982: Trong báo “Echo algorithm” khái niệm tương tự sóng đề cập • 1991: Trong tác phẩm “La récursivité mode de programming distribute” tác giả G Florin, R Gomez, I Lavalleé đề cập chi tiết sóng đệ quy phân tán • 1993: Xuất phát từ báo “Recursive Distributed Programming scheme” tác giả G Florin, R Gomez, I Lavalleé • 2005: Trong báo “Sóng đệ quy phân tán” tác giả Hà Quốc Trung, Marc Bùi tổng kết đưa phân loại sóng mô hình toán học cho sóng đệ quy phân tán gợi ý định hướng phát triển MỤC ĐÍCH NGHIÊN CỨU CỦA LUẬN VĂN: • Nghiên cứu vấn đề liên quan đến sóng đệ quy phân tán khái niệm, mô hình, khả áp dụng cách thức cài đặt cho ngôn ngữ cụ thể TÓM TẮT LUẬN ĐIỂM CƠ BẢN, CÁC ĐÓNG GÓP CỦA TÁC GIẢ • • • • • Khái niệm sóng đệ quy phân tán, phân loại Mô hình toán học sóng đệ quy phân tán Quy trình xây dựng sóng đệ quy phân tán Ứng dụng sóng đệ quy phân tán vào số toán phân tán Đề xuất mô hình cài đặt cho sóng đệ quy phân tán PHƯƠNG PHÁP NGHIÊN CỨU: • Các khái niệm hình thức hóa mô hình toán học mã giả (Pseudocode) • Đi từ mô hình, sau áp dụng vào ngôn ngữ cụ thể Trang 7    Trong trình nghiên cứu luận văn em gặp phải nhiều khó khăn giúp đỡ tận tình TS HÀ QUỐC TRUNG bạn bè lớp XLTT&TT em hoàn thành luận văn Thời gian thực luận văn hạn hẹp kiến thức thân có hạn chế định nên luận văn không tránh khỏi thiếu sót, mong nhận ý kiến đóng góp thầy cô bạn bè lớp Mọi thư từ xin gửi địa kiendc0308g@yahoo.com Em xin chân thành cám ơn thầy HÀ QUỐC TRUNG toàn thể bạn bè lớp XLTT&TT khóa 2008-2010 Hà nội, ngày 10 tháng 10 năm 2010 Học viên ĐẶNG CHUNG KIÊN Trang 8    PHẦN NỘI DUNG CHƯƠNG I: KHÁI NIỆM VÀ HÌNH THỨC HÓA SÓNG ĐỆ QUY PHÂN TÁN Trong hệ thống song song, khối lượng tính toán chia thực nhiều vi xử lý Với số hệ thống song song, topology số lượng vi xử lý kết nối vào hệ thống thay đổi chương trình thực Để tiến hành phân phối cho vi xử lý, cần có chế điều khiển việc phân phối công việc cho vi xử lý Sóng đệ qui, cấu trúc lập trình phân tán lời gọi đệ qui phân tán cho phép • Lựa chọn vi xử lý chương trình song song thực • Quá trình lựa chọn tùy biến theo nhu cầu chương trình theo thay đổi phân bố tài nguyên Nguyên lý sóng đệ qui thực song song lời gọi thủ tục cách tự động, cung cấp khả cài đặt thuật toán đệ qui hệ thống song song Từ bắt đầu phát triển lập trình phân tán, khái niệm sử dụng truyền tin nhắn có đến xuất lời gọi thủ tục từ xa (RPC Remote Procedure Call) RPC thay cho chế gửi tin nhắn sử dụng cách xây dựng thuật toán dựa client-server hệ điều hành phân tán hướng đối tượng Nó thực thi hệ điều hành cách hiệu bao gồm 2,3 tin nhắn cho lần gọi Trong thực tế RPC xem công cụ cho việc thiết kế hướng đối tượng chương trình đầu phải chạy môi trường phân tán Các cấu trúc điều khiển “if then else”, “do loop” “while loop” lập trình Cần cấu trúc điều khiển phức tạp tương tự lập trình phân tán Cấu trúc điều khiển liên quan đến RPC khái niệm luồng hoạt động song song luồng thực Sự tính toán lan truyền hay sóng tính toán khái niệm cấu trúc điều khiển phân tán, sử dụng để xây dựng giải pháp cho nhiều vấn đề phân tán Trong lập trình tuần tự, lặp lại đệ quy hai kiểu lập trình bổ sung cho Thiết kế đệ quy dễ dàng trường hợp có lặp lại Bởi áp dụng đệ quy giải pháp đệ quy phân tán cho cấu trúc mạnh Trong luận văn tìm hiểu khái niệm sóng đệ quy Nó định nghĩa thủ tục gọi trình thực thi thực thi tự sóng đệ quy xảy Chúng ta xem Trang 9    endif Lời gọi đệ quy Election(Wave,R) on successorID; endif Pha if (neighbours - callers_list)=null then R.ElectionID = Wave.IDMax else Result = R.ElectionID kết pha endif end Election; IV Đánh giá hiệu chỉnh thuật toán sóng đệ quy phân tán: Sau áp dụng sóng đệ quy phân tán đưa số nhận xét đánh sau: • Sóng đệ quy giúp cho việc thiết kế thuật toán phân tán rõ ràng mạch lạc, dễ hiểu dễ ứng dụng vào môi trường thực • Sóng đệ quy thừa hưởng từ thuật toán đệ quy ưu điểm Tuy nhiên có nhược điểm cần ý phát triển thuật toán dưa sóng đệ quy phân tán: • Sóng đệ quy hoạt động không hiệu tham số truyền nhận lớn • Thời gian thực vấn đề đáng quan tâm chọn topology cho mạng, với mạng ring, thời gian thực tương đối lớn, nhiên điều chỉnh chọn topology cho mạng bao phủ • Không gian nhớ node sử dụng nhớ tạm thời cho lời gọi node vấn đề cần ý triển khai sóng đệ quy phân tán Khi tầng sóng nhiều, nhớ tiêu tốn cho mạng lớn lãng phí, cần đặc biệt ý tìm topology cho số tầng sóng mức độ cho phép • Sóng đệ quy thuật toán đệ quy có nhược điểm khó khăn việc gỡ lỗi tìm dấu vết lỗi (trace and debug) Với ưu nhược điểm đưa ra, để giúp sóng đệ quy hoạt động hiệu cần ý điều chỉnh thông số sau: Trang 63    • Số tầng sóng, với sóng đệ quy số tầng lớn nhất, với sóng đệ quy ngập lụt số tầng nhỏ Từ số tầng ta tính toán số lượng node trung bình tầng sóng, thông số định đến thời gian toàn cục sử dụng cho toàn thuật toán • Thời gian chết nhớ sử dụng đơn vị thời gian: yếu tố phụ thuộc vào số tầng tốc độ xử lý tiến trình tầng Ví dụ: với sóng đệ quy ngập lụt, node khởi tạo việc sử dụng nhớ đệm lớn phải sử dụng khoảng thời gian thời gian xử lý lớn node Việc sử dụng bao phủ cho sóng đệ quy điều chỉnh hai tham số giúp cho sóng đệ quy thực mềm dẻo Trang 64    CHƯƠNG IV: ĐỀ XUẤT MÔ HÌNH CÀI ĐẶT SÓNG ĐỆ QUY PHÂN TÁN Trong phần đề xuất mô hình cài đặt sóng đệ quy phân tán xem xét cách tổng quát cho việc cài đặt sóng thực tế, sau tìm hiểu công nghệ tồn thực tế đáp ứng yêu cầu I Các thành phần cần thiết triển khai sóng đệ quy phân tán Sóng đệ quy phân tán hoạt động thuật toán phân tán thiết kế ứng dụng ta cần xác định thuật toán phân tán, dựa vào yêu cầu cụ thể sóng đệ quy phân tán kết hợp suốt với thuật toán phân tán Bản chất sóng đệ quy lời gọi đệ quy hay lời gọi phân tán viết ứng dụng ngôn ngữ lập trình phải hỗ trợ việc gọi thủ tục từ xa cách thức truyền tin nhắn node với Ngoài sóng đệ quy thiết kế topology định nên thành phần cần thiết Vậy thành phần cần thiết triển khai sóng đệ quy phân tán sau: • Thuật toán phân tán • Topology cho việc triển khai sóng đệ quy • Một công cụ cho việc lập trình phân tán Ở cần ý thuật toán phân tán mà node bình đẳng chương trình chạy có tính tương đồng thực chức tương đồng thực sóng đệ quy phân tán Do xem xét triển khai sóng đệ quy phân tán, cần đặc biệt coi trọng trình xem xét kĩ lưỡng thuật toán phân tán Ngoài việc lựa chọn topology bước cần thiết cho trình thiết kế sóng đệ quy Tùy thuộc vào mạng áp dụng sử dụng topo cho hợp lý ring, spanning tree, star, mesh… Việc định topo sử dụng tương tự việc lựa chọn loại sóng đệ quy áp dụng Chúng ta có loại sóng đệ quy: • Sóng đệ quy tuần tự: áp dụng cho topo ring • Sóng đệ quy bao phủ: áp dụng cho topo spanning tree, mesh… • Sóng đệ quy ngập lụt: bạn cách biết topo mạng Khi triển khai sóng có hai loại thời gian mà hệ thống cần quan tâm: thời gian chết hệ thống tổng thời gian thực toàn sóng đệ quy, thời gian chết lớn thực topo dạng ring thời gian tổng thời gian sóng tất node Thời gian chết nhỏ sóng sóng đệ Trang 65    quy ngập lụt lớn tổng thời gian lớn sóng tổng thời gian lớn sóng Ta có biểu thức sau: Deadtimeseq _ Wave < Deadtimespanningtree _ Wave < Deadtime flood _ Wave Sau xác định hai thành phần đầu tiếp đến lựa chọn công nghệ đáp ứng cho việc viết ứng dụng chạy sóng đệ quy Sóng đệ quy thực lời gọi thủ tục từ xa RPC, chế gửi nhận tin nhắn, tất công nghệ hỗ trợ cách thức dùng để cài đặt sóng đệ quy Trên thực tế có nhiều công nghệ đáp ứng như: • Message Passing Interface: Đây ngôn ngữ lập trình mà chuẩn cho việc gửi nhận, quản lý truyền tin nhắn tiến trình node khác • Java RMI: bao gồm nhiều thư viện phục vụ cho việc truyền nhận liệu máy tính mạng • RPC ngôn ngữ C II Đề xuất Message Passing Interface cho sóng đệ quy: MPI lịch sử phát triển: Message passing mô hình lập trình sử dụng rộng rãi tính toán song song đặc biệt máy tính Scalable Parallel Computer với nhớ phân tán Network of Workstations Sử dụng khái niệm processes communicating thông qua tin nhắn dễ dàng việc tiếp cận Chuẩn MPI định nghĩa giao diện người dùng khả message passing Chuẩn hoàn thành tháng năm 1994, MPI chấp nhận sử dụng rộng rãi Mặc dù message passing thường dùng cho máy tính song song với nhớ phân tán, dùng cho mạng máy tính tập hợp tiến trình chạy máy tính đơn lẻ MPI thư viện việc chuyển tin nhắn dựa thống diễn đàn MPI bao gồm 40 tổ chức bao gồm nhà sản xuất, nhà nghiên cứu, nhà phát triển thư viện lập trình… Mục tiêu MPI thiết lập chuẩn hiệu mềm dẻo cho việc chuyển tin nhắn mà sử dụng rộng rãi cho việc viết chương trình truyền tin nhắn, chuẩn độc lập với hãng hàng đầu CNTT MPI chuẩn ISO IEEE thực tế trở thành chuẩn công nghiệp cho việc viết ứng dụng truyền tin nhắn kiến trúc máy tính hiệu cao (High Performance Computer) Lịch sử phát triển: Trang 66    • MPI kết từ nỗ lực cá nhân tổ chức từ thảo luận diễn đàn năm 1992 1994 • Những năm 1980 đầu 1990, nhà phát triển tính toán song song nhớ phân tán nhận thấy cần thiết chuẩn cho việc phát triển • Tháng năm 1992: Hội thảo chuẩn MPI môi trường nhớ phân tán, tính chuẩn MPI thảo luận • Tháng 11 năm 1992: Hội thảo Minneapolis đưa thảo đề nghị (MPI1) • Tháng 11 năm 1993: hội thảo siêu máy tính, thảo chuẩn MPI đưa • Bản thảo cuối phát hành vào tháng năm 1994 • MPI-2 đời năm 1996 MPI tổ hợp MPI-1 MPI-2 Cấu trúc chung ứng dụng MPI: Dưới ví dụ cấu trúc chung chương trình MPI, chương trình thực tính số π #include "mpi.h" #include int main( int argc, char *argv[] ) { int n, myid, numprocs, i; double PI25DT = 3.141592653589793238462643; Trang 67    double mypi, pi, h, sum, x; MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD,&numprocs); MPI_Comm_rank(MPI_COMM_WORLD,&myid); while (1) { if (myid == 0) { printf("Enter the number of intervals: (0 quits) "); scanf("%d",&n); } MPI_Bcast(&n, 1, MPI_INT, 0, MPI_COMM_WORLD); if (n == 0) break; else { h = 1.0 / (double) n; sum = 0.0; for (i = myid + 1; i

Ngày đăng: 27/07/2017, 20:30

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Distributed recursive waves – Trung Ha Quoc, Marc Bui Khác
[2] An efficient APSP algorithm – Ivan Lavallée, Marc Bui, Trung Ha Quoc - 2004 [3] Systematic building of a distributed recursive algorithm – Gérard Florin, Roberto Gómez, Ivan Lavallée Khác
[4] Distributed system: Principles and Paradigms – Andrew S. Tanenbaum Maarten Van Steen Khác
[5]Echo Algorithms: Depth Parallel Operations on General Graphs – Ernest J. H. Chang - 1982 Khác
[6]Principles of Concurrent and Distributed Programming –M. Ben-Ari - 2 nd version 2006 Khác
[7]Recursive Distributed programming scheme – G. Florin, R. Gomez, I. Lavallée [8]The wave algorithms as a Self-stabilizing control structure – L. Duchien, G. Florin, R. Gomez, L. Seinturier Khác
[9] Introduction to Distributed Algorithms – Rachid Guerraoui, Luís Rodrigues - draff version Khác
[10] A Distributed Algorithm for Minimum-Weight Spanning Trees – R.G.Gallager, P.A. Humblet, P. M. Spira Khác
[11] Yet another distributed election and spanning tree algorithm – Ivan Lavallee, Christian Lavault Khác
[12] Distributed Snapshots: Determining Global States of Distributed Systems - K. Mani Chandy, Leslie Lamport -1985 Khác
[13] Elections in a Distributed Computing System - Hector Garcia, Molina - 1982 [14] Implementing Remote Procedure Calls - Andrew D. Birrell, Bruce Jay Nelson - 1984 Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w