Tiểu luận môn học hệ tin học phân tán
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA TIỂU LUẬN MÔN HỌC Đề tài: 1. BIỂU THỨC SONG SONG VÀ PHÂN TÁN TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2. CÁC ĐIỂM CẢI TIẾN CHỦ YẾU ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG NHANH HƠN GVHD: PGS.TS LÊ VĂN SƠN ) Đà Nẵng, 2009 Tiểu luận môn học Hệ phân tán MỤC LỤC 3.1. Thuật toán giả phân tán: Hàng đợi tập trung 20 3.2. Thuật toán Lamport: Hàng đợi phân tán 21 3.3. Cải tiến thuật toán Lamport (Thuật toán Ricart và Agrawala) 26 Trang -2 - Tiểu luận môn học Hệ phân tán LỜI NÓI ĐẦU uộc cách mạng khoa học và công nghệ đang diễn ra một cách sôi động trên phạm vi toàn thế giới, thúc đẩy loài người nhanh chóng bước sang một kỷ nguyên mới, đó là kỷ nguyên của nền văn minh dựa trên cơ sở của công nghiệp tri thức. Mở đầu cho cuộc cách mạng khoa học và công nghệ này là sự ra đời và phát triển ồ ạt của máy vi tính và các phương tiện xử lý thông tin khác. C Cùng với sự phát triển nhanh chóng số lượng máy vi tính cũng như nhu cầu trao đổi thông tin trong mọi hoạt động xã hội loài người đòi hỏi sự phát triển đồng bộ các phương pháp truyền thông. Mạng máy tính ra đời làm cho thế giới của chúng ta dường như nhỏ lại và mọi người trở nên gần nhau hơn. Trên thực tế, một xu hướng kỹ thuật mới được hình thành - xu hướng phân tán các thành phần tạo nên hệ tin học theo hướng tiếp cận nơi sử dụng và sản xuất thông tin trên cơ sở mạng máy tính. Song để khai thác có hiệu quả toàn bộ hệ thống, vấn đề quan trọng hàng đầu cần phải tính đến là các tài nguyên và chiến lược khai thác, sử dụng chúng một cách tối ưu nhất. Bản thân người sử dụng thuần tuý không thể tự xây dựng nên chiến lược đó được, mà nó là chức năng chủ yếu của các hệ thống tin học phân tán đồng thời cũng chính là đối tượng nghiên cứu của báo cáo này. Phạm vi và nhiệm vụ nghiên cứu của đề tài là phân tích đặc điểm của biểu thức song song và phân tán trong các ngôn ngữ thuật toán và các điểm cải tiến chủ yếu để thuật toán Lamport hoạt động nhanh hơn nhằm phục vụ công tác lưu chuyển, xử lý dữ liệu qua mạng dựa trên phương pháp lý thuyết. Về mặt bố cục, ngoài phần mở đầu, tài liệu tham khảo và mục lục, báo cáo được chia làm 3 chương, trong đó: Chương 1: Trình bày các vấn đề tổng quan về hệ phân tác và các cơ sở lý luận có liên quan. Chương 2: Trình bày về biểu thức song song và phân tán trong các ngôn ngữ thuật toán. Chương 3: Trình bày về các điểm cải tiến chủ yếu để thuật toán Lamport hoạt động nhanh hơn. Chúng tôi xin chân thành cám ơn PGS.TS. Lê Văn Sơn đã định hướng và cung cấp kiến thức và tài liệu để tôi hoàn thành báo cáo này. Do thời gian và trình độ hạn chế nên đề tài chắc không tránh khỏi sai sót. Kính mong sự góp ý của Thầy giáo hướng dẫn và các bạn đồng môn. Trang -3 - Tiểu luận môn học Hệ phân tán CHƯƠNG 1. CÁC CƠ SỞ LÝ LUẬN CÓ LIÊN QUAN 1.1 Xử lý song song và xử lý tuần tự 1.1.1 Tổng quan Lý thuyết về xử lý song song (Parallel Processing) bắt đầu cuối những năm 1940 khi J.Von Neumann giới thiệu một số mô hình hạn chế của tính toán song song có tên otomat tế bào mà chủ yếu là một mảng hai chiều các bộ xử lý trạng thái hữu hạn được tương kết theo dạng hình lưới. Từ đó đến nay, lý thuyết về xử lý song song trở thành lĩnh vực nghiên cứu quan trọng và ngày càng đem lại những dấu hiệu khả quan trong việc xây dựng một mô hình lập trình mới có những tính năng vượt trội so với mô hình lập trình tuần tự truyền thống. Xử lý song song từ xa xưa cho đến gần đây là lãnh vực cao cấp hầu như chỉ dành cho các nhà khoa học. Có ít nhất 2 nguyên nhân: - Xử lý song song đòi hỏi siêu máy tính đắt tiền, chỉ chính phủ hoặc tập đoàn lớn mới kham nổi. - Nhà khoa học mới cần tính toán cao cấp, như trong nghiên cứu vật lý hạt và vũ trụ, sinh học cấu tạo, khí tượng địa cầu, khoa học máy tính. Gần đây nhờ sự phổ biến của phần cứng rẻ như CPU đa lõi, phần mềm tiện dụng như Erlang, đại chúng bắt đầu biết đến xử lý song song. Xử lý song song là quá trình xử lý gồm nhiều tiến trình được kích hoạt đồng thời và cùng tham gia giải quyết một vấn đề, nói chung là thực hiện trên những hệ thống đa bộ xử lý. Là phân chia bài toán to thành nhiều bài toán nhỏ, rồi giải cùng lúc, nhờ đó tốc độ giải bài toán gốc tăng lên. Ví dụ: Tính tích phân trong khoảng [0, 100], thì có thể phân làm 2 bài toán nhỏ là tính tích phân trong khoảng [0, 50] và [50, 100], rồi cộng 2 kết quả lại. 1.1.2 Sự khác biệt giữa xử lý song song và xử lý tuần tự Trong tính toán song song, một số bộ xử lý cùng kết hợp với nhau để giải quyết cùng một vấn đề cho nên giảm được thời gian xử lý vì mỗi thời điểm có thể có nhiều phép toán được thực hiện đồng thời. Trong tính toán tuần tự với một bộ xử lý thì mỗi thời điểm chỉ thực hiện được một phép toán. Mục đích của xử lý song song là tận dụng các khả năng của các hệ đa bộ xử lý để thực hiện những tính toán nhanh hơn trên cơ sở sử dụng nhiều bộ xử lý đồng thời. Cùng với tốc độ xử lý nhanh hơn, việc xử lý song song cũng sẽ giải quyết được những bài toán lớn hơn. Trang -4 - Tiểu luận môn học Hệ phân tán 1.1.3 Tại sao phải xử lý song song ? Nhiều lĩnh vực mới như đồ họa máy tính, trí tuệ nhận tạo, phân tích số, v.v. đòi hỏi phải xử lý một khối lượng dữ liệu rất lớn, những vấn đề về xử lý ngôn ngữ tự nhiên, nhận dạng, xử lý ảnh ba chiều (3-D), dự báo thời tiết v.v. đều đòi hỏi phải xử lý dữ liệu với tốc độc rất cao, với khối lượng dữ liệu rất lớn. Hầu hết những bài toán này, những máy tính xử lý tuần tự là không đáp ứng yêu cầu thực tế. Do đó cần phải có những hệ thống máy tính thật mạnh mới đáp ứng được những yêu cầu của thực tế. Mặc dù tốc độ xử lý của các Bộ xử lý tăng nhiều trong những năm qua, nhưng do giới hạn về vật lý nên khả năng tính toán của chúng không thể tăng mãi được. Điều này dẫn tới là muốn tăng được khả năng tính toán của các hệ thống máy tính thì đích cuối cùng là phải khai thác được khả năng xử lý song song của chúng. Ngày càng xuất hiện nhiều bài toán mà những hệ thống đơn một bộ xử lý không đáp ứng được yêu cầu xử lý về thời gian, do đó đòi hỏi phải sử dụng những hệ thống đa bộ xử lý và đòi hỏi phải xử lý song song. 1.2 Vấn đề đồng bộ hóa trong hệ phân tán 1.2.1. Thời gian lôgic và trật tự sự kiện từng phần (Lamport) Trong các hệ tin học tập trung, vấn đề đồng bộ hóa được giải quyết thông qua cơ chế loại trừ tương hỗ. Cơ chế này cho phép xác lập trật tự hoàn toàn các sự kiện. Tuy nhiên, trong thực tế một số hệ thống khi đồng bộ hóa chỉ đòi hỏi trật tự từng phần. Chính vì vậy, trật tự hóa từng phần giữa các sự kiện mà tiến trình của nó cần phải đồng bộ là vấn đề cần phải quan tâm giải quyết. Trong hệ phân tán, việc đồng bộ hóa chủ yếu yêu cầu thiết lập một trật tự giữa các sự kiện. Giữa các trạm khác nhau, trật tự đó có thể thể hiện thông qua việc trao đổi các thông điệp với nhau. Trở lại năm 1979, Lamport đã đưa ra rằng hai sự kiện từ các trạm khác nhau chỉ có thể có trật tự nếu chúng được tách rời với nhau bằng cách gửi và nhận thông điệp. Ngược lại, cho dù một sự kiện xảy ra trước sự kiện khác theo thời gian, không có cách nào cho sự kiện thứ hai có thể quan sát trật tự này và vì vậy, không có cách Trang -5 - Tiểu luận môn học Hệ phân tán nào cho sự chính xác của nó phụ thuộc vào nó. Giả định ở đây là không có sự quan sát bên ngoài của trật tự sự kiện. Nếu sự chính xác của hệ thống phụ thuộc vào trật tự được quan sát bởi con người, ví dụ, thì sự quan sát Lamport không áp dụng. Tuy nhiên, sự chính xác trật tự chỉ phục thuộc vào sự đồng bộ bên trong của các sự kiện và vì thế định nghĩa của Lamport có thể áp dụng. Giả sử rằng ta có thể xác định một trật tự giữa các sự kiện của hệ phân tán nhờ vào quan hệ “có trước” (→): Bây giờ ta xem xét về trật tự sự kiện: Trật tự từng phần của các sự kiện: P1 → P2 → P3, và Q1 → Q2 → Q3 Nếu P1 là sự kiện phát thông điệp và Q2 là sự kiện nhận tương ứng thì: P1 → Q2 Trang -6 - • • a b P 1. a “có trước” b (a → b) • a P 2. a “có trước” b (a → b) • b Q • P 1 P 2 P 3 Q 1 Q 2 Q 1 P Q P 1 P 2 P 3 Q 1 Q 2 Q 1 P Q Thông điệp 3. a P a “xảy ra trước” c (a → c) - bắc cầu - • b Q • c • Tiểu luận môn học Hệ phân tán Trật tự các sự kiện được định nghĩa như sau: Nếu A và B là hai sự kiện của cùng một trạm và A xảy ra trước B thì ta có A→B. Nếu A là phát thông điệp từ một trạm nào đó và B là nhận thông điệp thì ta có A→B. Nếu A→B và B→C, thì A→C. Nếu hai sự kiện A và B xảy ra ở hai tiến trình riêng biệt và không trao đổi thông điệp thì ta không thể nói A→ B hay B→ A. Các tiến trình này được gọi là song song (A||B) 1.2.2. Gắn thời gian lôgic với các sự kiện Các đồng hồ lôgic: gán một số cho mỗi sự kiện cục bộ nhưng không liên quan đến thời gian vật lý. Hệ thống các đồng hồ lôgic phải chính xác : Hay nói cách khác: Làm thế nào chúng ta có thể thực thi các đồng hồ thỏa mãn Điều kiện Đồng hồ? Bằng thuật toán đóng dấu thời gian của Lamport – cung cấp một tập hợp các quy luật thực thi đơn giản. Trang -7 - ∀ sự kiện a,b : nếu a → b thì C(a) < C(b) Điều kiện đồng hồ • a Pi • b Pj • c Ci (a) < Cj (b) và Cj (b) < Cj (c) Tiểu luận môn học Hệ phân tán 1.2.3. Thuật toán đóng dấu thời gian của Lamport Đồng hồ lôgic là thuật toán cho phép đóng dấu cho từng sự kiện trong hệ phân tán để với mỗi cặp sự kiện A và B ta có: nếu A có trước B (A → B) thì đồng hồ lôgic của A nhỏ hơn đồng hồ lôgic của B. Các quy luật: Quy luật 1: Mỗi tiến trình Pi gia tăng Ci thêm một trị số giữa hai sự kiện thành công Quy luật 2: Mỗi tiến trình Pi đóng dấu thời gian cho các thông điệp m gửi đi, Tm = Ci (a) Quy luật 3: Khi nhận được thông điệp m, tiến trình Pj đặt lại giá trị Cj: Cj = max (Cj, Tm) + 1 Trật tự sự kiện toàn bộ: Giả sử là các đồng hồ thỏa mãn Điều kiện Đồng hồ, ta định nghĩa quan hệ sau: với các sự kiện a trên Pi và b trên Pj Trật tự từng phần với trật tự toàn bộ Chú ý rằng quan hệ “có trước”chỉ định nghĩa trật tự từng phần của các sự kiện. Điều này có nghĩa là trong khi một số sự kiện được sắp xếp trật tự bằng quan hệ “có trước”, vẫn còn một số sự kiện không được sắp xếp theo thứ tự Thỉnh thoảng chúng ta cần đến trật tự toàn cục của các sự kiện. Trật tự toàn cục sắp xếp thứ tự cho từng sự kiện để tất cả các trạm đồng ý với trật tự này. Trang -8 - • P i a C i C i +1 • P i a C i C i +1 (m, T m = C i (a) ) • P j C j C j = max (C j , T m ) + 1 (m, T m ) a a ⇒ b nếu C i (a) < C j (b) hoặc C i (a) = C j (b) với i < j Tiểu luận môn học Hệ phân tán Lamport định nghĩa trật tự toàn cục dựa trên quan hệ “có trước”, nó gán cho mỗi trạm một số duy nhất và sau đó sử dụng số này để lập trật tự cho các sự kiện không được sắp xếp thứ tự bằng quan hệ “có trước”. Trật tự nhất quán của các sự kiện phát: Định dạng thông điệp từ Pi : (m, Tm, i) Tại tiến trình Pi, một sự kiện phát (m, Tm, j) từ Pj được gọi là có trước sự kiện phát (n, Tn, k) từ Pk nếu : Nếu Tm < Tn, hoặc Nếu Tm = Tn và j < k Chú ý, đây là trật tự ⇒ Trang -9 - P1 P2 P3 P4 0 0 0 0 (a,1,1) (b,1,4) 3 2 2 3 2 2 Tiểu luận môn học Hệ phân tán CHƯƠNG 2. BIỂU THỨC SONG SONG VÀ PHÂN TÁN TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2.1. Tính toán song song và phân tán 2.1.1. Khái niệm Tính toán song song và phân tán (Parallel and Distributed Computing) là một dạng tính toán hiệu năng cao (high performance computing) bằng cách tận dụng sức mạnh tính toán của một tập các máy tính hoặc bộ xử lý được kết nối thông qua các hệ thống mạng chuyên dụng (tốc độ rất cao) hoặc mạng thông thường (TCP/IP chẳng hạn). Hầu hết các ứng dụng của tính toán song song là nhằm giải quyết các bài toán có độ phức tạp thời gian lớn hoặc những bài toán thời gian thực (real-time applications). Sau đây là một số ví dụ: Tính toán trong vật lý và hóa học: mô phỏng các quá trình nhiệt học, mô phỏng chuyển động các hạt cơ bản trong vật lý, mô phỏng các quá trình hóa học,… Tính toán trong sinh học: hiện nay có một lĩnh vực đang được giới nghiên cứu focus, đó là tin sinh (bioinformatics). Bài toán này chủ yếu phân tích thông tin di truyền ADN. Bài toán phân tích và mô hình hóa bản đồ gen người cũng không thể không sử dụng các máy tính hiệu năng cao, trong đó có các hệ thống tính toán song song rất mạnh. Trò chơi: dòng máy tính DeepBlue của IBM, có khả năng tính toán hàng triệu nước cờ trong một giây và đây là một hệ thống song song sử dụng môi trường lập trình MPI. Tính toán song song áp dụng trong khám phá tri thức từ cơ sở dữ liệu (Knowledge Discovery from Databases - KDD & Data Mining) 2.1.2. Các hệ thống song song Có rất nhiều các hệ thống song song khác nhau được phân loại theo cấu trúc, theo chức năng hoặc theo sức mạnh tính toán. Sau đây là một số ví dụ về các hệ thống tính toán song song: - Cray T3E (massively parallel processors) - IBM RS/6000 SP2 (distributed memory system) - Sun Fire 15000 (shared memory system) - Cray SV1 (massively parallel processors) - PC-Cluster (một tập các máy PC được kết nối lại với nhau thông qua mạng chuyên dụng hoặc mạng thông thường). 2.1.3. Môi trường lập trình Môi trường lập trình song song được chia làm hai mức như sau: Mức hệ thống: thường là một phần mềm hệ thống chạy ở background nhằm thực hiện các chức năng trong tính toán song song như quản lý tiến trình (task management), truyền thông (communication), đồng bộ hóa (synchronization), Trang -10 - [...]... - Tiểu luận môn học Hệ phân tán KẾT LUẬN V ấn đề đồng bộ hoá giữa các tiến trình trong hệ phân tán hết sức quan trọng và cần đặc biệt chú ý đến Bởi vì các thành phần trạng thái của hệ chỉ được biết một cách không chắc chắn do thời gian truyền thông tin trong đường truyền không cố định, thời gian trể trong quá trình truyền giữa các trạm cũng khác nhau, và độ rũi ro về mất thông tin trong hệ phân tán. .. Các thuật toán đóng dấu thời gian với sự kiện, thuật toán giả phân tán, thuật toán hàng đợi phân tán, thuật toán Ricart và Agrawala, … Nội dung tiểu luận đã giải quyết được trọng tâm của đề tài đặt ra Trang -29 - Tiểu luận môn học Hệ phân tán TÀI LIỆU THAM KHẢO [1] PGS.TS Lê Văn Sơn, Hệ tin học phân tán, NXB Đại học Quốc Gia, TP HCM [2] Xử lý song song, một mô hình cần được quan tâm nghiên cứu (http://www.vnschool.net//modules.php?name=News&file=article&sid=2651)... -22 - Tiểu luận môn học Hệ phân tán Thuật toán nhận thông điệp của Pi : on receipt of (REQ, k, j) begin ci ← max(ci , k) + 1 ; qi [j] ← (REQ, k, j) ; send(REP, ci, i) to j ; end ; of (REL, k, j) begin ci ← max(ci , k) + 1 ; qi [j] ← (REL, k, j) ; end ; of (REP, k, j) begin ci ← max(ci , k) + 1 ; if type of (qi [j]) = REQ then qi [j] ← (REP, k, j) ; end ; Trang -23 - Tiểu luận môn học Hệ phân tán −... ACK Trang -26 - Tiểu luận môn học Hệ phân tán – Nếu ti < tj thì Pi hoãn lại việc hồi âm (cho đến sau khi Pi kết thúc CS tiếp theo) Các xung đột được giải quyết nhờ vào yêu cầu “sớm hơn”, được xác định bởi các thời gian lôgic Ví dụ: C1 = 1 (REQ, 1, 1) (REQ, 1, 2) (1,1) < (1,2) hoãn hồi âm C2 = 1 (1,1) < (1,2) ACK đi vào CSi ra khỏi CSi ACK đi vào CSj Trang -27 - Tiểu luận môn học Hệ phân tán Sự chính xác:... là sẽ triển khai chương trình trên hệ tập trung hay là hệ phân tán Các ngôn ngữ này triển khai cấu trúc kiểm tra có tính chất thủ tục Mặc dù có một số hạn chế, song chúng cũng triển khai trên các hệ phân tán - Một số ngôn ngữ khác cho phép triển khai tường minh công việc phân tán Chúng cho phép tạo các mối quan hệ cần thiết từ một trạm đến các trạm khác trong hệ phân tán Hai loại ngôn ngữ để thể hiện... hàng đợi – đó là tiến trình 2 2 − Ưu điểm: chính xác, công bằng, không đói, đơn giản Trang -20 - Tiểu luận môn học Hệ phân tán − Nhược điểm: điểm sự cố đơn, hoạt động theo cách cổ chai 3.2 Thuật toán Lamport: Hàng đợi phân tán Khái quát: + Thuật toán là sự suy rộng của Hàng đợi tập trung cho việc cài đặt phân tán + Thuật toán này được Lamport (1978) đưa ra, nó sử dụng cơ chế đóng dấu thời gian cho việc... song song, kỹ thuật cài đặt chương trình nhưng những gì mà lập trình song song đem lại thì thật là to lớn, không thể phủ nhận Trang -19 - Tiểu luận môn học Hệ phân tán CHƯƠNG 3 CÁC ĐIỂM CẢI TIẾN CHỦ YẾU ĐỂ THUẬT TOÁN LAMPORT HOẠT ĐỘNG NHANH HƠN 3.1 Thuật toán giả phân tán: Hàng đợi tập trung − Có một trạm là trạm điều khiển đảm nhiệm việc cung cấp tài nguyên − Các trạm khi yêu cầu miền găng sẽ gửi các... nhiệm quản lý, kiểm tra trạng thái hiện thời và cập nhật nó nếu cần Trong lơi - lặp người ta chia không gian dữ liệu thành các vùng có quan hệ láng giềng, mỗi vùng này được một hay nhiều bộ vi xử lý đảm nhiệm Mỗi bộ vi xử Trang -11 - Tiểu luận môn học Hệ phân tán lý này đảm trách công việc theo từng vùng song song và khi cần có sự truyền thông điệp với các láng giềng Việc thiết kế chương trình theo... mạnh là ngôn ngữ ADA là một ngôn ngữ được xây dựng theo hướng tổng quát Nó biểu hiện một số đặc tính như biến toàn cục, các quy trình về trực quang đối tượng,… Trang -15 - Tiểu luận môn học Hệ phân tán 2.3.1 Ngôn ngữ CSP (Communicating Sequential Processes) Ngôn ngữ CSP cho phép lập trình ứng dụng dưới dạng một số lượng tiến trình cố định Các tiến trình này có thể phối hợp với nhau nhờ phép toán liên... lại chính việc kiểm tra đó có thể lại là việc bắt buộc đối với người lập trình 2.3.2 Ngôn ngữ ADA Trang -16 - Tiểu luận môn học Hệ phân tán Ngôn ngữ ADA là ngôn ngữ mô phỏng (giả ADA) có nghĩa là đặc điểm giống với ADA, còn phần cú pháp là phần giả định Thông qua ngôn ngữ này người ta có thể phân rã chương trình thành một tập hợp các tiến trình song song mà mỗi tiến trình này ta gọi là hoạt động chia . 0 (a,1,1) (b,1,4) 3 2 2 3 2 2 Tiểu luận môn học Hệ phân tán CHƯƠNG 2. BIỂU THỨC SONG SONG VÀ PHÂN TÁN TRONG CÁC NGÔN NGỮ THUẬT TOÁN 2.1. Tính toán song song và phân tán 2.1.1. Khái niệm Tính toán song song và phân tán. PGS.TS LÊ VĂN SƠN ) Đà Nẵng, 2009 Tiểu luận môn học Hệ phân tán MỤC LỤC 3.1. Thuật toán giả phân tán: Hàng đợi tập trung 20 3.2. Thuật toán Lamport: Hàng đợi phân tán 21 3.3. Cải tiến thuật toán. Cj (b) < Cj (c) Tiểu luận môn học Hệ phân tán 1.2.3. Thuật toán đóng dấu thời gian của Lamport Đồng hồ lôgic là thuật toán cho phép đóng dấu cho từng sự kiện trong hệ phân tán để với mỗi cặp