Tìm hiểu tính toán lưới Peer-to-Peer và Framework Alchemi dựa trên .NET

43 294 0
Tìm hiểu tính toán lưới Peer-to-Peer và Framework Alchemi dựa trên .NET

Đ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

Tiểu luận: Tính toán lưới MỤC LỤC  MỤC LỤC 1 LỜI MỞ ĐẦU 3 PHẦN 1: TỔNG QUAN TÍNH TOÁN LƯỚI 4 1 Giới thiệu tổng quan 4 2 Lịch sử hình thành 5 PHẦN 2: KIẾN TRÚC FRAMEWORK ALCHEMI 7 1 Desktop Grid Middleware 7 2 Biểu điễn hệ thống lưới desktop 8 3 Alchemi Desktop Grid Framework 11 4 Thực thi và thiết kế Alchemi 19 PHẦN 3: CÀI ĐẶT, CẤU HÌNH VÀ VẬN HÀNH ALCHEMI 24 1 Yêu cầu chung 24 2 Manager 24 3 Role-Based Security 26 4 Cross Platform Manager 27 5 Executor 28 6 Software Development Kit 31 7 Kiểm tra cài đặt lưới 33 HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 1 Tiểu luận: Tính toán lưới PHẦN 4: LẬP TRÌNH LƯỚI 35 1 Giới thiệu về phần mềm lưới 35 2 Hướng dẫn lập trình lưới 36 KẾT LUẬN 42 TÀI LIỆU THAM KHẢO 43 HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 2 Tiểu luận: Tính toán lưới LỜI MỞ ĐẦU   Tính toán lưới là sự kết hợp các tài nguyên máy tính từ nhiều lĩnh vực để đạt được cùng một mục đích. Đặc điểm để phân biệt tính toán lưới với các hệ thống tính toán hiệu năng cao khác như cluster computing là nó có khuynh hướng liên kết không chặt chẽ, hỗn tạp, và phân tán về mặt địa lý nhiều hơn. Mặc dù tính toán lưới có thể được dành riêng cho một ứng dụng chuyên biệt, nhưng nó thường được sử dụng cho nhiều mục đích khác nhau. Tính toán lưới thường được xây dựng bởi sự kết hợp nhiều thư viện phần mềm có mục đích chung được biết đến như là ứng dụng trung gian. Trong khuôn khổ bài tiểu luận môn học “Tính toán lưới”, em xin trình bày vấn đề “Tìm hiểu tính toán lưới Peer-to-Peer và Framework Alchemi dựa trên .NET”. Tuy đã có nhiều cố gắng nhưng do hạn chế về kinh nghiệm, kiến thức, thời gian và nguồn tài liệu tham khảo nên các vấn đề tìm hiểu trong bài thu hoạch chắc chắn còn nhiều thiếu sót. Kính mong Thầy xem xét và góp ý thêm. Em xin chân thành cám ơn Thầy! Trương Lê Minh Ngọc HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 3 Tiểu luận: Tính toán lưới PHẦN 1: TỔNG QUAN TÍNH TOÁN LƯỚI 1 Giới thiệu tổng quan Ý tưởng của siêu máy tính là rất hứa hẹn vì nó cho phép sử dụng mạng lưới nhiều máy tính độc lập như thể là một máy song song lớn, hoặc siêu máy tính ảo với một phần nhỏ chi phí so với các siêu máy tính truyền thống. Trong khi các máy ảo truyền thống (ví dụ như cluster) đã được thiết kế cho các mạng cục bộ, sự tăng trưởng theo cấp số nhân trong kết nối Internet cho phép khái niệm này được áp dụng trên quy mô lớn hơn nhiều. Điều này, cùng với thực tế là máy desktop (máy tính cá nhân) trong môi trường doanh nghiệp và ở nhà không được tận dụng nhiều - thường chỉ một phần mười của sức mạnh bộ xử lý được sử dụng - đã làm tăng lợi ích trong khai thác các chu kỳ sử dụng CPU của máy desktop kết nối qua internet. Mô hình mới này đã được mệnh danh là tính toán peer-to-peer mà gần đây được gọi là tính toán lưới máy tính doanh nghiệp. Mặc dù khái niệm tính toán lưới desktop là đơn giản, nhưng việc thực hiện lưới peer-to-peer đặt ra một số thách thức. Một số vấn đề chính bao gồm: không đồng nhất, quản lý tài nguyên, quản lý lỗi, độ tin cậy, thành phần ứng dụng, lập lịch và bảo mật. Hơn nữa, đối với quy mô lớn, cơ sở hạ tầng tính toán lưới desktop cũng phải tận dụng sức mạnh của máy tính Windows kể từ khi phần lớn các máy desktop chạy các biến thể của hệ điều hành Windows. Tuy nhiên, vẫn có sự thiếu xót trong phần mềm tính toán lưới dựa trên kiến trúc hướng dịch vụ trong không gian này. Để khắc phục hạn chế này, một Framework đã được phát triển dựa trên tính toán lưới desktop Windows là Alchemi thực hiện trên nền tảng Microsoft .NET. Microsoft .NET Framework là nền tảng phát triển cho Windows và cung cấp một số tính năng mà có thể được thừa hưởng để cho phép môi trường tính toán lưới trên các máy tính Windows. Alchemi được hình thành với mục đích xây dựng lưới và phát triển phần mềm lưới càng nhiều càng tốt mà không bị mất tính linh hoạt, độ tin cậy và khả năng mở rộng. Các tính năng chính được hỗ trợ bởi Alchemi là: HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 4 Tiểu luận: Tính toán lưới • Internet-based clustering của máy desktop Windows; • Thực hiện dedicated hoặc non-dedicated bởi các node riêng biệt; • Mô hình lập trình ứng dụng lưới hướng đối • Mô hình grid job file-based cho ứng dụng lưới; • Giao diện dịch vụ web hỗ trợ mô hình làm việc cho khả năng tương tác với các tùy chọn grid middleware. 2 Lịch sử hình thành Đầu những năm 1970 khi máy tính lần đầu tiên được nối mạng, ý tưởng khai thác chu kỳ CPU không sử dụng được hình thành. Một vài thí nghiệm ban đầu với tính toán phân tán, bao gồm một cặp chương trình Creeper và Reaper thực hiện trên mạng ARPAnet. Vào năm 1973, trung tâm nghiên cứu Xerox Palo Alto (PARC) thiết lập mạng Ethernet đầu tiên và chính thức nỗ lực tính toán phân tán. Các nhà khoa học tại PARC đã phát triển một chương trình "worm" thường xuyên kiểm tra khoảng 100 máy tính kết nối Ethernet. Worm lang thang khắp mạng PARC, sao chép chính nó trong bộ nhớ mỗi máy tính. Mỗi worm sử dụng các tài nguyên nhàn rỗi để thực hiện một tính toán và có khả năng sinh sản và truyền nhân bản đến các node khác của mạng. Kể từ năm 1990, với sự trưởng thành và xuất hiện khắp nơi của Internet và công nghệ web cùng với sự sẵn có của các máy tính mạnh mẽ và hệ thống mạng. Sự sẵn có của máy tính mạnh mẽ và máy trạm và mạng tốc độ cao (Gigabit Ethernet) đã dẫn đến sự xuất hiện của clusters phục vụ nhu cầu tính toán hiệu năng cao (HPC). Sự xuất hiện khắp nơi của Internet và công nghệ web cùng với sự sẵn có của nhiều clusters chi phí thấp và hiệu suất cao trong nhiều tổ chức đã thúc đẩy việc khám phá các tài nguyên phân tán để giải quyết vấn đề quy mô lớn. Điều này đã dẫn đến sự xuất hiện của lưới tính toán và các mạng P2P để chia sẻ tài nguyên phân tán. Cộng đồng lưới thường tập trung vào máy phân tán high- end như là clusters trong khi cộng đồng P2P đang xem xét việc chia sẻ hệ thống low-end như máy tính kết nối Internet để chia sẻ sức mạnh tính toán (ví dụ: SETI@Home) và nội dung (ví dụ: trao đổi file nhạc qua Napster và mạng Gnuetella). Do đó nhiều dự án và diễn đàn bắt đầu vào năm 2000 trên khắp thế HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 5 Tiểu luận: Tính toán lưới giới, rõ ràng là lợi ích trong việc nghiên cứu, phát triển và triển khai lưới và công nghệ P2P, công cụ, và các ứng dụng được phát triển nhanh chóng . HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 6 Tiểu luận: Tính toán lưới PHẦN 2: KIẾN TRÚC FRAMEWORK ALCHEMI 1 Desktop Grid Middleware Hình 1 cho thấy kiến trúc của một hệ thống tính toán lưới desktop cơ bản. Thông thường, người dùng sử dụng API và các công cụ tương tác với grid middleware đặc biệt để phát triển các ứng dụng lưới. Khi đưa ứng dụng lưới vào để xử lý, các đơn vị công việc được gửi đến thành phần điều khiển trung tâm có điều phối và quản lý việc thực hiện của các đơn vị công việc trên các node worker. Security Barrier - Kết nối tài nguyên phía sau tường lửa Đầu tiên, các node woker và các node user phải có khả năng kết nối với bộ điều khiển trung tâm qua Internet hoặc mạng LAN và sự hiện diện của tường lửa hoặc các máy chủ NAT không làm ảnh hưởng đến việc triển khai lưới desktop. Unobtrusiveness - Không ảnh hưởng đến các ứng dụng người dùng đang chạy HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 7 Tiểu luận: Tính toán lưới Việc thực hiện các ứng dụng lưới bởi các node worker không làm ảnh hưởng đến các chương trình người dùng đang chạy. Programmability - Tính toán chuyên sâu độc lập với đơn vị công việc Khi hệ thống lưới desktop trải rộng trên môi trường Internet có độ trễ cao, các ứng dụng với tỷ lệ tính toán thời gian truyền thông cao phù hợp cho việc triển khai. Reliability - Quản lý lỗi Bản chất không tin cậy của các kết nối Internet cũng có nghĩa là những hệ thống như vậy phải có khả năng chịu đựng sự gián đoạn kết nối hoặc lỗi và phục hồi từ chúng một cách nhanh chóng. Ngoài ra, việc mất dữ liệu phải được giảm thiểu trong trường hợp hệ thống treo hoặc lỗi. Scalability – Khả năng đáp ứng lượng người sử dụng lớn Hệ thống lưới desktop phải được thiết kế để hỗ trợ số lượng lớn người dùng anonymous từ hàng trăm đến hàng triệu. Ngoài ra, hệ thống phải hỗ trợ số lượng người dùng đồng thời và các ứng dụng của họ. Security - Bảo vệ cả hai người đóng góp và người tiêu dùng Cuối cùng, Internet là một môi trường không an toàn và các biện pháp an ninh nghiêm ngặt là bắt buộc. Cụ thể, người sử dụng và các chương trình của họ chỉ có thể thực hiện các hoạt động có thẩm quyền trên tài nguyên lưới. Ngoài ra, người sử dụng hoặc người tiêu dùng phải được bảo vệ chống lại các cuộc tấn công độc hại hoặc các node worker. 2 Biểu điễn hệ thống lưới desktop Ngoài việc thực hiện dựa trên kiến trúc hướng dịch vụ sử dụng công nghệ state-of-the-art, Alchemi có một số tính năng phân biệt khi so sánh với các hệ thống liên quan. Bảng 2 cho thấy sự so sánh giữa Alchemi và một số hệ thống liên quan như Condor, SETI@home, Entropia, GridMP, và XtermWeb. Alchemi là một framework dựa trên .NET cung cấp runtime machinery và môi trường lập trình cần thiết để xây dựng lưới desktop và phát triển các ứng dụng lưới. Nó cho phép thành phần ứng dụng linh hoạt bằng cách hỗ trợ mô hình lập trình ứng dụng hướng đối tượng bên cạnh mô hình công việc dựa trên tập tin. Hỗ trợ đa nền tảng được cung cấp thông qua một giao diện dịch vụ web và một HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 8 Tiểu luận: Tính toán lưới mô hình thực hiện linh hoạt hỗ trợ thực hiện dedicated và non-dedicated bởi các node lưới. Hệ thống Condor được phát triển bởi trường Đại học Wisconsin ở Madison. Nó có thể được sử dụng để quản lý một nhóm node tính toán dedicated hoặc không non-dedicated. Ngoài ra, cơ chế độc đáo cho phép Condor khai thác hiệu quả sức mạnh của CPU lãng phí từ máy trạm desktop không dùng đến. Condor cung cấp một cơ chế hàng đợi công việc, chính sách lập lịch, quy trình làm việc theo lịch, lược đồ ưu tiên, giám sát tài nguyên và quản lý tài nguyên. Người dùng gửi các công việc nối tiếp hoặc song song đến Condor, Condor đặt chúng vào hàng đợi, lựa chọn khi nào và nơi nào để thực hiện các công việc dựa trên chính sách, cẩn thận theo dõi tiến độ của chúng, và cuối cùng là thông báo cho người sử dụng sau khi hoàn thành. Nó có thể xử lý nguồn tài nguyên Windows và UNIX trong pool tài nguyên của nó. Condor gần đây đã được mở rộng để hỗ trợ tài nguyên lưới trong một Condor pool. Dự án tìm kiếm nền văn minh (SETI) ngoài trái đất gọi là SETI@Home, có trụ sở ở Đại học California tại Berkeley. Nó phát triển hệ thống lưới desktop khai thác hàng trăm và hàng ngàn máy tính qua mạng Internet để xử lý số lượng HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 9 Tiểu luận: Tính toán lưới lớn các dữ liệu thiên văn học gửi hàng ngày bởi kính thiên văn Arecibo ở Puerto Rico. Phần mềm worker của nó hoạt động như một trình bảo vệ màn hình trên máy tính. Nó được thiết kế để làm việc trên các máy tính không đồng nhất chạy Windows, Mac, và các biến thể của hệ điều hành UNIX. Không giống như các hệ thống máy tính desktop khác, các module worker được thiết kế như phần mềm ứng dụng vì nó chỉ hỗ trợ xử lý dữ liệu ứng dụng thiên văn học. Entropia tạo điều kiện cho hệ thống lưới desktop Windows bằng cách tập hợp các nguồn tài nguyên desktop thô thành một nguồn tài nguyên hợp lý duy nhất. Kiến trúc cốt lõi của nó là tập trung trong đó bộ quản lý công việc trung tâm điều khiển nhiều desktop client khác nhau. Node manager cung cấp một giao diện tập trung để quản lý tất cả các khách hàng trên lưới Entropia, có thể truy cập từ bất cứ nơi nào trên mạng doanh nghiệp. XtermWeb là một hệ thống P2P được phát triển tại Đại học Paris-Sud của Pháp. Nó thực hiện ba thực thể khác biệt: coordinator, workers và clients để tạo ra mạng XtermWeb. Clients là software instance cho phép user gửi công việc đến mạng XtermWeb. Chúng gửi công việc đến coordinator, cung cấp tập tin nhị phân và tham số tùy chọn và cho phép end user lấy kết quả. Cuối cùng, woker là một phần mềm lan truyền giữa các volunteer hosts tính toán công việc. Grid MP (MP) được phát triển bởi United Devices thông qua việc tuyển dụng các nhà phát triển chính của SETI@Home và hệ thống lưới doanh nghiệp. Như các hệ thống khác, nó hỗ trợ khai thác và tập hợp các nguồn tài nguyên tính toán có sẵn trên mạng công ty của họ. Về cơ bản nó có một kiến trúc tập trung, nơi mà dịch vụ Grid MP hoạt động như người quản lý chấp nhận công việc từ người sử dụng, lập lịch chúng trên các nguồn tài nguyên đã triển khai Grid MP agents. Grid MP agents có thể được triển khai trên clusters, máy trạm hoặc máy tính desktop. Grid MP agents nhận công việc và thực hiện chúng trên tài nguyên, quảng cáo khả năng tài nguyên của chúng trên dịch vụ Grid MP và trả về kết quả cho dịch vụ Grid MP. HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 10 [...]... luận: Tính toán lưới 3 Alchemi Desktop Grid Framework Kiến trúc phân lớp của Alchemi cho môi trường tính toán lưới desktop được thể hiện trong hình 2 Alchemi hoạt động theo mô hình tính toán song song master-worker Trong Alchemi, đơn vị thực hiện song song được gọi là “grid thread” và chứa các chỉ thị được thực hiện trên node lưới, trong khi thành phần trung tâm được gọi là “Manager” Một ứng dụng lưới. .. dùng Alchemi. Core.dll HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 32 Tiểu luận: Tính toán lưới Alchemi. Core.dll là một thư viện lớp để tạo ra ứng dụng lưới chạy trên lưới Alchemi Nó nằm trong thư mục bin Nó phải được tham chiếu từ tất cả các ứng dụng lưới của bạn Ví dụ Thư mục examples chứa một số ví dụ ứng dụng lưới, cho phép bạn kiểm tra việc tạo lưới và minh họa lập trình lưới 7 Kiểm tra cài đặt lưới. .. thiệu cơ bản về lập trình lưới với Alchemi Tương tự với VS.NET và C # Viết một ứng dụng lưới đơn giản tạo ra các số nguyên tố Ứng dụng này tạo ra một vài số lớn ngẫu nhiên và sử dụng lưới để kiểm tra xem chúng là nguyên tố hay không Thực hiện theo các bước sau để thiết lập một môi trường phát triển: • Xây dựng một lưới tối thiểu (1 Manager và 1 Executor) trên máy phát triển và thử nghiệm nó bằng cách... Tính toán lưới PHẦN 4: LẬP TRÌNH LƯỚI 1 Giới thiệu về phần mềm lưới Với mục đích phát triển ứng dụng lưới, lưới có thể được xem như là một tập hợp nhiều máy tính trừu tượng (mỗi máy tính có một hay nhiều CPU) họat động như một máy tính "ảo" có nhiều CPU Do tính chất của môi trường lưới (tài nguyên không đồng nhất kết nối qua môi trường không đáng tin cậy, độ trễ mạng cao), ứng dụng lưới có các tính năng... đầu vào và tập tin đầu ra Trong Alchemi, một đơn vị công việc được gọi là "job" với nhiều job tạo thành một “task” Kiến trúc Alchemi hỗ trợ những tính năng sau: • Các ứng dụng hiện có sẵn sàng sử dụng lưới • Khả năng tương tác với lưới trung gian có thể tận dụng Alchemi thông qua dịch vụ web Cross Platform Manager Task và job được biểu diễn thành các tập tin XML phù hợp với lược đồ task và job của Alchemi. .. là một phần của NET Framework phải được đưa vào Manifest của Gapplication instance Instance của lớp Gthread-derived được thực HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 12 Tiểu luận: Tính toán lưới hiện không đồng bộ trên lưới bằng cách thêm chúng vào ứng dụng lưới Sau khi hoàn thành mỗi thread, một sự kiện “thread finish” được kích hoạt Các sự kiện khác như “application finish” và “thread failed”... NET Framework cung cấp hai cơ chế để thực thi các application domain - dịch vụ Remoting và web (application domain là đơn vị độc lập với ứng dụng NET và có thể cư trú trên máy chủ mạng khác nhau) .NET Remoting cho phép một đối tượng NET được "remoted" và gửi chức năng của nó qua application domain Remoting được sử dụng để giao tiếp HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 19 Tiểu luận: Tính toán lưới. .. Trang: 21 Tiểu luận: Tính toán lưới 4.2 Vòng đời ứng dụng lưới Để phát triển và thực thi một ứng dụng lưới nhà phát triển tạo ra một lớp grid thread tùy biến dẫn xuất từ lớp trừu tượng GThread Một thể hiện của đối tượng GApplication được tạo ra và các phụ thuộc được yêu cầu bởi ứng dụng được thêm vào DependencyCollection Thể hiện của lớp có nguồn gốc từ GThread sau đó được thêm vào ThreadCollection... GApplication Vòng đời của một ứng dụng lưới được thể hiện trong hình 10 và hình 11, cho thấy sự tương tác đơn giản giữa Owner, Executor và Manager GApplication tuần tự gửi dữ liệu liên quan đến Manager, được lưu trên đĩa và lập lịch thread Trạng thái ứng dụng và thread được duy trì trong SQL Server/MSDE database HVTH: Trương Lê Minh Ngọc - CH1101024 Trang: 22 Tiểu luận: Tính toán lưới Non-dedicated executor thăm... ĐẶT, CẤU HÌNH VÀ VẬN HÀNH ALCHEMI Phần này hướng dẫn cách cài đặt, cấu hình và vận hành phần khác nhau của framework để thiết lập lưới Alchemi Các thành phần khác nhau có thể được tải về từ: http://www .alchemi. net/download.html 1 Yêu cầu chung • Microsoft NET Framework 1.1 2 Manager Manager nên được cài đặt trên một máy ổn định và khả năng phù hợp Manager yêu cầu: • SQL Server 2000 hoặc MSDE 2000 Nếu . trình bày vấn đề Tìm hiểu tính toán lưới Peer-to-Peer và Framework Alchemi dựa trên .NET . Tuy đã có nhiều cố gắng nhưng do hạn chế về kinh nghiệm, kiến thức, thời gian và nguồn tài liệu tham. phần mềm tính toán lưới dựa trên kiến trúc hướng dịch vụ trong không gian này. Để khắc phục hạn chế này, một Framework đã được phát triển dựa trên tính toán lưới desktop Windows là Alchemi. desktop kết nối qua internet. Mô hình mới này đã được mệnh danh là tính toán peer-to-peer mà gần đây được gọi là tính toán lưới máy tính doanh nghiệp. Mặc dù khái niệm tính toán lưới desktop là đơn

Ngày đăng: 09/04/2015, 19:04

Từ khóa liên quan

Mục lục

  • 1 Giới thiệu tổng quan

  • 2 Lịch sử hình thành

  • 1 Desktop Grid Middleware

  • 2 Biểu điễn hệ thống lưới desktop

  • 3 Alchemi Desktop Grid Framework

    • 3.1 Mô hình ứng dụng

      • 3.1.1 Mô hình Grid Thread

      • 3.1.2 Mô hình Grid Job

      • 3.2 Các thành phần phân tán

        • 3.2.1 Job Manager

        • 3.2.2 Executor

        • 3.2.3 Users

        • 3.2.4 Cross-Platform Manager

        • 3.3 Security

        • 4 Thực thi và thiết kế Alchemi

          • 4.1 Tổng quan

          • 4.2 Vòng đời ứng dụng lưới

          • 1 Yêu cầu chung

          • 2 Manager

          • 3 Role-Based Security

          • 4 Cross Platform Manager

          • 5 Executor

          • 6 Software Development Kit

          • 7 Kiểm tra cài đặt lưới

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan