Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
828,06 KB
Nội dung
I ĐẠI HỌC QUỐC GIA HÀ NÔI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Chí Công XÂY DỰNG ỨNG DỤNGTÍNHTOÁNPHÂNTÁNTRÊNNỀNTẢNGSỨCMẠNHCÁCMÁYTÍNHCÁNHÂN KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin HÀ NỘI -2010 II ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Chí Công XÂY DỰNG ỨNG DỤNGTÍNHTOÁNPHÂNTÁNTRÊNNỀNTẢNGSỨCMẠNHCÁCMÁYTÍNHCÁNHÂN KHOÁ 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 I Tóm tắt nội dungTínhtoánphântá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ínhtoánphântán giúp giải quyết những bài toán khoa học lớn mà một máytí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ínhtoánphân tán. Trong khóa luận này trình bày một số nghiên cứu về tínhtoánphâ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ínhtoánphântán phổ biến, giới thiệu mộ t số dự án tínhtoán khoa học đang được thực thi nhờ hệ thống tínhtoánphâ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ínhtoánphân tán, với phần mềm bên phía người dùng được tích hợp vào ứngdụ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ínhtoán được d ễ dàng hơn, làm tăng hiệu suất của những hệ thống tínhtoánphân tán. II Mục lục Tóm tắt nội dung I Mục lục II Danh mục các hình vẽ V Chương I : Giới thiệu 1 1.1 Đặt vấn đề 1 1.2 Nội dung khóa luận 3 Chương II: Các hệ thống tínhtoánphântán 4 2.1 BOINC 4 2.1.1: Giới thiệu 4 2.1.2: Kiến trúc BOINC 4 2.1.3 Một số dự án đ ang thực hiện bởi BOINC 8 2.2: Condor 9 2.2.1 Giới thiệu 9 2.2.2 Kiến trúc 9 2.3: Globus Toolkit 13 2.3.1 Giới thiệu 13 2.3.2 Kiến trúc 13 2.4: So sánh 16 2.4.1 Độ phức tạp hệ thống 16 2.4.2 Độ phức tạp cho người phát triển ứngdụng 16 2.4.3 Độ phức tạp cho người dùng 17 Ch ương III: Kiến trúc hệ thống 18 3.1: Kiến trúc tổng thể 18 3.2: Các thành phần chính 19 3.2.1: Server Task 20 III 3.2.1.1: Nhiệm vụ 20 3.2.1.2: Chức năng 21 3.2.1.3: Cấu hình 21 3.2.2: Server Application 23 3.2.2.1: Nhiệm vụ 23 3.2.2.2: Chức năng 23 3.2.2.3: Cấu hình 23 3.2.3: Node Applet 24 3.2.3.1: Nhiệm vụ 24 3.2.3.2: Chức năng 24 3.2.3.3: Cấu hình 24 3.3: Ứngdụngtínhtoán 25 3.3.1: Định nghĩa 25 3.3.2: JPPF API 25 3.4: Task 26 3.4.1: Định nghĩa Task 26 3.4.2: Input Data File 26 3.4.3: Result 27 Chương IV: Cài đặt hệ thống 28 4.1 Server Task 28 4.1.1 JPPFDriver 28 4.1.2 JPPFNode 30 4.1.3 Server Task Configuration 31 4.2 Server Application 33 4.2.1 JPPFClient 33 4.2.2 JPPFTask 35 4.2.3 Server Application Configuration 36 IV 4.3 Node Applet 38 4.3.1 NodeRunner 38 4.3.2 JPPFClassLoader 39 4.3.3 Node Applet Configuration 40 4.4 Một số ứngdụngtínhtoán 42 Chương V : Tổng kết 44 V Danh mục các hình vẽ Hình 2.1: Kiến trúc hệ thống BOINC 10 Hình 2.1: Kiến trúc hệ thống Condor 15 Hình 2.3: Kiến trúc hệ thống Globus Toolkit 17 Hình 3.1: Kiến trúc tổng thể hệ thống 22 Hình 3.2: Kiến trúc chi tiết hệ thống 24 Hình 3.3: Mô hình kết nối TCP/IP của hệ thống 26 Hình 4.1: Hình ảnh mô tả phân chia task tới những máytính Node 47 Hình 4.2: Biểu đồ thời gian thực thi khi có một máytính 47 Hình 4.3: Biểu đồi thời gian thự c thi khi có ba máytính 48 1 Chương I – Giới thiệu 1.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ínhtoá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áytính có công suất tínhtoá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ó 2 56 = 72x10 16 giá trị có thể của khóa. Nếu sử dụng một máytính bình thường có tốc độ tínhtoá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áytí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áytí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ínhtoá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áytí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 2 Ngày nay mạng máytính phát triển mạnh, nhất là mạng Internet với hàng triệu máytính kết nối với nhau. Đối với người dùng bình thường công suất tínhtoán của máytính thường không được sử dụng hết. Trong những khoảng thời gian máytínhnhàn rỗi, khả năng tínhtoá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ínhtoán đó để giải quyết những bài toán phức tạp trên? Mỗi máytính khi nhàn rỗi có thể sử dụng để tínhtoán một phần nhỏ của bài toán, nhiều máytính cùng tham gia tínhtoán sẽ tao lên một hệ thống tínhtoán hết sứcmạnh mẽ. Nếu chúng ta có thể kết nối hàng triệu máytínhtrên Internet, chúng ta sẽ tạo ra một mạng lưới tínhtoá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ínhtoá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ụngmáytí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ínhtoá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ínhtoán đó là các hệ thống tínhtoá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áytính nào muốn tham gia vào hệ thống tínhtoá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ínhtoánphâ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áytí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. 3 Tích hợp trang web đó vào một ứngdụ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ùngtrê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 ứngdụng Facebook có thể sử dụ ng như những phần mềm tham gia vào hệ thống tínhtoánphân tán, đó sẽ là một phướng án tốt để mở rộng hệ thống tínhtoánphân tán, tăng số người tham gia vào hệ thống, từ đó tăng khả năng tínhtoán 1.2 Nội dung khóa luận Trong 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ínhtoánphân tán, các Middleware phổ biến dùng trong các hệ thống tínhtoánphân tán. Bước đầu triển khai một hệ thống tínhtoánphân tán, với một ứngdụ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ínhtoánphâ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ínhtoánphântán sử dụngứngdụ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ố ứngdụngtínhtoánphântántrê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. [...]... hiện việc tínhtoá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ínhtoántrênmáytính của mình Người dùng có thể truy cập vào trang web của ứngdụng để thực hiện việc tínhtoán 3.3: Ứngdụngtínhtoán 3.3.1: Định nghĩa Là những ứngdụng java được chạy trên hệ thống tínhtoánphân tán, thực hiện việc tínhtoán một bài toán nào đó Những bài toán này... vị tínhtoán nhỏ của một ứngdụngtính toán, được thực thi trênmáytính Node Một ứngdụngtínhtoán lớn muốn tăng hiệu suất tínhtoán cần được chia nhỏ làm nhiều task, để có thể phân phối tới nhiều máytính Node thực thi, làm tăng hiệu năng tínhtoán của ứngdụng Một Task được những người triển khai ứngdụngtínhtoá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ínhtoán lớn, nếu thực thi trên một máytính thì thời gian tínhtoán sẽ rất lâu, hoặc cần có những máytính có khả năng tínhtoán cao, cácmáytính loại này thường rất đắt.Vì vậy muốn tăng tốc độ tínhtoá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 ứngdụngtínhtoá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 ứngdụng BOINC Cung cấp hệ thống API cho người phát triển ứngdụngtính toán, nhưng người phát triển viết ứngdụngtínhtoán dựa trên API được BOINC cung cấp 16 Ứngdụngtínhtoá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ứngdụng tính. .. chạy trênnềntàng hệ điều hành Linux và sử dụng APACHE, PHP và MySQL làm nềntảng cho hệ thống web và cơ sở dữ liệu Cácứngdụngtínhtoán chạy trênmáytính thành viên, kết quả được gưi lên cơ sở dữ liệu của ứngdụngtí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 ứngdụngtính toán, nó được kiểm tra tínhđúng đắn bởi Server Backend Server Backend kiểm tra tính. .. nhiều máytính khác nhau để tínhtoán Nhứng ứngdụngtínhtoá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 ứngdụngtínhtoán của mình JPPF Frame Work cung cấp hệ thống các lớp để tạo kết 25 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 ứngdụng khi muốn triển khai ứng dụng. .. gủi một workunit mới kịp thời, giúp cho việc tínhtoá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ácmá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 số của máy : Chức năng này đảm bảo việc gửi workunit tới những máytính có khả năng thực thi workunit đó BOINC... Node là những máytính tham gia vào những dự án tính toán, máytính Node sử dụng bộ nhớ và tài nguyên CPU trong những lúc máytính rảnh rỗi, để phục vụ cho việc tínhtoán Khi một máy Node chạy ứngdụngtrê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ênmáytính Node, và... tínhtoáncác bài toán khoa học, những ứngdụng này là đặc trưng cho từng dự án tínhtoánphântán Những ứngdụ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, ... người phát triển ứngdụ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à . 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 KHOÁ 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. 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 CÁ NHÂN KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành:. 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