Khóa luận 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 HC QUC GIA HÀ NÔI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Nguyn Chí Công  
XÂY DNG NG DNG TÍNH TOÁN PHÂN TÁN  
TRÊN NN TNG SC MNH CÁC MÁY TÍNH  
CÁ NHÂN  
KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY  
Ngành: Công NghThông Tin  
HÀ NI -2010  
I
ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Nguyn Chí Công  
XÂY DNG NG DNG TÍNH TOÁN PHÂN TÁN  
TRÊN NN TNG SC MNH CÁC MÁY TÍNH  
CÁ NHÂN  
KHOÁ LUN TT NGHIP ĐẠI HC HCHÍNH QUY  
Ngành: Công NghThông Tin  
Cán bhướng dn: ThS. Đào Minh Thu  
HÀ NI - 2010  
II  
Tóm tt ni dung  
Tính toán phân tán là mt công nghmi và rt thiết thc hiên nay. Nhng hệ  
thng tính toán phân tán giúp gii quyết nhng bài toán khoa hc ln mà mt máy tính  
không thgii quyết được. Ngày nay có khá nhiu middleware phc vcho vic xây  
dng hthng tính toán phân tán. Trong khóa lun này trình bày mt snghiên cu về  
tính toán phân tán, nhng nghiên cu vkiến trúc, cách thc hot động ca mt shệ  
thng tính toán phân tán phbiến, gii thiu mt sdán tính toán khoa hc đang  
được thc thi nhhthng tính toán phân tán. Khóa lun này cũng trình bày bước đầu  
xây dng mt hthng tính toán phân tán, vi phn mm bên phía người dùng được  
tích hp vào ng dng facebook. Người dùng không cn cài đặt mt phn mm client  
nào, mà chcn có mt trình duyt web là có ththam gia vào nhng dán tính toán.  
Vic này sto điu kin mrng dán tính toán được ddàng hơn, làm tăng hiu  
sut ca nhng hthng tính toán phân tán.  
I
Mc lc  
Tóm tt ni dung ........................................................................................................... I  
Mc lc ..........................................................................................................................II  
Danh mc các hình v..................................................................................................V  
Chương I : Gii thiu...................................................................................................1  
1.1 Đặt vn đề ..............................................................................................................1  
1.2 Ni dung khóa lun................................................................................................3  
Chương II: Các hthng tính toán phân tán .............................................................4  
2.1 BOINC ..................................................................................................................4  
2.1.1: Gii thiu .......................................................................................................4  
2.1.2: Kiến trúc BOINC ...........................................................................................4  
2.1.3 Mt sdán đang thc hin bi BOINC.......................................................8  
2.2: Condor ..................................................................................................................9  
2.2.1 Gii thiu.........................................................................................................9  
2.2.2 Kiến trúc..........................................................................................................9  
2.3: Globus Toolkit....................................................................................................13  
2.3.1 Gii thiu.......................................................................................................13  
2.3.2 Kiến trúc........................................................................................................13  
2.4: So sánh................................................................................................................16  
2.4.1 Độ phc tp hthng ....................................................................................16  
2.4.2 Độ phc tp cho người phát trin ng dng .................................................16  
2.4.3 Độ phc tp cho người dùng.........................................................................17  
Chương III: Kiến trúc hthng.................................................................................18  
3.1: Kiến trúc tng th...............................................................................................18  
3.2: Các thành phn chính..........................................................................................19  
3.2.1: Server Task ..................................................................................................20  
II  
3.2.1.1: Nhim v...............................................................................................20  
3.2.1.2: Chc năng..............................................................................................21  
3.2.1.3: Cu hình ................................................................................................21  
3.2.2: Server Application .......................................................................................23  
3.2.2.1: Nhim v...............................................................................................23  
3.2.2.2: Chc năng..............................................................................................23  
3.2.2.3: Cu hình ................................................................................................23  
3.2.3: Node Applet.................................................................................................24  
3.2.3.1: Nhim v...............................................................................................24  
3.2.3.2: Chc năng..............................................................................................24  
3.2.3.3: Cu hình ................................................................................................24  
3.3: ng dng tính toá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 hthng.....................................................................................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  
III  
4.3 Node Applet.........................................................................................................38  
4.3.1 NodeRunner ..................................................................................................38  
4.3.2 JPPFClassLoader...........................................................................................39  
4.3.3 Node Applet Configuration...........................................................................40  
4.4 Mt số ứng dng tính toán...................................................................................42  
Chương V : Tng kết...................................................................................................44  
IV  
Danh mc các hình vẽ  
Hình 2.1: Kiến trúc hthng BOINC............................................. ..............................10  
Hình 2.1: Kiến trúc hthng Condor............................................................................15  
Hình 2.3: Kiến trúc hthng Globus Toolkit ...............................................................17  
Hình 3.1: Kiến trúc tng thhthng ..........................................................................22  
Hình 3.2: Kiến trúc chi tiết hthng ............................................................................24  
Hình 3.3: Mô hình kết ni TCP/IP ca hthng...........................................................26  
Hình 4.1: Hình nh mô tphân chia task ti nhng máy tính Node.............................47  
Hình 4.2: Biu đồ thi gian thc thi khi có mt máy tính.............................................47  
Hình 4.3: Biu đồi thi gian thc thi khi có ba máy tính..............................................48  
V
Chương I – Gii thiu  
1.1 Đặt vn đề  
Khi khoa hc phát trin đặt ra nhiu bài toán vi khi lượng tính toán ln,  
cùng vi mt lượng ln dliu cn xlý. Trong nhiu ngành khoa hc khác nhau  
nhng bài toán này đang tn ti và chúng ta luôn mun xlý chúng.  
Trong thiên văn hc có mt điu mà chúng ta luôn mun khám phá đó là  
“liu có mt nn văn minh nào ngoài trái đất không?”, đây là mt câu hi ln mà  
nhiu năm qua con người vn chưa tìm được li gii đáp tha đáng. Vi khoa hc  
kthut như hin nay chúng ta có ththu được nhng tín hiu tbên ngoài trái  
đất, chúng ta có thxlý nhng tín hiu này để hy vng có thtìm ra mt nn văn  
minh nào đó bên ngoài trái đất. Nhưng nhng tín hiu thu được ngoài trái đất rt  
nhiu, nếu dùng mt máy tính có công sut tính toán ln cũng phái mt rt nhiu  
thi gian để xlý lượng tín hiu này, như vy srt lâu chúng ta mi có thtìm  
được câu trli cho câu hi kia.  
Trong ngành công nghthông tin có mt bài toán quen thuc đó là bài toán  
phá mã. Mt phương pháp phá mã đơn gin nht là duyt toàn b, ta thln lượt  
tt ctrường hp có thca khóa cho đến khi tìm được khóa đúng. Độ dài ca  
khóa squyết định đến slượng các phép th, ví dvi hmã hóa DES sdng  
56 bit làm khóa, tc là scó 256 = 72x1016 giá trcó thca khóa. Nếu sdng  
mt máy tính bình thường có tc độ tính toán 1 gii mã /μs sphi mt khong  
1142 năm, thi gian này là quá lâu so vi tui thca thông tin. Mun phá mã  
nhanh có thdùng mt máy tính chuyên dng (giá khong 250.000$) có thphá  
mã trong 3 ngày. Nhưng đó là trường hp sdng 56 bit làm khóa, nếu sdng  
khóa vi độ dài 128 bit hay 126 bit thì máy tính đó cũng tra không hiu qu.  
Trong y hc cũng có nhiu dán vi khi lượng tính toán ln, dán “Help  
Defeat Cancer [10]” là mt dán nghiên cu khnăng chng căn bnh ung thư.  
Vi dán này, các nhà nghiên cu cn phân tích slượng ln mô ung thư cùng  
mt lúc, nếu dùng mt máy tính thông thường mt khong 168 năm, như vy là  
quá lâu vì chúng ta cn tìm ra phương pháp trbnh ung thư càng sm càng tt.  
Trong nhiu ngành khoa hc khác như toán hc, sinh hc … cũng có nhiu  
bài toán ln được đặt ra, vic gii quyết nhng bài toàn này giúp phát trin các  
ngành khoa hc phc vcuc sng, Vì vy nhu cu gii quyết nhng bài toán như  
thế là rt thiết thc  
1
Ngày nay mng máy tính phát trin mnh, nht là mng Internet vi hàng  
triu máy tính kết ni vi nhau. Đối vi người dùng bình thường công sut tính  
toán ca máy tính thường không được sdng hết. Trong nhng khong thi gian  
máy tính nhàn ri, khnăng tính toán ca nó không được tn dng. Vy ti sao ta  
không sdng khnăng tính toán đó để gii quyết nhng bài toán phc tp trên?  
Mi máy tính khi nhàn ri có thsdng để tính toán mt phn nhca bài toán,  
nhiu máy tính cùng tham gia tính toán stao lên mt hthng tính toán hết sc  
mnh m. Nếu chúng ta có thkết ni hàng triu máy tính trên Internet, chúng ta  
sto ra mt mng lưới tính toán khng l, khi đó nhng bài toán ln có thể được  
gii quết trong thi gian ngn.  
Để mi người tham gia tính toán cho mt dán nào đó, hcn biết vdán  
đó, và biết cách để có thsdng máy tính ca mình tham gia vào hthng tính  
toán. Vì vy ta cn qung bá cho người dùng biết vnhng dán tính toán, và  
cung cp cho hnhng công cụ để tham gia vào hthng tính toán.  
Mng xã hi ngày nay rt phát trin, Facebook là mt mng xã hi có lượng  
người dùng ln nht hiên nay. Nó có thlà mt nơi lý tưởng để qung bá thông tin  
vnhng dán tính toán. Trên Facebook bn có thgiao lưu, liên lc vi bàn bè,  
vi rt nhiu người cùng tham gia Facebook. Khi mt người dùng Facebook tham  
gia vào mt dán tính toán, hcó thgii thiu cho bn bè, người thân hay mt ai  
đó mà hquen biết trên Facebook. Nhng dán tính toán thường là nhng dán  
có ích cho xã hi nên mi người srt sn lòng tham gia vào dán tính toán.  
Mt vn đề có thkhiến mi người ngi tham gia vào hthng tính toán đó là  
các hthng tính toán hin nay, thường bt người dùng phi cài mt phn mn lên  
máy ca mình để tham gia vào vic tính toán. Bt kmt máy tính nào mun tham  
gia vào hthng tính toán cũng cn cài đặt phn mm này. Vy nếu có thxây  
dng mt hthng tính toán phân tán, mà người dùng không cn cài đặt phn mn  
vn có ththam gia vao hthng sgiúp khnăng huy động được lượng người  
dùng ln, tình nguyn tham gia vào dán tính toán.  
Web là mt mt công crt hu ích cho chúng ta, nó thc sự đã thay đổi  
cuc sng ca chúng ta. Mt trang web vi mt chương trình applet có ththay thế  
cho phn mm tham gia vào hthng tính toán. Khi người dùng truy cp vào  
trang web, chương trình applet schy và thc thi vic tính toán. Chúng ta có thể  
vào web bt kmáy tính nào có kết ni mng Internet, và ngay lp tc có thể  
tham gia vào công vic tính toán.  
2
Tích hp trang web đó vào mt ng dng Facebook sto thành mt công cụ  
tuyt vi để phát trin các dán tính toán. Theo thông kê mi nht ca Nielsen  
(mt công ty kho sát thtrường) cho thy Facebook là địa chgây tn thi gian  
nht ca người dùng trên Web. Người dùng Facebook cũng bthi gian lên mng  
gp 3 ln so vi người không tham gia mng lưới giao tiếp xã hi này.  
Mt ng dng Facebook có thsdng như nhng phn mm tham gia vào  
hthng tính toán phân tán, đó slà mt phướng án tt để mrng hthng tính  
toán phân tán, tăng sngười tham gia vào hthng, từ đó tăng khnăng tính toán  
1.2 Ni dung khóa lun  
Trong khóa lun này chúng tôi trình bày mt snghiên cu vcác hthng  
tính toán phân tán, các Middleware phbiến dùng trong các hthng tính toán  
phân tán. Bước đầu trin khai mt hthng tính toán phân tán, vi mt ng dng  
Facebook được sdng để người dùng có ththam gia vào hthng tính toán.  
Ni dung chi tiết khóa lun gm 5 chương:  
Chương I: Gii thiu vkhóa lun, đặt ra vn đề cn gii quyết trong khóa  
lun.  
Chương II: Gii thiu mt shthng tính toán phân tán, kiến trúc ca hệ  
thng và đưa ra nhng so sánh. Ba hthng được gii thiu là BOINC,  
Condor, Globus đây là 3 hthng phbiến hin nay.  
Chương III: Trình bày kiến trúc hthng tính toán phân tán sdng ng  
dng Facebook thay thế cho phn mm .  
Chương IV: Trình bày cách cài đặt chương trình, trin khai mt số ứng  
dng tính toán phân tán trên hthng và kết qu.  
Chương V: Tng kết, nhn xét vhthng, nhng thành quả đã đạt được  
và nhng kế hoch phát trin ca dán.  
3
Chương II: Các hthng tính toán phân tán  
2.1 BOINC  
2.1.1: Gii thiu  
BOINC [8] viết tt ca Berkeley Open Infrastructure for Network Computing  
(Cơ shtng mã ngun mcho tính toán mng) là mt phn mm trung gian cho  
vic tính toán tình nguyn và tính toán lưới. Ban đầu BOINC được xây dng để phc  
vdán SETI@home, mt dán tìm kiếm tín hiu ngoài trái đất. Sau đó nó trlên  
phbiến và được sdng cho nhiu dán tính toán khác nhau trong nhiu lĩnh vc  
như toán hc, y hc, sinh hoc… BOINC là mt phn mm mã ngun m, vì vy nhng  
nhà phát trin có thti mã ngn về để cu hình và cài đặt theo ý mun.  
2.1.2: Kiến trúc BOINC  
Hthng BOINC gm có 2 thành phn chính là hthng Server và phn mm  
(Hình 2.1)  
Server  
Thành phn chính ca BOINC là Backend Server, server có thchy trên  
mt hoc nhiu máy tính khác nhau, điu này giúp cho hthng BOINC dễ  
dàng mrng quy mô ca dán. BOINC Server chy trên nn tàng hệ điu  
hành Linux và sdng APACHE, PHP và MySQL làm nn tng cho hthng  
web và cơ sdliu.  
Các ng dng tính toán chy trên máy tính thành viên, kết quả được gưi  
lên cơ sdliu ca ng dng tính toán, ti đây nó sẽ được xlý. Trước khi  
kết quả được gi lên cơ sdliu ca ng dng tính toán, nó được kim tra  
tính đúng đắn bi Server Backend. Server Backend kim tra tính đúng đắn ca  
kết qubng cách gi các workunit ti nhiu máy khác nhau, và so sánh kết  
qunhn được ca mt workunit khác nhau.  
Workunit là mt khi lượng tính toán nhca bài toán, được thc hin  
trên máy tính . Mt workunit gm nhiu Task, Result là kết quca mt task,  
Server stự động to ra nhng tp kết qutương ng vi các workunit khi  
workunit được to (không phi là result tht, mà chlà mt thhin ca kết  
qu), các result này được lưu vào cơ sdliu, khi mt task hoàn thành và gi  
kết qulên server, result tương ng trong cơ sdliu ca server sẽ được đánh  
4
đấu là đã hoàn thành. Khi tp tt cresult ca mt workunit được đánh du,  
workunit đó được báo là đã hoàn thành  
BOINC server cung cp mt vài tính năng như:  
+ Validator: Chc năng này kim tra kết qugi vtcó chính xác hay  
không. Mt workunit được gi ti nhiu máy cùng thc thi, kết qugi vtừ  
nhng máy đó được server so sánh, kết qucó tlcao nht được coi là kết quả  
đúng.  
+ Homogeneous redundancy: Chc năng này schgi mt workunit ti  
nhng máy tính có cùng cùng mt platform (cùng hệ điu hành…), điu này sẽ  
giúp quá trình validator được ddàng và chính xác hơn.  
+ Workunit trickling: Gi các thông tin ti server trước khi các workunit  
hoàn thành, điu này giúp cho vic đánh giá để có thgi mt workunit mi kp  
thi, giúp cho vic tính toán nhanh hơn, gim ti thiu thi gian nhàn ri ca  
máy .  
+ Locality Scheduling: Chgi các workunit(không gi các file cn thiết)  
ti các máy đã có các file cn thiết để nhanh chóng thc thi workunit.  
+ Phân phi các workunit da vào các tham sca máy : Chc năng này  
đảm bo vic gi workunit ti nhng máy tính có khnăng thc thi workunit  
đó.  
BOINC server bao gm 2 chương trình CGI và thường có 5 deamons.  
- Mt chương trình CGI lp lch xlý các yêu cu tphía , nhn các  
workunit đã hoàn thành và gi đi nhng workunit mi.  
- Mt chương trình CGI xlý vic upload file.  
- 5 deamons:  
+ Feeder  
+ Validator  
+ Assimilator  
+ File_deleter  
+ Transitioner  
5
Project back end  
BOINC  
DB  
BOINC Server Complex  
Sheduling  
Server  
DATA  
Server  
Web  
interfaces  
Server  
Client  
Application Client  
Client API  
Core Client  
Project Specific component  
BOINC components  
Hình 2.1 Kiến trúc hthng BOINC  
Mt workunit được chia thành nhiu task, mi task tương ng vi mt  
result trong cơ sdliu, khi task hoàn thành gi vserver, result tương ng  
được đánh du đã hoàn thành. Mt deamons Feeder có trách nhim đọc các task  
trong cơ sdliu và lưu chúng trong các khi nh, blp lch sẽ đọc các task  
trong khi nhvà gi chúng ti , Feeder sẽ định klà rng các khe trong khi  
nhsau khi task được gi đi.  
6
Khi các result ca mt workunit được thc hin xong và gi vserver,  
deamon Validator stiến hành so sánh chúng, Validator có thể được viết bi  
người phát trin ng dng để đặt ra nhng thut toán so sánh, hay nhng hàm  
đánh giá các kết qu, hoc đơn gin là so sánh các bit. Nếu các kết qutrùng  
nhau nó sẽ được coi là hp lđược sdng làm kết quca workunit.  
Tiếp đó deamon Assimilator thc hin vic xlý các kết quhp lda  
trên code ca dán, vic xlý này là phthuc vào tng dán, có dán cn  
phân tích các file kết quvà lưu chúng vào cơ sdliu, hoc đơn gin chlà  
copy tni này sang nơi khác.  
Deamon File_deleter có nhim vxóa nhng output đã được xlý bi  
Assimilator và các file input không cn thiết.  
Deamon Transitioner xlý vic chuyn trng thái ca workunit và result,  
nó cũng to ra các result tworkunit khi chúng được to ra, hay to thêm nhng  
result nếu cn thiết(cho nhng trường hp result không thoa mãn trong quá  
trình validator hoc không gi được lên server).  
BOINC Client  
BOINC Client là mt kết cu gm mt số ứng dng độc lp, chúng sử  
dng cơ chế BOINC remote procedure call (thtc gi điu khin txa ca  
BOINC) để liên lc vi nhau.  
Nhng thành phn ng dng gm có:  
+ Chương trình BOINC , đây là mt chương trình đóng vai trò là lõi ca ,  
nó có nhng tính năng và thc hin nhng nhim vsau:  
ƒ To và duy trì kết ni gia và server  
ƒ Ti vnhng ng dng khoa hc, cung cp mt cơ chế đăng nhp  
thng nht để đảm no rng các ng dng khoa hc được cp nht, lp lch  
sdng tài nguyên CPU ca các ng dng khoa hc.  
7
ƒ BOINC chy trên Unix như mt chương trình deamon. Trên  
Windows, ban đầu BOINC không phi là mt dch vdanh cho Windows  
mà chlà mt ng dng bình thường. sau này có mt vài phiên bn dành  
cho windows và nó là mt tùy chn trong quá trình cài đặt.  
ƒ Phthuc vào cách cài đăt BOINC nó có thlà mt chương trình  
chy nn hoc được chy khi người dùng khi động máy.  
+ Mt hoc mt vài ng dng khoa hc: Nhng ng dng khoa hc này  
thc hin vic tính toán các bài toán khoa hc, nhng ng dng này là đặc  
trưng cho tng dán tính toán phân tán. Nhng ng dng khoa hc sdng  
BOINC deamon để ti vvà gi đi nhng workunit, hay để trao đổi nhng  
thông tin thng kê vi server.  
+ Mt boincmgr (boincmgr.exe): là mt giao din tương tác vi lõi ca  
ng dng(core ) sdng remote procedure call. Mc định core chcho phép  
kết ni tcùng mt máy tính, nhưng nó có thcu hình để có thkết ni từ  
nhng máy tính khác.  
+ BOINC screensaver: cung cp mt framework nhờ đó các ng dng  
khoa hc có thhin thhình nh trên ca sscreensaver ca người dùng.  
Thông thường BOINC screensaver hin thnhng hot nh thhin chi tiết ca  
ng dng khoa hc, hoc nhng biu đồ hay nhng đồ ththhin vic tính  
toán.  
2.1.3 Mt sdán đang thc hin bi BOINC  
SETI@Home: SETI@Home [8] là mt thí nghim khoa hc, sdng nhng  
máy tính kết ni trên Internet để tìm kiếm nn văn minh ngoài trái đất. Đây là  
mt phn ca dán SERENDIP (Search for Extraterrestrial Radio Emissions  
from Nearby Developed Intelligent Populations) ca đại hc California,  
Berkeley. Đài thiên văn Arecibo thu thp nhng tin hiu trên không trung, sau  
đó nhng tín hiu này được gi ti nhng máy tính tham gia vào dán để tính  
toán và phân tích. Các kết quả được trli server ca dán.  
Để tham gia vào dán, người dùng phi ti vvà cài đặt phn mm tính  
toán trên máy ca mình, mi khi máy tính ri, phn mm stự động ti vmt  
lượng dliu (khong 300KB) và tiến hành tính toán.  
Thông tin chi tiết vdán có ti trang chca dán  
8
ABC@Home: ABC@Home [7] là mt dán toán hc nhm tìm ra b3 sa,b  
và c để chng minh cho githuyết vb3 sABC (ABC conjecture), giả  
thuyết 3 sABC nêu lên rng, chtn ti duy nht 3 sa,b và c sao cho log(c) /  
log(rad(a * b * c)) > h vi h là mt sthc ln hơn 1. Ba sa,b,c tha mãn điu  
kin trên khi nó tha mãn nhng điu kin sau  
+ a + b = c  
+ a<b<c  
+ a,b,c không có ước schung  
+ c > rad(a * b * c)  
Vic chng minh được githuyết ABC sgiúp gii đáp nhiu câu hi  
trong toán hc. dán đang được thc hin bi trường đại hc Leiden, thông tin  
vdán có trên trang chhttp://abcathome.com/  
2.2: Condor  
2.2.1 Gii thiu  
Condor là kết quca mt dán nghiên cu trong trường đại hc Wisconsin-  
Mandison, Condor là mt hthng qun lý, lp lch cho nhng công vic cn tính toán  
ln, người dùng gi công vic ca hlên Condor, Condor lưu chúng trong hàng đợi  
ca nó, la chon nơi nào, khi nào sthc thi công vic đó, và báo cho người dùng kết  
qukhi hoàn thành. Khác vi nhng hthng cổ đin, Condor không đòi hi cn có  
nhng máy móc chuyên dng, Condor sgi nhng công vic (jobs) ti nhng máy  
phù hp vi yêu cu ca công vic đó.  
2.2.2 Kiến trúc  
Hthng Condor [1] gm 3 thành phn chính: Central Manager, Submit  
Machine, Execution Machine (Hinh 2.2).  
Central Manager  
Central Manger có nhim vthu thp nhng ngun tài nguyên, và nhng  
thông tin vtt ccác máy tính tham gia vào mng lưới tính toán, và đưa ra  
nhng chính sánh hot động chung cho cmng lưới, Da vào nhng thông tin  
9
này, mt job sẽ được gi ti nhng máy có tài nguyên phù hp vi yếu cu tính  
toán ca nó.  
Nhng deamon chính chy trên Central Manager.  
Condor_collector: Deamon này chu trách nhim thu thp thông tin về  
trng thái ca nhng máy tính tham gia vào Condor Pool(mt tp hp  
máy tính tham gia vào hthng phân tán). Tt cnhng deamons khác  
định kgi ClassAd ti collector. ClassAd là nhng bn ghi vtài  
nguyên cn thiết ca mt job cũng như tài nguyên có ca nhng máy  
tham gia vào mng lưới, điu này giúp cho vic gi job ti đúng nhng  
máy có ththc thi chúng. Condor_collector có thcoi như mt cơ sở  
dliu động ca ClassAd. Lnh condor_status có thdùng để truy vn  
ti collector vnhng thông tin ca hthng Condor. Nhng deamon  
khác cũng có thtruy vn ti collector để ly nhng thông tin quan  
trng như địa chsdng để gi lnh ti nhng máy tính xa.  
Condor_negotiator: Deamon này chu trách nhim to ra tt cnhng  
kết ni trong hthng Condor. Nó cũng có trách nhim qun lý quyn  
ưu tiên ca nhng người dùng trong hthng.  
Submit Machine  
Submit Machine cho phép người dùng gi nhng job ti mt hàng đợi o ở  
trên máy cc b(scheduler). Scheduler sẽ đàm phán vi Central Manage để yêu  
cu Central Manager cp cho nhng tài nguyên cn thiết cho vic thc thi job.  
Khi có mt tài nguyên được cp cho job, Scheduler sgi chương trình deamon  
Shadow, chương trình này chu trách nhim qun lý vic thc thi job đó, đồng  
thi thc thi nhng công vic như: kim tra trng thái hoàn thành, lp lch li  
trong các trường hp job bli, hay thc thi nhng lnh gi hthng ca nhng  
máy tính đang chy job.  
10  
Central Manager  
Condor_collector  
Condor_negotiator  
Execution Machine  
Submit Machine  
Controlling Deamons  
startd/starter  
Controlling Deamons  
schedd  
User’s job  
User’s code  
Condor_shadow  
Condor_Syscall_Lib  
System call  
performed  
Checkpoint file and  
saved to disk  
Hình 2.2 Kiến trúc hthng Condor  
Nhng deamon chính chy trên Submit Machine  
Condor_schedd: Deamon này có nhim vmiêu tjob trong Condor  
Pool, người dùng có thgi nhng job ti mt condor_schedd đang  
chy, nhng job này được lưu trong job queue, nhng demons khác có  
nhim vxem và thao tác ti job queue như: condor_submit, condor_q,  
condor_rm skết ni ti condor_schedd để thc thi công vic ca nó.  
Condor_shadow: Deamon này schy khi mt job được thc thi, khi mt  
job hoàn thành, deamon này thc hin vic truyn file, ghi nhng log file  
11  
đưa ra nhng bn thng kê vquá trình thc thi job. Jobs được liên  
kết ti Condor's Standard Universe, cái mà thc thi nhng lnh gi hệ  
thng thông qua condor_shadow. Tt cnhng lnh gi hthng được  
thc hin trên máy tính txa đều được gi qua mng ti  
condor_shadow, condor_shadow sthc thi nhng lnh gi thế thng  
(như vào ra file) ri gi kết qutrli cho máy tính đó.  
Execution Machine  
Exeution Machine chy trên các máy tính tham gia vào lưới tính toán,  
deamon Startd thc thi nhng job mà Submit Machine gi ti, khi chy nó gi  
ti Central Manager nhng thông tin vkhnăng thc thi ca nó, nhng thông  
tin như dung lượng bnhhay tc độ ca CPU. Mt deamon khác là Starter  
chu trách nhim qun lý vic thc thi job trên máy đó, nó có thể đưa ra nhng  
chính sách riêng để qun lý vic thc thi job  
Nhng deamon chính chy trên Execution Machine  
Condor_startd: Deamon này chy trên các máy tính tham gia vào  
Condor Pool, nó như mt thhin ca máy tính tham gia vào mng lưới  
tính toán. Condor_startd gi ClassAd ca máy tính mà nó chy ti  
Central Manager, nhng thông tin trong ClassAd gm có nhng thông  
tin vkhnăng thc thi ca máy đó, cũng như chính sách hot động ca  
máy đó. Mt máy tính chy condor_startd scó ththc thi job,  
condor_startd chu tránh nhim thi hành nhng chính sách thc thi mt  
job trên máy tính đó, như vic chy, tm dng, khôi phc, bkhông,  
hoc hy bjob. Khi condor_startd chy và sn sàng thc thi job, nó sẽ  
gi ti condor_starter.  
Condor_starter: Deamon này chu trách nhim thiết lp môi trường thc  
thi và điu khim vic thc thi job. Khi mt job đang được thc thi,  
condor_starter ly thông tin vtrng thái hoàn thành ca job và gi  
nhng thông tin này lên Submit Machine, khi job hoàn thành deamon  
này sngng.  
12  
2.3: Globus Toolkit  
2.3.1 Gii thiu  
Globus Toolkit [6] là mt sn phm ca Gobus Alliance, mt tchc quc tế  
chuyên vphát trin nhng công nghda trên nn tng tính toán lưới. Globus Toolkit  
là mt phn mêm mã ngun m, cho phép xây dng lưới tính toán. Nó cho phép người  
dùng chia skhnăng tính toán, cơ sdliu hay nhng công ctrong mt tchc,  
cơ quan hay mt vùng địa lý rng ln.  
2.3.2 Kiến trúc  
Globus Toolkit gm 3 nhóm dch vchính, có thtruy cp ti thông qua mt  
lp dch vu bo mt (Hình 2.3)  
- Resource Management  
- Data Management  
- Information Services  
Applications  
Third Party User – Level Middleware  
Grid Resource  
Management  
(GRAM,GRASS)  
Grid  
Information  
Services (MDS)  
Grid Data  
Management(Gri  
dFTP, Replica  
Catalog)  
Security Layer (GSI)  
Globus  
Grid Resources and Local Services  
Hình 2.3 Kiến trúc hthng Globus  
13  
Tng Local Services bao gm nhng dch vca hệ điu hành, dch vụ  
mng như TCP/IP, Submit Jobs, truy vn Queues…. Tng lõi ca Globus cung  
cp dch vbo mt, Submit Jobs, qun lý dliu, qun lý tài nguyên. Tng cao  
hơn (Level Middleware và Application) cha nhng công cụ để liên lc vi  
tng dưới, và bsung nhng chc năng còn thiếu tng dưới.  
Security Layer  
Grid Security Infrastructure (GSI) cung cp phương thc cho vic xác  
thc người dùng và đảm bo nhng kết ni, nó sdng nhng công cnhư  
SSL (Security Sockets Layer), PKI (Public Key Infrastructure) và X.509. GSI  
cung cp nhng dch v, giao thc và nhng thư vin để thc hin nhng vic  
sau.  
ƒXác thc mt người dùng tham gia sdng dch vlưới tính toán.  
ƒXác thc các ngun tài nguyên tham gia vào lưới tính toán da.  
ƒMã hóa dliu.  
Khi mt người dùng mun truy cp vào hthng, hcn có mt tài  
khon được chng thc bi mt cơ quan chng thc. Hu hết các dch vca  
hthng đều yêu cu xác thc người dùng trước khi cung cp cho h, điu này  
đảm bo cho vic bo mt dliu cho chai bên,  
Resource Management  
Resource Management cho phép phân phi tài nguyên phù hp cho tng  
yêu cu ca Job, điu khin vic thc thi Job và thu thp kết qutính toán.  
Nhóm này có 2 thành phn chính.  
Globus Resource Allocation Manager (GRAM): GRAM cung cp vic  
điu khin và báo cáo trng thái quá trình thc thi ca các máy . Khi mt  
gi mt Job ti hthng, mt deamon Gatekeeper skim tra tính xác  
thc ca , nếu xác thc, gatekeeper skhi chy mt Job manager để  
qun lý vic thc thi Job đó. Job manager được to ra độc lp trên nhng  
blp lch bphn. GRAM có nhng blp lch như Portable Bacth  
System (PBS), Load Sharing Facility (LSF), và LoadLeveler.  
Nhng yêu cu chi tiết ca Job được chỉ định rõ trong Globus  
Resource Specification Language (RSL), đây là mt thành phn ca  
14  
GRAM, RSL miêu trõ nhng tài nguyên mt Job cn để thc thi như  
kích thước ti thiếu ca bnh, hay tc độ ca CPU.  
Globus Access to Secondary Storage (GASS): GASS là mt cơ chế truy  
cp file, nó cho phép các ng dng có ththc hin nhng thao tác vi  
file txa như đọc, viết vào file. GASS sdng để cung cp file cho vic  
thc thi Job và nhn các kết qukhi Job hoàn thành. Nó cũng được sử  
dng để truy cp các dòng xut nhp chun và các dòng báo li.  
Information Services  
Information Services qun lý thông tin ca nhng node tham gia vào hệ  
thng lưới. Thành phn chính ca nó là Monitoring and Discovery Service  
(MDS).  
MDS cung cp cơ chế cho phép công bvà truy vn nhng thông tin,  
các node có thgi nhng thông tin ca nó lên server, và có thtruy vn ti  
server để ly nhng thông tin cn thiết. MDS có 3 lp.  
Information Providers (IPs): Lp dưới cùng có nhim vthu thp thông  
tin và trng thái ca các tài nguyên, chuyn nhng thông tin đó theo định  
dng mà nó quy định.  
Grid Resource Information Service (GRIS): Lp này là mt deamon,  
chy trên các máy tính tham gia vào lưới. GRIS ly nhng thông tin trên  
các máy đó và gi nhng thông tin mà nó ly được vserver qun lý  
thông tin. GRIS thường xuyên update nhng thông tin này sau mt  
khong thi gian time-to-live (là khong thi gian thông tin vmáy còn  
hiu lc) được quy định bi IPs.  
Grid Information Index Service (GIIS): Thc hin vic đánh chmc  
nhng thông tin vcác tài nguyên.  
Data Management  
Data Management cung cp nhng tin ích và nhng thư vin cho vic  
vn chuyn, lưu trvà qun lý dliu được tao ra bi các ng dng tính toán.  
Nhng thành phn ca nhóm này có:  
GridFTP: Là mt mrng ca giao thc FTP, cung cp khnăng bo  
mt, tin cy, hiu sut cao trong vic vn chuyn dliu trong môi  
15  
trường lưới. Ngoài nhng chc năng như chun FTP, GridFTP cung cp  
khnăng xác thdliu truyn, được htrbi GSI, truyn song song  
và bán song song.  
Replica Location and Management: Thành phn này cho phép mt file có  
thể được lưu trti nhiu nơi trên hthng lưới. Sdng dch vca  
Replica Management, mt file có thể đăng ký vi Replica Location  
Service (RLS) để to nhng bn sao ca nó và lưu trti nhiu nơi trên  
hthng. Trong RLS mt file được gán vi mt Logical File Name  
(LFN), và được lưu trong mt logical collection, nhng bn ghi ca mt  
file strti vtrí vt lý ca file đó.  
2.4: So sánh  
2.4.1 Độ phc tp hthng  
BOINC  
BOINC Server được thiết kết để chy trên nn tng Linux, có thchy  
trên Windows nhưng khó khăn trong vic trin khai.  
Sdng APACHE, PHP, MySQL làm hthng web và database.  
Condor  
Có thchy ctrên nn tng Unix và Windows.  
Globus Toolkit  
Chy trên nhiu nn tng khác nhau, có thchy trên Web server hoc  
non-Web server.  
Có nhiu thành phn khác nhau trong hthng, người phát trin chcn  
chn nhng thành phn mình mun để chy ng dng, không cn sdng hết  
các thành phn.  
2.4.2 Độ phc tp cho người phát trin ng dng  
BOINC  
Cung cp hthng API cho người phát trin ng dng tính toán, nhưng  
người phát trin viết ng dng tính toán da trên API được BOINC cung cp.  
16  
ng dng tính toán chyếu được viết bng ngôn ngC, cung có thviết  
bng ngôn ngJava.  
Condor  
Không cung cp API cho người phát trin, các ng dng tính toán được  
chia thành nhiu loi. Mi loi được viết bng mt ngôn ngriêng và liên kết  
vi thư vin ca Condor để có thtrin khai tính toán trên hthng Condor.  
Mi loi Job được mô ttrong nhng file mô tjob, nhng file này được lưu  
cùng thư mc vi nhng file thc thi.  
Globus Toolkit  
Cung cp hthng API cho người phát trin ng dng tính toán.  
2.4.3 Độ phc tp cho người dùng  
BOINC  
Người dùng có thddàng ti phn mm BOINC về để tham gia vào  
lưới tính toán. Ddàng mrng phm vi ca dán.  
Condor  
Khó cài đặt cho người sdng thông thường, thường sdng xây dng  
mt mng lưới tính toán cho mt tchc hay mt công ty.  
Globus Toolkit  
Khó khăn cho người sdng bình thường tham gia vào lưới tính toán.  
Cn phi xác thc người dùng và các tài nguyên khi tham gia vào lưới tính  
toán.  
17  
Chương III: Kiến trúc hthng  
3.1: Kiến trúc tng thể  
Server  
Project  
Server  
Facebook  
App  
Input data,  
Task  
Output data  
User GUI,  
Node Applet  
Facebook App  
Facebook App  
Node1  
Node N  
Hình 3.1 Kiến trúc tng thhthng  
Server Project  
Server Project là nơi chy ng dng cn tính toán, ti đây mt bài toán ln sẽ  
được chia nhthành nhiu phn. Nhng phn nhca bài toán được gi là mt Task,  
Server Project squn lý nhng Task này, cùng vi nhng dliu đầu vào cn thiết  
cho vic tính toán, dliu này được lưu trong cơ sdliu ca server. Khi mt máy  
tính Node kết ni ti server, Task và nhng dliu cn thiết sẽ được gi ti máy Node.  
Sau đó Server slng nghe vic thc thi trên Node, Node thc thi mt Task xong, kết  
quả được trvcho Server Project, Server Project tiến hành xlý chúng và lưu vào cơ  
sdliu.  
Server Facebook App  
18  
Server Facebook App cha chương trình ng dng facebook, ng dng này có  
cha mt Node Applet, Node Applet là mt chương trình java chy dưới dang applet.  
Node Applet là thành phn to kết ni ti Server Project, nhn các yêu cu tính toán và  
thc thi chúng.  
Node  
Node là nhng máy tính tham gia vào nhng dán tính toán, máy tính Node sử  
dng bnhvà tài nguyên CPU trong nhng lúc máy tính rnh ri, để phc vcho  
vic tính toán. Khi mt máy Node chy ng dng trên Facebook, mt applet sẽ được  
chy, applet này thc hin vic kết ni ti Server Project mà người dùng chn. nhn  
nhng task và file input tServer Project, thc thi chúng trên máy tính Node, và gi  
trkết quli cho Server Project.  
3.2: Các thành phn chính  
Hthng gm có 3 thành phn chính (được minh ha trên hình 3.2)  
Server Task  
Server Task nm trên Server Project, có nhim vnhn nhng task được  
gi ti tServer Application và phân phi task đến máy tính Node, đồng thi  
nhn các kết qutrvtNode và gi kết quti Server Application  
Server Application  
Server Application nm trên Server Project có nhim vphân chia mt bài  
toán thành nhiu Task và gi nhng task này đến cho Server Task, đồng thi  
nhn kết qutrvtServer Task và xlý.  
Node Applet  
Node Applet nm trên Server Facebook App được chy trên các máy  
tính tham gia vào hthng tính toán. Node Applet có nhim vthc thi nhng  
Task Server Task gi ti, và gi trkết quvcho Server Task  
19  
Server  
Application  
Project  
Input  
Data  
Pool  
Output  
Data  
Pool  
Server Application  
Server Task  
Task  
Data  
Manager  
Manager  
Web Server Application  
Web  
pages  
Admin  
GUI  
Participant  
App Facebook GUI  
Task Engine  
Task GUI  
GUI  
Task Data  
Node Applet  
Node  
Hình 3.2 Kiến trúc chi tiết hthng  
3.2.1: Server Task  
3.2.1.1: Nhim vụ  
Server Task là mt chương trình có thchy trên mt máy hoc nhiu máy tính  
khác nhau.  
20  
Server Task có 2 nhim vchính:  
- Nhn task tServer Application và phân phi chúng ti Node  
- Nhn kết qutrvtNode và gi kết qunày ti Server Application xlý  
3.2.1.2: Chc năng  
Server Task cung cp 3 chc năng chính:  
Load balancing (cân bng ti)  
Node Applet chy trên nhiu máy tính khác nhau vi cu hình khác  
nhau, chính vì thế khnăng tính toán mi máy tính Node là khác nhau.  
Server Task cung cp mt chc năng cân bng ti. Khi mt máy tính Node  
kết ni ti Server Task, nó stự động gi nhng thông tin cu hình ca nó  
ti Server Task, Server Task da vào nhng thông tin cu hình ca tng  
máy và tc độ kết ni mng ti các máy tính đóng vai trò là Node, để gi số  
lượng Task phù hp vi khnăng tính toán ca tng máy.  
Mt tp hp nhiu Task được gi ti Node gi là mt “bundle”, da  
vào các thut toán cân bng ti server tính slượng Task phù hp cho tng  
Node, và gi mt “bundle” vi slượng Task đó ti Node  
Qun lý tiến tình tính toán (Jobs)  
Chc năng qun lý quá trình tính toán giúp người qun lý có thdng  
hoc khôi phc li vic thc thi công vic tính toán, đồng thi đưa ra các  
thông kê vtiến trình thc thi ca công vic tính toán, nhng sliu được  
thng kê như hiu sut công vic, thi gian tính toán trung bình, thi gian  
dtính hoàn thành công vic.  
Qun lý Node  
Chc năng qun lý Node, qun lý các Node kết ni ti Server Task,  
qun lý thông tin cũng như slượng Node kết ni ti Server Task. Vic  
qun lý Node giúp cho vic đưa ra nhng thng kê vthi gian tính toán, và  
ướng lượng thi gian hoàn thành công vic.  
3.2.1.3: Cu hình  
21  
Server Task sdng 3 kết ni TCP để to kết ni ti Server Application,  
Node Server Task khác.  
Server  
Application  
Server Task  
Node Applet  
TCP/IP Port: 11112  
TCP/IP Port: 11113  
TCP/IP Port: 11111  
TCP/IP Port: 11112  
TCP/IP Port: 11113  
Server Task  
Hình 3.3 Mô hình kết ni TCP/IP  
Mt kết ni TCP ti Server Application để nhn task gi tServer  
Application ti và gi kết quvcho Server Application xlý. Khi Server  
Task chy, nó luôn lng nghe kết ni tServer Application mt cng, mc  
định là 11112  
Mt kết ni TCP ti Node để gi task và file input ti Node, nhn kết  
qutrvtNode, Server Task lng nghe kết ni tNode trên mt cng, mc  
định là 11113  
Mt kết ni TCP ti Server Task khác để chia stask và file input,  
Server Task lng nghe kêt ni tnhng Server Task khác trên cng mc định  
là 11111  
Server Task có 2 tiến trình chính là: “Controller” và “Server”, tiến trình  
“controller” skhi chy server như mt tiến trình độc lp va theo dõi trng  
thái hot động ca nó, trng thái ca server được ghi nhn trong mt mã trng  
thái, da vào mã này tiến trình controller squyết định viết bt đầu hay dng  
tiến trình server. Tiến trình controller cung cp nhng thông scn thiết để  
tiến trình server có ththc thi.  
22  
+ Các cu hình ( nm trong mt file file cu hình)  
+ Biến môi trường  
+ Java Class path  
3.2.2: Server Application  
3.2.2.1: Nhim vụ  
Server Application là mt chương trình java chy trên mt máy tính nào đó, có  
thcùng hoc khác Server Task, Server Application có thkết ni ti mt hay  
nhiu Server Task. Server Application có nhim vto ra Task và nhng file input,  
gi các task và các file input ti Server Task, nhn kết qutrvtServer Task và  
xlý nhng kết quả đó.  
3.2.2.2: Chc năng  
Server Application cung cp 2 chc năng:  
Recovery and Failover  
Khi kết ni gia Server Application và Server Task bngt do mt lý do  
nào đó, Server Application stự động cgng kết ni ti Server Task trong mt  
khong thi gian được n định.  
Validator  
Nhng kết qutmáy tính Node gi lên có thkhông chính xác, do vic  
tính toán sai máy tính Node.Validator là mt chc năng kim tra kết qugi  
vtNode có chính xác hay không, để thc hin chc năng này Server  
Application yêu cu Server Task gi mt task ti hai Node để thc thi và nhn  
kết qugi trvtcác Node đó. Server Application stiến hành so sách các  
kết qunày, nếu hai kết qubng nhau thì kết quả đó được coi là đúng, nếu sai  
Server Application syêu cu Server Task gi li task đó ti Node để tính toán  
li.  
3.2.2.3: Cu hình  
Server Application có 2 modun chính, mt modun dùng to kết ni vi  
Server Task, nhn và gi dliu ti Server Task thông qua mt kết ni TCP,  
modun này được JPPF Frame Work cung cp sn. Modun th2 là nhng lp  
java thc hin vic tính toán bài toán, modun này do người phát trin ng dng  
23  

Tải về để xem bản đầy đủ

pdf 52 trang yennguyen 10/07/2025 390
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận 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", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_xay_dung_ung_dung_tinh_toan_phan_tan_tren_nen_tang.pdf