Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

51 997 6
Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

Đ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

Tài liệu tham khảo công nghệ thông tin Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

IĐẠI HỌC QUỐC GIA HÀ NÔITRƯỜNG ĐẠI HỌC CÔNG NGHỆNguyễn Chí CôngXÂY DỰNG ỨNG DỤNG TÍNH TOÁN PHÂN TÁN TRÊN NỀN TẢNG SỨC MẠNH CÁC MÁY TÍNH NHÂNKHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông TinHÀ NỘI -2010 IIĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆNguyễn Chí Công XÂY DỰNG ỨNG DỤNG TÍNH TOÁN PHÂN TÁN TRÊN NỀN TẢNG SỨC MẠNH CÁC MÁY TÍNH NHÂNKHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin Cán bộ hướng dẫn: ThS. Đào Minh Thu HÀ NỘI - 2010 Tóm tắt nội dungTính toán phân tán là một công nghệ mới và rất thiết thực hiên nay. Những hệ thống tính toán phân tán giúp giải quyết những bài toán khoa học lớn mà một máy tính không thể giải quyết được. Ngày nay có khá nhiều middleware phục vụ cho việc xây dựng hệ thống tính toán phân tán. Trong khóa luận này trình bày một số nghiên cứu về tính toán phân tán, những nghiên cứu về kiến trúc, cách thức hoạt động của một số hệ thống tính toán phân tán phổ biến, giới thiệu một số dự án tính toán khoa học đang được thực thi nhờ hệ thống tính toán phân tán. Khóa luận này cũng trình bày bước đầu xây dựng một hệ thống tính toán phân tán, với phần mềm bên phía người dùng được tích hợp vào ứng dụng facebook. Người dùng không cần cài đặt một phần mềm client nào, mà chỉ cần có một trình duyệt web là có thể tham gia vào những dự án tính toán. Việc này sẽ tạo điều kiện mở rộng dự án tính toán được dễ dàng hơn, làm tăng hiệu suất của những hệ thống tính toán phân tán.III Mục lụcDanh mục các hình vẽHình 2.1: Kiến trúc hệ thống BOINC .10Hình 2.1: Kiến trúc hệ thống Condor 15Hình 2.3: Kiến trúc hệ thống Globus Toolkit .17IV Hình 3.1: Kiến trúc tổng thể hệ thống 22Hình 3.2: Kiến trúc chi tiết hệ thống 24Hình 3.3: Mô hình kết nối TCP/IP của hệ thống .26Hình 4.1: Hình ảnh mô tả phân chia task tới những máy tính Node .47Hình 4.2: Biểu đồ thời gian thực thi khi có một máy tính 47Hình 4.3: Biểu đồi thời gian thực thi khi có ba máy tính .48V Chương I – Giới thiệu1.1 Đặt vấn đềKhi khoa học phát triển đặt ra nhiều bài toán với khối lượng tính toán lớn, cùng với một lượng lớn dữ liệu cần xử lý. Trong nhiều ngành khoa học khác nhau những bài toán này đang tồn tại và chúng ta luôn muốn xử lý chúng.Trong thiên văn học có một điều mà chúng ta luôn muốn khám phá đó là “liệu có một nền văn minh nào ngoài trái đất không?”, đây là một câu hỏi lớn mà nhiều năm qua con người vẫn chưa tìm được lời giải đáp thỏa đáng. Với khoa học kỹ thuật như hiện nay chúng ta có thể thu được những tín hiệu từ bên ngoài trái đất, chúng ta có thể xử lý những tín hiệu này để hy vọng có thể tìm ra một nền văn minh nào đó bên ngoài trái đất. Nhưng những tín hiệu thu được ngoài trái đất rất nhiều, nếu dùng một máy tính có công suất tính toán lớn cũng phái mất rất nhiều thời gian để xử lý lượng tín hiệu này, như vậy sẽ rất lâu chúng ta mới có thể tìm được câu trả lời cho câu hỏi kia.Trong ngành công nghệ thông tin có một bài toán quen thuộc đó là bài toán phá mã. Một phương pháp phá mã đơn giản nhất là duyệt toàn bộ, ta thử lần lượt tất cả trường hợp có thể của khóa cho đến khi tìm được khóa đúng. Độ dài của khóa sẽ quyết định đến số lượng các phép thử, ví dụ với hệ mã hóa DES sử dụng 56 bit làm khóa, tức là sẽ có 256 = 72x1016 giá trị có thể của khóa. Nếu sử dụng một máy tính bình thường có tốc độ tính toán 1 giải mã /μs sẽ phải mất khoảng 1142 năm, thời gian này là quá lâu so với tuổi thọ của thông tin. Muốn phá mã nhanh có thể dùng một máy tính chuyên dụng (giá khoảng 250.000$) có thể phá mã trong 3 ngày. Nhưng đó là trường hợp sử dụng 56 bit làm khóa, nếu sử dụng khóa với độ dài 128 bit hay 126 bit thì máy tính đó cũng tỏ ra không hiệu quả.Trong y học cũng có nhiều dự án với khối lượng tính toán lớn, dự án “Help Defeat Cancer [10]” là một dự án nghiên cứu khả năng chống căn bệnh ung thư. Với dự án này, các nhà nghiên cứu cần phân tích số lượng lớn mô ung thư cùng một lúc, nếu dùng một máy tính thông thường mất khoảng 168 năm, như vậy là quá lâu vì chúng ta cần tìm ra phương pháp trị bệnh ung thư càng sớm càng tốt.Trong nhiều ngành khoa học khác như toán học, sinh học … cũng có nhiều bài toán lớn được đặt ra, việc giải quyết những bài toàn này giúp phát triển các ngành khoa học phục vụ cuộc sống, Vì vậy nhu cầu giải quyết những bài toán như thế là rất thiết thực Ngày nay mạng máy tính phát triển mạnh, nhất là mạng Internet với hàng triệu máy tính kết nối với nhau. Đối với người dùng bình thường công suất tính toán của máy tính thường không được sử dụng hết. Trong những khoảng thời gian máy tính nhàn rỗi, khả năng tính toán của nó không được tận dụng. Vậy tại sao ta không sử dụng khả năng tính toán đó để giải quyết những bài toán phức tạp trên? Mỗi máy tính khi nhàn rỗi có thể sử dụng để tính toán một phần nhỏ của bài toán, nhiều máy tính cùng tham gia tính toán sẽ tao lên một hệ thống tính toán hết sức mạnh mẽ. Nếu chúng ta có thể kết nối hàng triệu máy tính trên Internet, chúng ta sẽ tạo ra một mạng lưới tính toán khổng lồ, khi đó những bài toán lớn có thể được giải quết trong thời gian ngắn.Để mọi người tham gia tính toán cho một dự án nào đó, họ cần biết về dự án đó, và biết cách để có thể sử dụng máy tính của mình tham gia vào hệ thống tính toán. Vì vậy ta cần quảng bá cho người dùng biết về những dụ án tính toán, và cung cấp cho họ những công cụ để tham gia vào hệ thống tính toán.Mạng xã hội ngày nay rất phát triển, Facebook là một mạng xã hội có lượng người dùng lớn nhất hiên nay. Nó có thể là một nơi lý tưởng để quảng bá thông tin về những dự án tính toán. Trên Facebook bạn có thể giao lưu, liên lạc với bàn bè, với rất nhiều người cùng tham gia Facebook. Khi một người dùng Facebook tham gia vào một dự án tính toán, họ có thể giới thiệu cho bạn bè, người thân hay một ai đó mà họ quen biết trên Facebook. Những dự án tính toán thường là những dự án có ích cho xã hội nên mọi người sẽ rất sẵn lòng tham gia vào dự án tính toán.Một vấn đề có thể khiến mọi người ngại tham gia vào hệ thống tính toán đó là các hệ thống tính toán hiện nay, thường bắt người dùng phải cài một phần mền lên máy của mình để tham gia vào việc tính toán. Bất kỳ một máy tính nào muốn tham gia vào hệ thống tính toán cũng cần cài đặt phần mềm này. Vậy nếu có thể xây dựng một hệ thống tính toán phân tán, mà người dùng không cần cài đặt phần mền vẫn có thể tham gia vao hệ thống sẽ giúp khả năng huy động được lượng người dùng lớn, tình nguyện tham gia vào dự án tính toán.Web là một một công cụ rất hữu ích cho chúng ta, nó thực sự đã thay đổi cuộc sống của chúng ta. Một trang web với một chương trình applet có thể thay thế cho phần mềm tham gia vào hệ thống tính toán. Khi người dùng truy cập vào trang web, chương trình applet sẽ chạy và thực thi việc tính toán. Chúng ta có thể vào web ở bất kỳ máy tính nào có kết nối mạng Internet, và ngay lập tức có thể tham gia vào công việc tính toán. Tích hợp trang web đó vào một ứng dụng Facebook sẽ tạo thành một công cụ tuyệt vời để phát triển các dự án tính toán. Theo thông kê mới nhất của Nielsen (một công ty khảo sát thị trường) cho thấy Facebook là địa chỉ gây tốn thời gian nhất của người dùng trên Web. Người dùng Facebook cũng bỏ thời gian lên mạng gấp 3 lần so với người không tham gia mạng lưới giao tiếp xã hội này.Một ứng dụng Facebook có thể sử dụng như những phần mềm tham gia vào hệ thống tính toán phân tán, đó sẽ là một phướng án tốt để mở rộng hệ thống tính toán phân tán, tăng số người tham gia vào hệ thống, từ đó tăng khả năng tính toán1.2 Nội dung khóa luậnTrong khóa luận này chúng tôi trình bày một số nghiên cứu về các hệ thống tính toán phân tán, các Middleware phổ biến dùng trong các hệ thống tính toán phân tán. Bước đầu triển khai một hệ thống tính toán phân tán, với một ứng dụng Facebook được sử dụng để người dùng có thể tham gia vào hệ thống tính toán.Nội dung chi tiết khóa luận gồm 5 chương:Chương I: Giới thiệu về khóa luận, đặt ra vấn đề cần giải quyết trong khóa luận.Chương II: Giới thiệu một số hệ thống tính toán phân tán, kiến trúc của hệ thống và đưa ra những so sánh. Ba hệ thống được giới thiệu là BOINC, Condor, Globus đây là 3 hệ thống phổ biến hiện nay.Chương III: Trình bày kiến trúc hệ thống tính toán phân tán sử dụng ứng dụng Facebook thay thế cho phần mềm . Chương IV: Trình bày cách cài đặt chương trình, triển khai một số ứng dụng tính toán phân tán trên hệ thống và kết quả.Chương V: Tổng kết, nhận xét về hệ thống, những thành quả đã đạt được và những kế hoạch phát triển của dự án. Chương II: Các hệ thống tính toán phân tán2.1 BOINC 2.1.1: Giới thiệuBOINC [8] viết tắt của Berkeley Open Infrastructure for Network Computing (Cơ sở hạ tầng mã nguồn mở cho tính toán mạng) là một phần mềm trung gian cho việc tính toán tình nguyện và tính toán lưới. Ban đầu BOINC được xây dựng để phục vụ dự án SETI@home, một dự án tìm kiếm tín hiệu ngoài trái đất. Sau đó nó trở lên phổ biến và được sử dụng cho nhiều dự án tính toán khác nhau trong nhiều lĩnh vực như toán học, y học, sinh hoc… BOINC là một phần mềm mã nguồn mở, vì vậy những nhà phát triển có thể tải mã ngồn về để cấu hình và cài đặt theo ý muốn.2.1.2: Kiến trúc BOINCHệ thống BOINC gồm có 2 thành phần chính là hệ thống Server và phần mềm (Hình 2.1)ServerThành phần chính của BOINC là Backend Server, server có thể chạy trên một hoặc nhiều máy tính khác nhau, điều này giúp cho hệ thống BOINC dễ dàng mở rộng quy mô của dự án. BOINC Server chạy trên nền tàng hệ điều hành Linux và sử dụng APACHE, PHP và MySQL làm nền tảng cho hệ thống web và cơ sở dữ liệu.Các ứng dụng tính toán chạy trên máy tính thành viên, kết quả được gưi lên cơ sở dữ liệu của ứng dụng tính toán, tại đây nó sẽ được xử lý. Trước khi kết quả được gửi lên cơ sở dữ liệu của ứng dụng tính toán, nó được kiểm tra tính đúng đắn bởi Server Backend. Server Backend kiểm tra tính đúng đắn của kết quả bằng cách gửi các workunit tới nhiều máy khác nhau, và so sánh kết quả nhận được của một workunit khác nhau.Workunit là một khối lượng tính toán nhỏ của bài toán, được thực hiện trên máy tính . Một workunit gồm nhiều Task, Result là kết quả của một task, Server sẽ tự động tạo ra những tập kết quả tương ứng với các workunit khi workunit được tạo (không phải là result thật, mà chỉ là một thể hiện của kết quả), các result này được lưu vào cơ sở dữ liệu, khi một task hoàn thành và gửi kết quả lên server, result tương ứng trong cơ sở dữ liệu của server sẽ được đánh đấu là đã [...]... hiện việc tính toán bằng một chương trình applet, nên người dùng không cần phải tải về và cài đặt các chương trình tính toán trên máy tính của mình Người dùng có thể truy cập vào trang web của ứng dụng để thực hiện việc tính toán 3.3: Ứng dụng tính toán 3.3.1: Định nghĩa Là những ứng dụng java được chạy trên hệ thống tính toán phân tán, thực hiện việc tính toán một bài toán nào đó Những bài toán này... vị tính toán nhỏ của một ứng dụng tính toán, được thực thi trên máy tính Node Một ứng dụng tính toán lớn muốn tăng hiệu suất tính toán cần được chia nhỏ làm nhiều task, để có thể phân phối tới nhiều máy tính Node thực thi, làm tăng hiệu năng tính toán của ứng dụng Một Task được những người triển khai ứng dụng tính toán định nghĩa, chúng được quản lý bởi server application Để thực thi một task, máy tính. .. đó Những bài toán này thường là những bài toán có khối lượng tính toán lớn, nếu thực thi trên một máy tính thì thời gian tính toán sẽ rất lâu, hoặc cần có những máy tính có khả năng tính toán cao, các máy tính loại này thường rất đắt.Vì vậy muốn tăng tốc độ tính toán cần có một lượng lớn máy tham gia vào việc tính toán, để làm được điều này, một ứng dụng tính toán cần được chia thành nhiều phần, mỗi... chạy ứng dụng, không cần sử dụng hết các thành phần 2.4.2 Độ phức tạp cho người phát triển ứng dụng BOINC Cung cấp hệ thống API cho người phát triển ứng dụng tính toán, nhưng người phát triển viết ứng dụng tính toán dựa trên API được BOINC cung cấp Ứng dụng tính toán chủ yếu được viết bằng ngôn ngữ C, cung có thể viết bằng ngôn ngữ Java Condor Không cung cấp API cho người phát triển, các ứng dụng tính. .. nhiều máy tính khác nhau để tính toán Nhứng ứng dụng tính toán được viết dựa vào một API được cung cấp bởi hệ thống JPPF 3.3.2: JPPF API JPPF API cung cấp những thư viện cho người lập trình phát triển những ứng dụng tính toán của mình JPPF Frame Work cung cấp hệ thống các lớp để tạo kết nối, thực hiện việc phân phối Task, và các chức năng quản lý Người phát triển ứng dụng khi muốn triển khai ứng dụng tính. .. trickling: Gửi các thông tin tới server trước khi các workunit hoàn thành, điều này giúp cho việc đánh giá để có thể gủi một workunit mới kịp thời, giúp cho việc tính toán nhanh hơn, giảm tối thiểu thời gian nhàn rỗi của máy + Locality Scheduling: Chỉ gủi các workunit(không gửi các file cần thiết) tới các máy đã có các file cần thiết để nhanh chóng thực thi workunit + Phân phối các workunit dựa vào các tham... tính toán các bài toán khoa học, những ứng dụng này là đặc trưng cho từng dự án tính toán phân tán Những ứng dụng khoa học sử dụng BOINC deamon để tải về và gửi đi những workunit, hay để trao đổi những thông tin thống kê với server + Một boincmgr (boincmgr.exe): là một giao diện tương tác với lõi của ứng dụng( core ) sử dụng remote procedure call Mặc định core chỉ cho phép kết nối từ cùng một máy tính, ... Node là những máy tính tham gia vào những dự án tính toán, máy tính Node sử dụng bộ nhớ và tài nguyên CPU trong những lúc máy tính rảnh rỗi, để phục vụ cho việc tính toán Khi một máy Node chạy ứng dụng trên Facebook, một applet sẽ được chạy, applet này thực hiện việc kết nối tới Server Project mà người dùng chọn nhận những task và file input từ Server Project, thực thi chúng trên máy tính Node, và... người phát triển ứng dụng để đặt ra những thuật toán so sánh, hay những hàm đánh giá các kết quả, hoặc đơn giản là so sánh các bit Nếu các kết quả trùng nhau nó sẽ được coi là hợp lệ và được sử dụng làm kết quả của workunit Tiếp đó deamon Assimilator thực hiện việc xử lý các kết quả hợp lệ dựa trên code của dự án, việc xử lý này là phụ thuộc vào từng dự án, có dự án cần phân tích các file kết quả và... phần mềm BOINC về để tham gia vào lưới tính toán Dễ dàng mở rộng phạm vi của dự án Condor Khó cài đặt cho người sử dụng thông thường, thường sử dụng xây dựng một mạng lưới tính toán cho một tổ chức hay một công ty Globus Toolkit Khó khăn cho người sử dụng bình thường tham gia vào lưới tính toán Cần phải xác thực người dùngcác tài nguyên khi tham gia vào lưới tính toán Chương III: Kiến trúc hệ thống . XÂY DỰNG ỨNG DỤNG TÍNH TOÁN PHÂN TÁN TRÊN NỀN TẢNG SỨC MẠNH CÁC MÁY TÍNH CÁ NHÂNKHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin Cán. NÔITRƯỜNG ĐẠI HỌC CÔNG NGHỆNguyễn Chí CôngXÂY DỰNG ỨNG DỤNG TÍNH TOÁN PHÂN TÁN TRÊN NỀN TẢNG SỨC MẠNH CÁC MÁY TÍNH CÁ NHÂNKHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH

Ngày đăng: 23/11/2012, 15:05

Hình ảnh liên quan

Hình 2.1 Kiến trúc hệ thống BOINC - Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

Hình 2.1.

Kiến trúc hệ thống BOINC Xem tại trang 12 của tài liệu.
Hình 2.2 Kiến trúc hệ thống Condor - Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

Hình 2.2.

Kiến trúc hệ thống Condor Xem tại trang 17 của tài liệu.
Hình 2.3 Kiến trúc hệ thống Globus - Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

Hình 2.3.

Kiến trúc hệ thống Globus Xem tại trang 19 của tài liệu.
Hình 3.1 Kiến trúc tổng thể hệ thống - Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

Hình 3.1.

Kiến trúc tổng thể hệ thống Xem tại trang 24 của tài liệu.
Hình 3.2 Kiến trúc chi tiết hệ thống - Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

Hình 3.2.

Kiến trúc chi tiết hệ thống Xem tại trang 26 của tài liệu.
Hình 3.3 Mô hình kết nối TCP/IP - Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

Hình 3.3.

Mô hình kết nối TCP/IP Xem tại trang 28 của tài liệu.
Thông tin cấu hình server được lưu trong một file cấu hình. - Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

h.

ông tin cấu hình server được lưu trong một file cấu hình Xem tại trang 37 của tài liệu.
Cấu hình bằng tay. - Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

u.

hình bằng tay Xem tại trang 38 của tài liệu.
initPools(): phương thức này đọc những thông tin trong file cấu hình và gọi phương thức newconnection để tạo kết nối tới Server Task. - Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

init.

Pools(): phương thức này đọc những thông tin trong file cấu hình và gọi phương thức newconnection để tạo kết nối tới Server Task Xem tại trang 40 của tài liệu.
Chúng ta có thể cấu hình cơ chế khôi phục khi kết nối giữa Server Application và Server Task gặp sự cố, với những thông tin cấu hình như trên,  Server Application sẽ thực hiện việc khôi phục lại kêt nối sau 1s khi kết nối  bị ngắt, nó sẽ cố gắng kết tạo k - Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

h.

úng ta có thể cấu hình cơ chế khôi phục khi kết nối giữa Server Application và Server Task gặp sự cố, với những thông tin cấu hình như trên, Server Application sẽ thực hiện việc khôi phục lại kêt nối sau 1s khi kết nối bị ngắt, nó sẽ cố gắng kết tạo k Xem tại trang 43 của tài liệu.
Với việc cấu hình này sẽ cho phép Server Application cũng tham gia vào việc tính toán như một node - Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

i.

việc cấu hình này sẽ cho phép Server Application cũng tham gia vào việc tính toán như một node Xem tại trang 44 của tài liệu.
Hình 4.1 Mô tả phân chia task tới những máy tính Node - Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

Hình 4.1.

Mô tả phân chia task tới những máy tính Node Xem tại trang 48 của tài liệu.
Hình 4.2 Biểu đồ thời gian thực thi khi có một máy tính - Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

Hình 4.2.

Biểu đồ thời gian thực thi khi có một máy tính Xem tại trang 49 của tài liệu.
Hình 4.3 là biểu đồ thời gian thực thi khi có 3 máy tính, ta thấy thời gian thực thi trung bình khoảng 30ms - Xây dựng ứng dụng tính toán phân tán trên nền tảng sức mạnh các máy tính cá nhân

Hình 4.3.

là biểu đồ thời gian thực thi khi có 3 máy tính, ta thấy thời gian thực thi trung bình khoảng 30ms Xem tại trang 49 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan