1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

52 998 6
Tài liệu đã được kiểm tra trùng lặp

Đ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 52
Dung lượng 565,5 KB

Nội dung

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

Trang 2

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

Trang 3

Tóm tắt nội dung

Tí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ínhkhông thể giải quyết được Ngày nay có khá nhiều middleware phục vụ cho việc xâydự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 đầuxâ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 đượctí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 clientnà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ệusuất của những hệ thống tính toán phân tán.

III

Trang 4

Mục lục

Tóm tắt nội dung IMục lục IIDanh 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ính toán phân tán 4

Trang 7

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áy tính Node 47

Hình 4.2: Biểu đồ thời gian thực thi khi có một máy tính 47

Hình 4.3: Biểu đồi thời gian thực thi khi có ba máy tính 48

VII

Trang 8

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 nhaunhữ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ọckỹ 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ănminh 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ấtnhiề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ềuthờ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ánphá 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ượttất cả trường hợp có thể của khóa cho đến khi tìm được khóa đúng Độ dài củakhó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ụng56 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ộtmá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 1142s sẽ phải mất khoảng 1142nă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 3ngà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 “HelpDefeat 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ùngmộ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ềubà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ácngà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

Trang 9

Ngày nay mạng máy tính phát triển mạnh, nhất là mạng Internet với hàngtriệ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ínhtoán của máy tính thường không được sử dụng hết Trong những khoảng thời gianmá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 takhô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ứcmạ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 tasẽ 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ể đượcgiả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ínhtoá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ượngngườ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 tinvề 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 thamgia 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ự áncó í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ênmá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 thamgia 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âydự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ềnvẫn có thể tham gia vao hệ thống sẽ giúp khả năng huy động được lượng ngườidù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 đổicuộ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àotrang 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.

Trang 10

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 giannhất của người dùng trên Web Người dùng Facebook cũng bỏ thời gian lên mạnggấ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àohệ 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ínhtoá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á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ốngtính toán phân tán, các Middleware phổ biến dùng trong các hệ thống tính toánphâ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ụngFacebook đượ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

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.

Trang 11

Chương II: Các hệ thống tính toán phân tán2.1 BOINC

2.1.1: Giới thiệu

BOINC [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 choviệ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ụcvụ 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ênphổ 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ựcnhư 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ữngnhà 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 BOINC

Hệ 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)

Thành phần chính của BOINC là Backend Server, server có thể chạy trênmộ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ềuhành Linux và sử dụng APACHE, PHP và MySQL làm nền tảng cho hệ thốngweb 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ưilê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 khikế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 tratính đúng đắn bởi Server Backend Server Backend kiểm tra tính đúng đắn củakế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ếtquả 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ệntrê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 khiworkunit được tạo (không phải là result thật, mà chỉ là một thể hiện của kếtquả), 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ửikết quả lên server, result tương ứng trong cơ sở dữ liệu của server sẽ được đánh

Trang 12

đấu là đã hoàn thành Khi tập tất cả result của một workunit được đánh dấu,workunit đó được báo là đã hoàn thành

BOINC server cung cấp một vài tính năng như:

+ Validator: Chức năng này kiểm tra kết quả gửi về từ có chính xác hay

không Một workunit được gửi tới nhiều máy cùng thực thi, kết quả gửi về từnhững máy đó được server so sánh, kết quả có tỉ lệ cao nhất được coi là kết quảđúng.

+ Homogeneous redundancy: Chức năng này sẽ chỉ gửi một workunit tới

những máy tính có cùng cùng một platform (cùng hệ điều hành…), điều này sẽgiúp quá trình validator được dễ dàng và chính xác hơn.

+ Workunit trickling: Gửi các thông tin tới server trước khi các workunithoàn thành, điều này giúp cho việc đánh giá để có thể gủi một workunit mới kịpthờ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ủamá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 số của máy : Chức năng nàyđảm bảo việc gửi workunit tới những máy tính có khả năng thực thi workunitđó.

BOINC server bao gồm 2 chương trình CGI và thường có 5 deamons

- Một chương trình CGI lập lịch xử lý các yêu cầu từ phía , nhận cácworkunit đã hoàn thành và gửi đi những workunit mới.

- Một chương trình CGI xử lý việc upload file.

- 5 deamons:

+ Feeder+ Validator+ Assimilator

+ File_deleter+ Transitioner

Trang 13

Hình 2.1 Kiến trúc hệ thống BOINC

Một workunit được chia thành nhiều task, mỗi task tương ứng với mộtresult trong cơ sở dữ liệu, khi task hoàn thành gửi về server, result tương ứngđược đánh dấu đã hoàn thành Một deamons Feeder có trách nhiệm đọc các tasktrong cơ sở dữ liệu và lưu chúng trong các khối nhớ, bộ lập lịch sẽ đọc các tasktrong khối nhớ và gửi chúng tới , Feeder sẽ định kỳ là rỗng các khe trong khốinhớ sau khi task được gửi đi.

Sheduling

Core ClientProject back end

BOINC Server Complex

Application Client

Client APIServer

Project Specific componentBOINC components

Trang 14

Khi các result của một workunit được thực hiện xong và gửi về server,deamon Validator sẽ tiến hành so sánh chúng, Validator có thể được viết bởingườ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ùngnhau 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ầnphân tích các file kết quả và lưu chúng vào cơ sở dữ liệu, hoắc đơn giản chỉ làcopy từ nới này sang nơi khác.

Deamon File_deleter có nhiệm vụ xóa những output đã được xử lý bởi

Assimilator và các file input không cần thiết.

Deamon Transitioner xử lý việc chuyển trạng thái của workunit và result,nó cũng tạo ra các result từ workunit khi chúng được tạo ra, hay tạo thêm nhữngresult nếu cần thiết(cho những trường hợp result không thoa mãn trong quátrình validator hoặc không gửi được lên server).

BOINC Client

BOINC Client là một kết cấu gồm một số ứng dụng độc lập, chúng sử

dụng cơ chế BOINC remote procedure call (thủ tục gọi điều khiển từ xa củaBOINC) để liên lạc với nhau.

Những thành phần ứng dụng gồm có:

+ Chương trình BOINC , đây là một chương trình đóng vai trò là lõi của ,nó có những tính năng và thực hiện những nhiệm vụ sau:

 Tạo và duy trì kết nối giữa và server

 Tải về những ứng dụng khoa học, cung cấp một cơ chế đăng nhậpthống nhất để đảm nảo rằng các ứng dụng khoa học được cập nhật, lập lịchsử dụng tài nguyên CPU của các ứng dụng khoa học.

Trang 15

 BOINC chạy trên Unix như một chương trình deamon TrênWindows, ban đầu BOINC không phải là một dịch vụ danh cho Windowsmà chỉ là một ứng dụng bình thường sau này có một vài phiên bản dànhcho windows và nó là một tùy chọn trong quá trình cài đặt.

 Phụ thuộc vào cách cài đăt BOINC nó có thể là một chương trìnhchạy nền hoặc được chạy khi người dùng khởi động máy.

+ Một hoặc một vài ứng dụng khoa học: Những ứng dụng khoa học nàythực hiện việc tính toán các bài toán khoa học, những ứng dụng này là đặctrưng cho từng dự án tính toán phân tán Những ứng dụng khoa học sử dụngBOINC deamon để tải về và gửi đi những workunit, hay để trao đổi nhữngthô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épkết nối từ cùng một máy tính, nhưng nó có thể cấu hình để có thể kết nối từnhững máy tính khác.

+ BOINC screensaver: cung cấp một framework nhờ đó các ứng dụngkhoa học có thể hiển thị hình ảnh trên cửa sổ screensaver của người dùng.Thông thường BOINC screensaver hiển thị những hoạt ảnh thể hiện chi tiết củaứng dụng khoa học, hoặc những biểu đồ hay những đồ thị thể hiện việc tínhtoán.

2.1.3 Một số dự án đang thực hiện bởi BOINC

SETI@Home: SETI@Home [8] là một thí nghiệm khoa học, sử dụng nhữngmáy tính kết nối trên Internet để tìm kiếm nền văn minh ngoài trái đất Đây làmột phần của dự án SERENDIP (Search for Extraterrestrial Radio Emissionsfrom Nearby Developed Intelligent Populations) của đại học California,Berkeley Đài thiên văn Arecibo thu thập những tin hiệu trên không trung, sauđó những tín hiệu này được gửi tới những máy tính tham gia vào dự án để tínhtoán và phân tích Các kết quả được trả lại server của dự án.

Để tham gia vào dự án, người dùng phải tải về và cài đặt phần mềm tínhtoán trên máy của mình, mỗi khi máy tính rỗi, phần mềm sẽ tự động tải về mộtlượng dữ liệu (khoảng 300KB) và tiến hành tính toán.

Thông tin chi tiết về dự án có tại trang chủ của dự án

http://setiathome.ssl.berkeley.edu/

Trang 16

ABC@Home: ABC@Home [7] là một dự án toán học nhằm tìm ra bộ 3 số a,bvà c để chứng minh cho giả thuyết về bộ 3 số ABC (ABC conjecture), giảthuyết 3 số ABC nêu lên rằng, chỉ tồn tại duy nhất 3 số a,b và c sao cho log(c) /log(rad(a * b * c)) > h với h là một số thực lớn hơn 1 Ba số a,b,c thỏa mãn điềukiện trên khi nó thỏa mãn những điều kiện sau

+ a + b = c+ a<b<c

+ a,b,c không có ước số chung+ c > rad(a * b * c)

Việc chứng minh được giả thuyết ABC sẽ giúp giải đáp nhiều câu hỏitrong toán học dự án đang được thực hiện bởi trường đại học Leiden, thông tinvề dự án có trên trang chủ http://abcathome.com/

2.2: Condor2.2.1 Giới thiệu

Condor là kết quả của một dự án nghiên cứu trong trường đại học Mandison, Condor là một hệ thống quản lý, lập lịch cho những công việc cần tính toánlớn, người dùng gửi công việc của họ lên Condor, Condor lưu chúng trong hàng đợicủa nó, lựa chon nơi nào, khi nào sẽ thực thi công việc đó, và báo cho người dùng kếtquả khi hoàn thành Khác với những hệ thống cổ điển, Condor không đòi hỏi cần cónhững máy móc chuyên dụng, Condor sẽ gửi những công việc (jobs) tới những máyphù hợp với yêu cầu của công việc đó.

Wisconsin-2.2.2 Kiến trúc

Hệ thống Condor [1] gồm 3 thành phần chính: Central Manager, SubmitMachine, Execution Machine (Hinh 2.2).

Central Manager

Central Manger có nhiệm vụ thu thập những nguồn tài nguyên, và những

thông tin về tất cả các máy tính tham gia vào mạng lưới tính toán, và đưa ranhững chính sánh hoạt động chung cho cả mạng lưới, Dựa vào những thông tin

Trang 17

này, một job sẽ được gửi tới những máy có tài nguyên phù hợp với yếu cầu tínhtoán của nó.

Những deamon chính chạy trên Central Manager.

Condor_collector: Deamon này chịu trách nhiệm thu thập thông tin vềtrạng thái của những máy tính tham gia vào Condor Pool(một tập hợpmáy tính tham gia vào hệ thống phân tán) Tất cả những deamons khácđịnh kỳ gửi ClassAd tới collector ClassAd là những bản ghi về tàinguyên cần thiết của một job cũng như tài nguyên có của những máytham gia vào mạng lưới, điều này giúp cho việc gửi job tới đúng nhữngmáy có thể thực thi chúng Condor_collector có thể coi như một cơ sởdữ liệu động của ClassAd Lệnh condor_status có thể dùng để truy vấntới collector về những thông tin của hệ thống Condor Những deamonkhác cũng có thể truy vấn tới collector để lấy những thông tin quantrọng như địa chỉ sử dụng để gửi lệnh tới những máy tính ở xa.

Condor_negotiator: Deamon này chịu trách nhiệm tạo ra tất cả nhữngkết nối trong hệ thống Condor Nó cũng có trách nhiệm quản lý quyềnưu tiên của những người dùng trong hệ thống

Submit Machine

Submit Machine cho phép người dùng gửi những job tới một hàng đợi ảo ở

trên máy cục bộ (scheduler) Scheduler sẽ đàm phán với Central Manage để yêucầu Central Manager cấp cho những tài nguyên cần thiết cho việc thực thi job.Khi có một tài nguyên được cấp cho job, Scheduler sẽ gọi chương trình deamonShadow, chương trình này chịu trách nhiệm quản lý việc thực thi job đó, đồngthời thực thi những công việc như: kiểm tra trạng thái hoàn thành, lập lịch lạitrong các trường hợp job bị lỗi, hay thực thi những lệnh gọi hệ thống của nhữngmáy tính đang chạy job.

Trang 18

Hình 2.2 Kiến trúc hệ thống Condor

Những deamon chính chạy trên Submit Machine

Condor_schedd: Deamon này có nhiệm vụ miêu tả job trong CondorPool, người dùng có thể gửi những job tới một condor_schedd đangchạy, những job này được lưu trong job queue, những demons khác cónhiệm vụ xem và thao tác tới job queue như: condor_submit, condor_q,condor_rm sẽ kết nối tới condor_schedd để thực thi công việc của nó.

Condor_shadow: Deamon này sẽ chạy khi một job được thực thi, khi mộtjob hoàn thành, deamon này thực hiện việc truyền file, ghi những log file

Submit Machine

Controlling Deamons schedd

Controlling Deamonsstartd/starter

User’s job

User’s codeCondor_Syscall_Lib

Checkpoint file and saved to disk

System call performed

Central Manager

Execution Machine

Trang 19

và đưa ra những bản thống kê về quá trình thực thi job Jobs được liênkết tới Condor's Standard Universe, cái mà thực thi những lệnh gọi hệthống thông qua condor_shadow Tất cả những lệnh gọi hệ thống đượcthực hiện trên máy tính từ xa đều được gửi qua mạng tớicondor_shadow, condor_shadow sẽ thực thi những lệnh gọi thế thống(như vào ra file) rồi gửi kết quả trả lại cho máy tính đó.

Execution Machine

Exeution Machine chạy trên các máy tính tham gia vào lưới tính toán,

deamon Startd thực thi những job mà Submit Machine gửi tới, khi chạy nó gửitới Central Manager những thông tin về khả năng thực thi của nó, những thôngtin như dung lượng bộ nhớ hay tốc độ của CPU Một deamon khác là Starterchịu trách nhiệm quản lý việc thực thi job trên máy đó, nó có thể đưa ra nhữngchính sách riêng để quản lý việc thực thi job

Những deamon chính chạy trên Execution Machine

Condor_startd: Deamon này chạy trên các máy tính tham gia vàoCondor Pool, nó như một thể hiện của máy tính tham gia vào mạng lướitính toán Condor_startd gửi ClassAd của máy tính mà nó chạy tớiCentral Manager, những thông tin trong ClassAd gồm có những thôngtin về khả năng thực thi của máy đó, cũng như chính sách hoạt động củamáy đó Một máy tính chạy condor_startd sẽ có thể thực thi job,condor_startd chịu tránh nhiệm thi hành những chính sách thực thi mộtjob trên máy tính đó, như việc chạy, tạm dừng, khôi phục, bỏ không,hoặc hủy bỏ job Khi condor_startd chạy và sẵn sàng thực thi job, nó sẽgọi tới condor_starter.

Condor_starter: Deamon này chịu trách nhiệm thiết lập môi trường thựcthi và điều khiểm việc thực thi job Khi một job đang được thực thi,condor_starter lấy thông tin về trạng thái hoàn thành của job và gửinhững thông tin này lên Submit Machine, khi job hoàn thành deamonnày sẽ ngừng.

Trang 20

2.3: Globus Toolkit2.3.1 Giới thiệu

Globus Toolkit [6] là một sản phẩm của Gobus Alliance, một tổ chức quốc tế

chuyên về phát triển những công nghệ dựa trên nền tảng tính toán lưới Globus Toolkitlà một phần mêm mã nguồn mở, cho phép xây dựng lưới tính toán Nó cho phép ngườidùng chia sẻ khả năng tính toán, cơ sở dữ liệu hay những công cụ trong một tổ chức,cơ quan hay một vùng địa lý rộng lớn.

2.3.2 Kiến trúc

Globus Toolkit gồm 3 nhóm dịch vụ chính, có thể truy cập tới thông qua một

lớp dịch vu bảo mật (Hình 2.3)

- Resource Management- Data Management- Information Services

Hình 2.3 Kiến trúc hệ thống Globus

Third Party User – Level Middleware

Grid Resources and Local ServicesSecurity Layer (GSI)

Grid Resource Management(GRAM,GRASS)

Grid Information Services (MDS)

Grid Data Management(Gri

dFTP, Replica Catalog)

Globus

Trang 21

Tầng Local Services bao gồm những dịch vụ của hệ điều hành, dịch vụmạng như TCP/IP, Submit Jobs, truy vấn Queues… Tầng lõi của Globus cungcấp dịch vụ bảo mật, Submit Jobs, quản lý dữ liệu, quản lý tài nguyên Tầng caohơn (Level Middleware và Application) chứa những công cụ để liên lạc vớitầng dưới, và bổ sung những chức năng còn thiếu ở tầng dưới.

Security Layer

Grid Security Infrastructure (GSI) cung cấp phương thức cho việc xácthực người dùng và đảm bảo những kết nối, nó sử dụng những công cụ nhưSSL (Security Sockets Layer), PKI (Public Key Infrastructure) và X.509 GSIcung cấp những dịch vụ, giao thức và những thư viện để thực hiện những việcsau.

Xác thực một người dùng tham gia sử dụng dịch vụ lưới tính toán.Xác thực các nguồn tài nguyên tham gia vào lưới tính toán dựa.Mã hóa dữ liệu.

Khi một người dùng muốn truy cập vào hệ thống, họ cần có một tàikhoản được chứng thực bởi một cơ quan chứng thực Hầu hết các dịch vụ củahệ thống đều yêu cầu xác thực người dùng trước khi cung cấp cho họ, điều nàyđảm bảo cho việc bảo mất dự liệu cho cả hai bên,

Resource Management

Resource Management cho phép phân phối tài nguyên phù hợp cho từngyêu cầu của Job, điều khiển việc thực thi Job và thu thập kết quả tính toán.Nhóm này có 2 thành phần chính.

Globus Resource Allocation Manager (GRAM): GRAM cung cấp việcđiều khiển và báo cáo trạng thái quá trình thực thi của các máy Khi mộtgửi một Job tới hệ thống, một deamon Gatekeeper sẽ kiểm tra tính xácthực của , nếu xác thực, gatekeeper sẽ khởi chạy một Job manager đểquản lý việc thực thi Job đó Job manager được tạo ra độc lập trên nhữngbộ lập lịch bộ phận GRAM có những bộ lập lịch như Portable BacthSystem (PBS), Load Sharing Facility (LSF), và LoadLeveler.

Những yêu cầu chi tiết của Job được chỉ định rõ trong GlobusResource Specification Language (RSL), đây là một thành phần của

Trang 22

GRAM, RSL miêu tả rõ những tài nguyên một Job cần để thực thi nhưkích thước tối thiếu của bộ nhớ, hay tốc độ của CPU.

Globus Access to Secondary Storage (GASS): GASS là một cơ chế truycập file, nó cho phép các ứng dụng có thể thực hiện những thao tác vớifile từ xa như đọc, viết vào file GASS sử dụng để cung cấp file cho việcthực thi Job và nhận các kết quả khi Job hoàn thành Nó cũng được sửdụng để truy cập các dòng xuất nhập chuẩn và các dòng báo lỗi.

Information Services

Information Services quản lý thông tin của những node tham gia vào hệthống lưới Thành phần chính của nó là Monitoring and Discovery Service(MDS).

MDS cung cấp cơ chế cho phép công bố và truy vấn những thông tin,các node có thể gửi những thông tin của nó lên server, và có thể truy vấn tớiserver để lấy những thông tin cần thiết MDS có 3 lớp.

Information Providers (IPs): Lớp dưới cùng có nhiệm vụ thu thập thôngtin và trạng thái của các tài nguyên, chuyển những thông tin đó theo địnhdạng mà nó quy định.

Grid Resource Information Service (GRIS): Lớp này là một deamon,chạy trên các máy tính tham gia vào lưới GRIS lấy những thông tin trêncác máy đó và gửi những thông tin mà nó lấy được về server quản lýthông tin GRIS thường xuyên update những thông tin này sau mộtkhoảng thời gian time-to-live (là khoảng thời gian thông tin về máy cònhiệu lực) được quy định bởi IPs.

Grid Information Index Service (GIIS): Thực hiện việc đánh chỉ mụcnhững thông tin về các tài nguyên.

Data Management

Data Management cung cấp những tiện ích và những thư viện cho việcvận chuyển, lưu trữ và quản lý dữ liệu được tao ra bởi các ứng dụng tính toán.Những thành phần của nhóm này có:

GridFTP: Là một mở rộng của giao thức FTP, cung cấp khả năng bảomật, tin cậy, hiệu suất cao trong việc vận chuyển dữ liệu trong môi

Trang 23

trường lưới Ngoài những chức năng như chuẩn FTP, GridFTP cung cấpkhả năng xác thự dữ liệu truyền, được hỗ trợ bởi GSI, truyền song songvà bán song song.

Replica Location and Management: Thành phần này cho phép một file cóthể được lưu trữ tại nhiều nơi trên hệ thống lưới Sử dụng dịch vụ củaReplica Management, một file có thể đăng ký với Replica LocationService (RLS) để tạo những bản sao của nó và lưu trữ tại nhiều nơi trênhệ thống Trong RLS một file được gán với một Logical File Name(LFN), và được lưu trong một logical collection, những bản ghi của mộtfile sẽ trỏ tới vị trí vật lý của file đó.

2.4: So sánh

2.4.1 Độ phức tạp hệ thốngBOINC

BOINC Server được thiết kết để chạy trên nền tảng Linux, có thể chạytrên Windows nhưng khó khăn trong việc triển khai.

Sử dụng APACHE, PHP, MySQL làm hệ thống web và database

2.4.2 Độ phức tạp cho người phát triển ứng dụngBOINC

Cung cấp hệ thống API cho người phát triển ứng dụng tính toán, nhưngngười phát triển viết ứng dụng tính toán dựa trên API được BOINC cung cấp.

Trang 24

Ứng dụng tính toán chủ yếu được viết bằng ngôn ngữ C, cung có thể viếtbằng ngôn ngữ Java.

Không cung cấp API cho người phát triển, các ứng dụng tính toán đượcchia thành nhiều loại Mỗi loại được viết bằng một ngôn ngữ riêng và liên kếtvới thư viện của Condor để có thể triển khai tính toán trên hệ thống Condor.Mỗi loại Job được mô tả trong những file mô tả job, những file này được lưucùng thư mục với những file thực thi.

Globus Toolkit

Cung cấp hệ thống API cho người phát triển ứng dụng tính toán.

2.4.3 Độ phức tạp cho người dùngBOINC

Người dùng có thể dễ dàng tải phần mềm BOINC về để tham gia vàolưới tính toán Dễ dàng mở rộng phạm vi của dự án.

Trang 25

Chương III: Kiến trúc hệ thống3.1: Kiến trúc tổng thể

Server Facebook AppServer Project

Server Facebook

Node NInput data,

Trang 26

Server Facebook App chứa chương trình ứng dụng facebook, ứng dụng này cóchứa một Node Applet, Node Applet là một chương trình java chạy dưới dang applet.

Node Applet là thành phần tạo kết nối tới Server Project, nhận các yêu cầu tính toán vàthực thi chúng.

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ụ choviệc tính toán Khi một máy Node chạy ứng dụng trên Facebook, một applet sẽ đượcchạ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ậnnhững task và file input từ Server Project, thực thi chúng trên máy tính Node, và gủitrả kết quả lại cho Server Project.

Server Application

Server Application nằm trên Server Project có nhiệm vụ phân chia một bàitoán thành nhiều Task và gủi những task này đến cho Server Task, đồng thờinhận kết quả trả về từ Server Task và xử lý.

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[5] Luis F. G. Sarmenta. Bayanihan: Web-Based Volunteer Computing Using Java. Proc. of the 2nd International Conference on World-Wide Computing and its Applications (WWCA'98), Tsukuba, Japan, March 3-4, 1998. Lecture Notes in Computer Science 1368, Springer-Verlag, 1998. pp. 444-461 Sách, tạp chí
Tiêu đề: Lecture Notes in Computer Science
[1] Clovis Chapman, Paul Wilson, Todd Tannenbaum, Matthew Farrellee, Miron Livny, John Brodholt, Wolfgang Emmerich, Condor services for the Global Grid, http://www.cs.wisc.edu/condor/doc/condor-ogsa-2004.pdf Link
[2] David P. Anderson, Gilles Fedak, The Computational and Storage Potential of Volunteer Computing, http://boinc.berkeley.edu/boinc_papers/internet/pa-per.pdf[3] Derek Wright, BOINC and Condor – Scavenging the Scavenger, http://bolt.berkeley.edu/ws_06/boinc_and_condor.pdf Link
[4] Jon Wakelin, Condor Globus and SRB: Tools for Constructing a Campus Grid, http://www.nesc.ac.uk/talks/556/02_Wakelin_condorGlobus.ppt Link
[6] Parvin Asadzadeh, Rajkumar Buyya, Chun Ling Kei, Deepa Nayar, Srikumar Venugopal, Global Grids and Software Toolkits:A Study of Four Grid Middleware Technologies, http://www.buyya.com/papers/gmchapter.pdf[7] http://abcathome.com/ Link
[13] PGS.TS. Vũ Đức Thi, PGS.TS. Trần Văn Lăng, PGS.TS. Nguyễn Thanh Thuỷ, GS.TSKH. Phạm Kỳ Anh, PGS.TS. Lê Anh Dũng, Tính toán lưới và một số vấn đề nghiên cứu, phát triển tính toán lưới ở Việt Nam, Hội thảo quốc gia lần thứ XI: Một số vấn đề chọn lọc của CNTT - TT Huế, 12 – 13/6/2008 Khác

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 (Trang 12)
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 (Trang 12)
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 (Trang 17)
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 (Trang 17)
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 (Trang 19)
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 (Trang 19)
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 (Trang 24)
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 (Trang 24)
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 (Trang 26)
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 (Trang 26)
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 (Trang 28)
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 (Trang 28)
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 (Trang 37)
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 (Trang 38)
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 (Trang 40)
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 (Trang 43)
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 (Trang 44)
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 (Trang 48)
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 (Trang 48)
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 (Trang 49)
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 (Trang 49)
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 (Trang 49)
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 (Trang 49)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w