You are on page 1of 50

I HC QUC GIA H NI TRNG I HC CNG NGH

Nguyn Ch Cng

XY DNG NG DNG TNH TON PHN TN TRN NN TNG SC MNH CC MY TNH C NHN

KHO LUN TT NGHIP I HC H CHNH QUY Ngnh: Cng Ngh Thng Tin

H NI -2010

I HC QUC GIA H NI TRNG I HC CNG NGH

Nguyn Ch Cng

XY DNG NG DNG TNH TON PHN TN TRN NN TNG SC MNH CC MY TNH C NHN

KHO LUN TT NGHIP I HC H CHNH QUY Ngnh: Cng Ngh Thng Tin Cn b hng dn: ThS. o Minh Thu

H NI - 2010

II

Tm tt ni dung
Tnh ton phn tn l mt cng ngh mi v rt thit thc hin nay. Nhng h thng tnh ton phn tn gip gii quyt nhng bi ton khoa hc ln m mt my tnh khng th gii quyt c. Ngy nay c kh nhiu middleware phc v cho vic xy dng h thng tnh ton phn tn. Trong kha lun ny trnh by mt s nghin cu v tnh ton phn tn, nhng nghin cu v kin trc, cch thc hot ng ca mt s h thng tnh ton phn tn ph bin, gii thiu mt s d n tnh ton khoa hc ang c thc thi nh h thng tnh ton phn tn. Kha lun ny cng trnh by bc u xy dng mt h thng tnh ton phn tn, vi phn mm bn pha ngi dng c tch hp vo ng dng facebook. Ngi dng khng cn ci t mt phn mm client no, m ch cn c mt trnh duyt web l c th tham gia vo nhng d n tnh ton. Vic ny s to iu kin m rng d n tnh ton c d dng hn, lm tng hiu sut ca nhng h thng tnh ton phn tn.

III

Mc lc

Danh mc cc hnh v
Hnh 2.1: Kin trc h thng BOINC..............................................................................10 Hnh 2.1: Kin trc h thng Condor..............................................................................15 Hnh 2.3: Kin trc h thng Globus Toolkit .................................................................17

IV

Hnh 3.1: Kin trc tng th h thng ............................................................................22 Hnh 3.2: Kin trc chi tit h thng ..............................................................................24 Hnh 3.3: M hnh kt ni TCP/IP ca h thng.............................................................26 Hnh 4.1: Hnh nh m t phn chia task ti nhng my tnh Node................................47 Hnh 4.2: Biu thi gian thc thi khi c mt my tnh...............................................47 Hnh 4.3: Biu i thi gian thc thi khi c ba my tnh................................................48

Chng I Gii thiu


1.1 t vn

Khi khoa hc pht trin t ra nhiu bi ton vi khi lng tnh ton ln, cng vi mt lng ln d liu cn x l. Trong nhiu ngnh khoa hc khc nhau nhng bi ton ny ang tn ti v chng ta lun mun x l chng. Trong thin vn hc c mt iu m chng ta lun mun khm ph l liu c mt nn vn minh no ngoi tri t khng?, y l mt cu hi ln m nhiu nm qua con ngi vn cha tm c li gii p tha ng. Vi khoa hc k thut nh hin nay chng ta c th thu c nhng tn hiu t bn ngoi tri t, chng ta c th x l nhng tn hiu ny hy vng c th tm ra mt nn vn minh no bn ngoi tri t. Nhng nhng tn hiu thu c ngoi tri t rt nhiu, nu dng mt my tnh c cng sut tnh ton ln cng phi mt rt nhiu thi gian x l lng tn hiu ny, nh vy s rt lu chng ta mi c th tm c cu tr li cho cu hi kia. Trong ngnh cng ngh thng tin c mt bi ton quen thuc l bi ton ph m. Mt phng php ph m n gin nht l duyt ton b, ta th ln lt tt c trng hp c th ca kha cho n khi tm c kha ng. di ca kha s quyt nh n s lng cc php th, v d vi h m ha DES s dng 56 bit lm kha, tc l s c 256 = 72x1016 gi tr c th ca kha. Nu s dng mt my tnh bnh thng c tc tnh ton 1 gii m /s s phi mt khong 1142 nm, thi gian ny l qu lu so vi tui th ca thng tin. Mun ph m nhanh c th dng mt my tnh chuyn dng (gi khong 250.000$) c th ph m trong 3 ngy. Nhng l trng hp s dng 56 bit lm kha, nu s dng kha vi di 128 bit hay 126 bit th my tnh cng t ra khng hiu qu. Trong y hc cng c nhiu d n vi khi lng tnh ton ln, d n Help Defeat Cancer [10] l mt d n nghin cu kh nng chng cn bnh ung th. Vi d n ny, cc nh nghin cu cn phn tch s lng ln m ung th cng mt lc, nu dng mt my tnh thng thng mt khong 168 nm, nh vy l qu lu v chng ta cn tm ra phng php tr bnh ung th cng sm cng tt. Trong nhiu ngnh khoa hc khc nh ton hc, sinh hc cng c nhiu bi ton ln c t ra, vic gii quyt nhng bi ton ny gip pht trin cc ngnh khoa hc phc v cuc sng, V vy nhu cu gii quyt nhng bi ton nh th l rt thit thc

Ngy nay mng my tnh pht trin mnh, nht l mng Internet vi hng triu my tnh kt ni vi nhau. i vi ngi dng bnh thng cng sut tnh ton ca my tnh thng khng c s dng ht. Trong nhng khong thi gian my tnh nhn ri, kh nng tnh ton ca n khng c tn dng. Vy ti sao ta khng s dng kh nng tnh ton gii quyt nhng bi ton phc tp trn? Mi my tnh khi nhn ri c th s dng tnh ton mt phn nh ca bi ton, nhiu my tnh cng tham gia tnh ton s tao ln mt h thng tnh ton ht sc mnh m. Nu chng ta c th kt ni hng triu my tnh trn Internet, chng ta s to ra mt mng li tnh ton khng l, khi nhng bi ton ln c th c gii qut trong thi gian ngn. mi ngi tham gia tnh ton cho mt d n no , h cn bit v d n , v bit cch c th s dng my tnh ca mnh tham gia vo h thng tnh ton. V vy ta cn qung b cho ngi dng bit v nhng d n tnh ton, v cung cp cho h nhng cng c tham gia vo h thng tnh ton. Mng x hi ngy nay rt pht trin, Facebook l mt mng x hi c lng ngi dng ln nht hin nay. N c th l mt ni l tng qung b thng tin v nhng d n tnh ton. Trn Facebook bn c th giao lu, lin lc vi bn b, vi rt nhiu ngi cng tham gia Facebook. Khi mt ngi dng Facebook tham gia vo mt d n tnh ton, h c th gii thiu cho bn b, ngi thn hay mt ai m h quen bit trn Facebook. Nhng d n tnh ton thng l nhng d n c ch cho x hi nn mi ngi s rt sn lng tham gia vo d n tnh ton. Mt vn c th khin mi ngi ngi tham gia vo h thng tnh ton l cc h thng tnh ton hin nay, thng bt ngi dng phi ci mt phn mn ln my ca mnh tham gia vo vic tnh ton. Bt k mt my tnh no mun tham gia vo h thng tnh ton cng cn ci t phn mm ny. Vy nu c th xy dng mt h thng tnh ton phn tn, m ngi dng khng cn ci t phn mn vn c th tham gia vao h thng s gip kh nng huy ng c lng ngi dng ln, tnh nguyn tham gia vo d n tnh ton. Web l mt mt cng c rt hu ch cho chng ta, n thc s thay i cuc sng ca chng ta. Mt trang web vi mt chng trnh applet c th thay th cho phn mm tham gia vo h thng tnh ton. Khi ngi dng truy cp vo trang web, chng trnh applet s chy v thc thi vic tnh ton. Chng ta c th vo web bt k my tnh no c kt ni mng Internet, v ngay lp tc c th tham gia vo cng vic tnh ton.

Tch hp trang web vo mt ng dng Facebook s to thnh mt cng c tuyt vi pht trin cc d n tnh ton. Theo thng k mi nht ca Nielsen (mt cng ty kho st th trng) cho thy Facebook l a ch gy tn thi gian nht ca ngi dng trn Web. Ngi dng Facebook cng b thi gian ln mng gp 3 ln so vi ngi khng tham gia mng li giao tip x hi ny. Mt ng dng Facebook c th s dng nh nhng phn mm tham gia vo h thng tnh ton phn tn, s l mt phng n tt m rng h thng tnh ton phn tn, tng s ngi tham gia vo h thng, t tng kh nng tnh ton
1.2 Ni dung kha lun

Trong kha lun ny chng ti trnh by mt s nghin cu v cc h thng tnh ton phn tn, cc Middleware ph bin dng trong cc h thng tnh ton phn tn. Bc u trin khai mt h thng tnh ton phn tn, vi mt ng dng Facebook c s dng ngi dng c th tham gia vo h thng tnh ton. Ni dung chi tit kha lun gm 5 chng: Chng I: Gii thiu v kha lun, t ra vn cn gii quyt trong kha lun. Chng II: Gii thiu mt s h thng tnh ton phn tn, kin trc ca h thng v a ra nhng so snh. Ba h thng c gii thiu l BOINC, Condor, Globus y l 3 h thng ph bin hin nay. Chng III: Trnh by kin trc h thng tnh ton phn tn s dng ng dng Facebook thay th cho phn mm . Chng IV: Trnh by cch ci t chng trnh, trin khai mt s ng dng tnh ton phn tn trn h thng v kt qu. Chng V: Tng kt, nhn xt v h thng, nhng thnh qu t c v nhng k hoch pht trin ca d n.

Chng II: Cc h thng tnh ton phn tn


2.1 BOINC
2.1.1: Gii thiu BOINC [8] vit tt ca Berkeley Open Infrastructure for Network Computing (C s h tng m ngun m cho tnh ton mng) l mt phn mm trung gian cho vic tnh ton tnh nguyn v tnh ton li. Ban u BOINC c xy dng phc v d n SETI@home, mt d n tm kim tn hiu ngoi tri t. Sau n tr ln ph bin v c s dng cho nhiu d n tnh ton khc nhau trong nhiu lnh vc nh ton hc, y hc, sinh hoc BOINC l mt phn mm m ngun m, v vy nhng nh pht trin c th ti m ngn v cu hnh v ci t theo mun.

2.1.2: Kin trc BOINC H thng BOINC gm c 2 thnh phn chnh l h thng Server v phn mm (Hnh 2.1) Server Thnh phn chnh ca BOINC l Backend Server, server c th chy trn mt hoc nhiu my tnh khc nhau, iu ny gip cho h thng BOINC d dng m rng quy m ca d n. BOINC Server chy trn nn tng h iu hnh Linux v s dng APACHE, PHP v MySQL lm nn tng cho h thng web v c s d liu. Cc ng dng tnh ton chy trn my tnh thnh vin, kt qu c gi ln c s d liu ca ng dng tnh ton, ti y n s c x l. Trc khi kt qu c gi ln c s d liu ca ng dng tnh ton, n c kim tra tnh ng n bi Server Backend. Server Backend kim tra tnh ng n ca kt qu bng cch gi cc workunit ti nhiu my khc nhau, v so snh kt qu nhn c ca mt workunit khc nhau. Workunit l mt khi lng tnh ton nh ca bi ton, c thc hin trn my tnh . Mt workunit gm nhiu Task, Result l kt qu ca mt task, Server s t ng to ra nhng tp kt qu tng ng vi cc workunit khi workunit c to (khng phi l result tht, m ch l mt th hin ca kt qu), cc result ny c lu vo c s d liu, khi mt task hon thnh v gi kt qu ln server, result tng ng trong c s d liu ca server s c nh u l

hon thnh. Khi tp tt c result ca mt workunit c nh du, workunit c bo l hon thnh

BOINC server cung cp mt vi tnh nng nh: + Validator: Chc nng ny kim tra kt qu gi v t c chnh xc hay khng. Mt workunit c gi ti nhiu my cng thc thi, kt qu gi v t nhng my c server so snh, kt qu c t l cao nht c coi l kt qu ng. + Homogeneous redundancy: Chc nng ny s ch gi mt workunit ti nhng my tnh c cng cng mt platform (cng h iu hnh), iu ny s gip qu trnh validator c d dng v chnh xc hn. + Workunit trickling: Gi cc thng tin ti server trc khi cc workunit hon thnh, iu ny gip cho vic nh gi c th gi mt workunit mi kp thi, gip cho vic tnh ton nhanh hn, gim ti thiu thi gian nhn ri ca my . + Locality Scheduling: Ch gi cc workunit(khng gi cc file cn thit) ti cc my c cc file cn thit nhanh chng thc thi workunit. + Phn phi cc workunit da vo cc tham s ca my : Chc nng ny m bo vic gi workunit ti nhng my tnh c kh nng thc thi workunit . BOINC server bao gm 2 chng trnh CGI v thng c 5 deamons. - Mt chng trnh CGI lp lch x l cc yu cu t pha , nhn cc workunit hon thnh v gi i nhng workunit mi. - Mt chng trnh CGI x l vic upload file.
- 5 deamons:

+ Feeder + Validator + Assimilator


+ File_deleter + Transitioner

Project back end

BOINC Server Complex

BOINC DB

Sheduling Server Server Client Application Client Client API

DATA Server

Web interfaces

Core Client Project Specific component BOINC components

Hnh 2.1 Kin trc h thng BOINC Mt workunit c chia thnh nhiu task, mi task tng ng vi mt result trong c s d liu, khi task hon thnh gi v server, result tng ng c nh du hon thnh. Mt deamons Feeder c trch nhim c cc task trong c s d liu v lu chng trong cc khi nh, b lp lch s c cc task trong khi nh v gi chng ti , Feeder s nh k l rng cc khe trong khi nh sau khi task c gi i.

Khi cc result ca mt workunit c thc hin xong v gi v server, deamon Validator s tin hnh so snh chng, Validator c th c vit bi ngi pht trin ng dng t ra nhng thut ton so snh, hay nhng hm nh gi cc kt qu, hoc n gin l so snh cc bit. Nu cc kt qu trng nhau n s c coi l hp l v c s dng lm kt qu ca workunit.

Tip deamon Assimilator thc hin vic x l cc kt qu hp l da trn code ca d n, vic x l ny l ph thuc vo tng d n, c d n cn phn tch cc file kt qu v lu chng vo c s d liu, hoc n gin ch l copy t ni ny sang ni khc.

Deamon File_deleter c nhim v xa nhng output c x l bi Assimilator v cc file input khng cn thit.

Deamon Transitioner x l vic chuyn trng thi ca workunit v result, n cng to ra cc result t workunit khi chng c to ra, hay to thm nhng result nu cn thit(cho nhng trng hp result khng thoa mn trong qu trnh validator hoc khng gi c ln server).

BOINC Client BOINC Client l mt kt cu gm mt s ng dng c lp, chng s dng c ch BOINC remote procedure call (th tc gi iu khin t xa ca BOINC) lin lc vi nhau. Nhng thnh phn ng dng gm c: + Chng trnh BOINC , y l mt chng trnh ng vai tr l li ca , n c nhng tnh nng v thc hin nhng nhim v sau: To v duy tr kt ni gia v server Ti v nhng ng dng khoa hc, cung cp mt c ch ng nhp thng nht m no rng cc ng dng khoa hc c cp nht, lp lch s dng ti nguyn CPU ca cc ng dng khoa hc.

BOINC chy trn Unix nh mt chng trnh deamon. Trn Windows, ban u BOINC khng phi l mt dch v danh cho Windows m ch l mt ng dng bnh thng. sau ny c mt vi phin bn dnh cho windows v n l mt ty chn trong qu trnh ci t. Ph thuc vo cch ci t BOINC n c th l mt chng trnh chy nn hoc c chy khi ngi dng khi ng my. + Mt hoc mt vi ng dng khoa hc: Nhng ng dng khoa hc ny thc hin vic tnh ton cc bi ton khoa hc, nhng ng dng ny l c trng cho tng d n tnh ton phn tn. Nhng ng dng khoa hc s dng BOINC deamon ti v v gi i nhng workunit, hay trao i nhng thng tin thng k vi server. + Mt boincmgr (boincmgr.exe): l mt giao din tng tc vi li ca ng dng(core ) s dng remote procedure call. Mc nh core ch cho php kt ni t cng mt my tnh, nhng n c th cu hnh c th kt ni t nhng my tnh khc. + BOINC screensaver: cung cp mt framework nh cc ng dng khoa hc c th hin th hnh nh trn ca s screensaver ca ngi dng. Thng thng BOINC screensaver hin th nhng hot nh th hin chi tit ca ng dng khoa hc, hoc nhng biu hay nhng th th hin vic tnh ton. 2.1.3 Mt s d n ang thc hin bi BOINC
SETI@Home: SETI@Home [8] l mt th nghim khoa hc, s dng nhng my

tnh kt ni trn Internet tm kim nn vn minh ngoi tri 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 thin vn Arecibo thu thp nhng tin hiu trn khng trung, sau nhng tn hiu ny c gi ti nhng my tnh tham gia vo d n tnh ton v phn tch. Cc kt qu c tr li server ca d n. tham gia vo d n, ngi dng phi ti v v ci t phn mm tnh ton trn my ca mnh, mi khi my tnh ri, phn mm s t ng ti v mt lng d liu (khong 300KB) v tin hnh tnh ton. Thng tin chi tit v d n c ti trang ch ca d n
http://setiathome.ssl.berkeley.edu/

ABC@Home: ABC@Home [7] l mt d n ton hc nhm tm ra b 3 s a,b v

c chng minh cho gi thuyt v b 3 s ABC (ABC conjecture), gi thuyt 3 s ABC nu ln rng, ch tn ti duy nht 3 s a,b v c sao cho log(c) / log(rad(a * b * c)) > h vi h l mt s thc ln hn 1. Ba s a,b,c tha mn iu kin trn khi n tha mn nhng iu kin sau +a+b=c + a<b<c + a,b,c khng c c s chung + c > rad(a * b * c) Vic chng minh c gi thuyt ABC s gip gii p nhiu cu hi trong ton hc. d n ang c thc hin bi trng i hc Leiden, thng tin v d n c trn trang ch http://abcathome.com/

2.2: Condor
2.2.1 Gii thiu Condor l kt qu ca mt d n nghin cu trong trng i hc WisconsinMandison, Condor l mt h thng qun l, lp lch cho nhng cng vic cn tnh ton ln, ngi dng gi cng vic ca h ln Condor, Condor lu chng trong hng i ca n, la chon ni no, khi no s thc thi cng vic , v bo cho ngi dng kt qu khi hon thnh. Khc vi nhng h thng c in, Condor khng i hi cn c nhng my mc chuyn dng, Condor s gi nhng cng vic (jobs) ti nhng my ph hp vi yu cu ca cng vic .

2.2.2 Kin trc H thng Condor [1] gm 3 thnh phn chnh: Central Manager, Submit Machine, Execution Machine (Hinh 2.2). Central Manager Central Manger c nhim v thu thp nhng ngun ti nguyn, v nhng thng tin v tt c cc my tnh tham gia vo mng li tnh ton, v a ra nhng chnh snh hot ng chung cho c mng li, Da vo nhng thng tin ny, mt job s c gi ti nhng my c ti nguyn ph hp vi yu cu tnh ton ca n.

Nhng deamon chnh chy trn Central Manager.


Condor_collector: Deamon ny chu trch nhim thu thp thng tin v

trng thi ca nhng my tnh tham gia vo Condor Pool(mt tp hp my tnh tham gia vo h thng phn tn). Tt c nhng deamons khc nh k gi ClassAd ti collector. ClassAd l nhng bn ghi v ti nguyn cn thit ca mt job cng nh ti nguyn c ca nhng my tham gia vo mng li, iu ny gip cho vic gi job ti ng nhng my c th thc thi chng. Condor_collector c th coi nh mt c s d liu ng ca ClassAd. Lnh condor_status c th dng truy vn ti collector v nhng thng tin ca h thng Condor. Nhng deamon khc cng c th truy vn ti collector ly nhng thng tin quan trng nh a ch s dng gi lnh ti nhng my tnh xa.
Condor_negotiator: Deamon ny chu trch nhim to ra tt c nhng

kt ni trong h thng Condor. N cng c trch nhim qun l quyn u tin ca nhng ngi dng trong h thng.

Submit Machine Submit Machine cho php ngi dng gi nhng job ti mt hng i o trn my cc b (scheduler). Scheduler s m phn vi Central Manage yu cu Central Manager cp cho nhng ti nguyn cn thit cho vic thc thi job. Khi c mt ti nguyn c cp cho job, Scheduler s gi chng trnh deamon Shadow, chng trnh ny chu trch nhim qun l vic thc thi job , ng thi thc thi nhng cng vic nh: kim tra trng thi hon thnh, lp lch li trong cc trng hp job b li, hay thc thi nhng lnh gi h thng ca nhng my tnh ang chy job.

Central Manager Condor_collector Condor_negotiator

Submit Machine

Execution Machine Controlling Deamons startd/starter

Controlling Deamons schedd

Condor_shadow System call performed

Users job Users code Condor_Syscall_Lib

Checkpoint file and saved to disk

Hnh 2.2 Kin trc h thng Condor Nhng deamon chnh chy trn Submit Machine
Condor_schedd: Deamon ny c nhim v miu t job trong Condor Pool,

ngi dng c th gi nhng job ti mt condor_schedd ang chy, nhng job ny c lu trong job queue, nhng demons khc c nhim v xem v thao tc ti job queue nh: condor_submit, condor_q, condor_rm s kt ni ti condor_schedd thc thi cng vic ca n.
Condor_shadow: Deamon ny s chy khi mt job c thc thi, khi mt

job hon thnh, deamon ny thc hin vic truyn file, ghi nhng log file

v a ra nhng bn thng k v qu trnh thc thi job. Jobs c lin kt ti Condor's Standard Universe, ci m thc thi nhng lnh gi h thng thng qua condor_shadow. Tt c nhng lnh gi h thng c thc hin trn my tnh t xa u c gi qua mng ti condor_shadow, condor_shadow s thc thi nhng lnh gi th thng (nh vo ra file) ri gi kt qu tr li cho my tnh .

Execution Machine Exeution Machine chy trn cc my tnh tham gia vo li tnh ton, deamon Startd thc thi nhng job m Submit Machine gi ti, khi chy n gi ti Central Manager nhng thng tin v kh nng thc thi ca n, nhng thng tin nh dung lng b nh hay tc ca CPU. Mt deamon khc l Starter chu trch nhim qun l vic thc thi job trn my , n c th a ra nhng chnh sch ring qun l vic thc thi job

Nhng deamon chnh chy trn Execution Machine


Condor_startd: Deamon ny chy trn cc my tnh tham gia vo Condor

Pool, n nh mt th hin ca my tnh tham gia vo mng li tnh ton. Condor_startd gi ClassAd ca my tnh m n chy ti Central Manager, nhng thng tin trong ClassAd gm c nhng thng tin v kh nng thc thi ca my , cng nh chnh sch hot ng ca my . Mt my tnh chy condor_startd s c th thc thi job, condor_startd chu trnh nhim thi hnh nhng chnh sch thc thi mt job trn my tnh , nh vic chy, tm dng, khi phc, b khng, hoc hy b job. Khi condor_startd chy v sn sng thc thi job, n s gi ti condor_starter.
Condor_starter: Deamon ny chu trch nhim thit lp mi trng thc

thi v iu khim vic thc thi job. Khi mt job ang c thc thi, condor_starter ly thng tin v trng thi hon thnh ca job v gi nhng thng tin ny ln Submit Machine, khi job hon thnh deamon ny s ngng.

2.3: Globus Toolkit

2.3.1 Gii thiu Globus Toolkit [6] l mt sn phm ca Gobus Alliance, mt t chc quc t chuyn v pht trin nhng cng ngh da trn nn tng tnh ton li. Globus Toolkit l mt phn mm m ngun m, cho php xy dng li tnh ton. N cho php ngi dng chia s kh nng tnh ton, c s d liu hay nhng cng c trong mt t chc, c quan hay mt vng a l rng ln.

2.3.2 Kin trc Globus Toolkit gm 3 nhm dch v chnh, c th truy cp ti thng qua mt lp dch vu bo mt (Hnh 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

Hnh 2.3 Kin trc h thng Globus

Tng Local Services bao gm nhng dch v ca h iu hnh, dch v mng nh TCP/IP, Submit Jobs, truy vn Queues. Tng li ca Globus cung cp dch v bo mt, Submit Jobs, qun l d liu, qun l ti nguyn. Tng cao hn (Level Middleware v Application) cha nhng cng c lin lc vi tng di, v b sung nhng chc nng cn thiu tng di. Security Layer Grid Security Infrastructure (GSI) cung cp phng thc cho vic xc thc ngi dng v m bo nhng kt ni, n s dng nhng cng c nh 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. Xc thc mt ngi dng tham gia s dng dch v li tnh ton. Xc thc cc ngun ti nguyn tham gia vo li tnh ton da. M ha d liu. Khi mt ngi dng mun truy cp vo h thng, h cn c mt ti khon c chng thc bi mt c quan chng thc. Hu ht cc dch v ca h thng u yu cu xc thc ngi dng trc khi cung cp cho h, iu ny m bo cho vic bo mt d liu cho c hai bn,

Resource Management Resource Management cho php phn phi ti nguyn ph hp cho tng yu cu ca Job, iu khin vic thc thi Job v thu thp kt qu tnh ton. Nhm ny c 2 thnh phn chnh.
Globus Resource Allocation Manager (GRAM): GRAM cung cp vic iu

khin v bo co trng thi qu trnh thc thi ca cc my . Khi mt gi mt Job ti h thng, mt deamon Gatekeeper s kim tra tnh xc thc ca , nu xc thc, gatekeeper s khi chy mt Job manager qun l vic thc thi Job . Job manager c to ra c lp trn nhng b lp lch b phn. GRAM c nhng b lp lch nh Portable Bacth System (PBS), Load Sharing Facility (LSF), v LoadLeveler. Nhng yu cu chi tit ca Job c ch nh r trong Globus Resource Specification Language (RSL), y l mt thnh phn ca

GRAM, RSL miu t r nhng ti nguyn mt Job cn thc thi nh kch thc ti thiu ca b nh, hay tc ca CPU.
Globus Access to Secondary Storage (GASS): GASS l mt c ch truy cp

file, n cho php cc ng dng c th thc hin nhng thao tc vi file t xa nh c, vit vo file. GASS s dng cung cp file cho vic thc thi Job v nhn cc kt qu khi Job hon thnh. N cng c s dng truy cp cc dng xut nhp chun v cc dng bo li. Information Services Information Services qun l thng tin ca nhng node tham gia vo h thng li. Thnh phn chnh ca n l Monitoring and Discovery Service (MDS). MDS cung cp c ch cho php cng b v truy vn nhng thng tin, cc node c th gi nhng thng tin ca n ln server, v c th truy vn ti server ly nhng thng tin cn thit. MDS c 3 lp.
Information Providers (IPs): Lp di cng c nhim v thu thp thng

tin v trng thi ca cc ti nguyn, chuyn nhng thng tin theo nh dng m n quy nh.
Grid Resource Information Service (GRIS): Lp ny l mt deamon, chy

trn cc my tnh tham gia vo li. GRIS ly nhng thng tin trn cc my v gi nhng thng tin m n ly c v server qun l thng tin. GRIS thng xuyn update nhng thng tin ny sau mt khong thi gian time-to-live (l khong thi gian thng tin v my cn hiu lc) c quy nh bi IPs.
Grid Information Index Service (GIIS): Thc hin vic nh ch mc

nhng thng tin v cc ti nguyn.

Data Management Data Management cung cp nhng tin ch v nhng th vin cho vic vn chuyn, lu tr v qun l d liu c tao ra bi cc ng dng tnh ton. Nhng thnh phn ca nhm ny c:
GridFTP: L mt m rng ca giao thc FTP, cung cp kh nng bo

mt, tin cy, hiu sut cao trong vic vn chuyn d liu trong mi trng

li. Ngoi nhng chc nng nh chun FTP, GridFTP cung cp kh nng xc th d liu truyn, c h tr bi GSI, truyn song song v bn song song.
Replica Location and Management: Thnh phn ny cho php mt file c

th c lu tr ti nhiu ni trn h thng li. S dng dch v ca Replica Management, mt file c th ng k vi Replica Location Service (RLS) to nhng bn sao ca n v lu tr ti nhiu ni trn h thng. Trong RLS mt file c gn vi mt Logical File Name (LFN), v c lu trong mt logical collection, nhng bn ghi ca mt file s tr ti v tr vt l ca file .

2.4: So snh
2.4.1 phc tp h thng BOINC BOINC Server c thit kt chy trn nn tng Linux, c th chy trn Windows nhng kh khn trong vic trin khai. S dng APACHE, PHP, MySQL lm h thng web v database. Condor C th chy c trn nn tng Unix v Windows. Globus Toolkit Chy trn nhiu nn tng khc nhau, c th chy trn Web server hoc non-Web server. C nhiu thnh phn khc nhau trong h thng, ngi pht trin ch cn chn nhng thnh phn mnh mun chy ng dng, khng cn s dng ht cc thnh phn. 2.4.2 phc tp cho ngi pht trin ng dng BOINC Cung cp h thng API cho ngi pht trin ng dng tnh ton, nhng ngi pht trin vit ng dng tnh ton da trn API c BOINC cung cp.

ng dng tnh ton ch yu c vit bng ngn ng C, cung c th vit bng ngn ng Java. Condor Khng cung cp API cho ngi pht trin, cc ng dng tnh ton c chia thnh nhiu loi. Mi loi c vit bng mt ngn ng ring v lin kt vi th vin ca Condor c th trin khai tnh ton trn h thng Condor. Mi loi Job c m t trong nhng file m t job, nhng file ny c lu cng th mc vi nhng file thc thi. Globus Toolkit Cung cp h thng API cho ngi pht trin ng dng tnh ton.
2.4.3 phc tp cho ngi dng

BOINC Ngi dng c th d dng ti phn mm BOINC v tham gia vo li tnh ton. D dng m rng phm vi ca d n. Condor Kh ci t cho ngi s dng thng thng, thng s dng xy dng mt mng li tnh ton cho mt t chc hay mt cng ty. Globus Toolkit Kh khn cho ngi s dng bnh thng tham gia vo li tnh ton. Cn phi xc thc ngi dng v cc ti nguyn khi tham gia vo li tnh ton.

Chng III: Kin trc h thng


3.1: Kin trc tng th

Server Project

Input data, Task

Server Facebook App

Output data

User GUI, Node Applet

Facebook App

Facebook App

Node1

Node N

Hnh 3.1 Kin trc tng th h thng Server Project


Server Project l ni chy ng dng cn tnh ton, ti y mt bi ton ln s c

chia nh thnh nhiu phn. Nhng phn nh ca bi ton c gi l mt Task, Server Project s qun l nhng Task ny, cng vi nhng d liu u vo cn thit cho vic tnh ton, d liu ny c lu trong c s d liu ca server. Khi mt my tnh Node kt ni ti server, Task v nhng d liu cn thit s c gi ti my Node. Sau Server s lng nghe vic thc thi trn Node, Node thc thi mt Task xong, kt qu c tr v cho Server Project, Server Project tin hnh x l chng v lu vo c s d liu. Server Facebook App

Server Facebook App cha chng trnh ng dng facebook, ng dng ny c

cha mt Node Applet, Node Applet l mt chng trnh java chy di dang applet. Node Applet l thnh phn to kt ni ti Server Project, nhn cc yu cu tnh ton v thc thi chng. Node
Node l nhng my tnh tham gia vo nhng d n tnh ton, my tnh Node s

dng b nh v ti nguyn CPU trong nhng lc my tnh rnh ri, phc v cho vic tnh ton. Khi mt my Node chy ng dng trn Facebook, mt applet s c chy, applet ny thc hin vic kt ni ti Server Project m ngi dng chn. nhn nhng task v file input t Server Project, thc thi chng trn my tnh Node, v gi tr kt qu li cho Server Project.

3.2: Cc thnh phn chnh


H thng gm c 3 thnh phn chnh (c minh ha trn hnh 3.2) Server Task
Server Task nm trn Server Project, c nhim v nhn nhng task c

gi ti t Server Application v phn phi task n my tnh Node, ng thi nhn cc kt qu tr v t Node v gi kt qu ti Server Application Server Application
Server Application nm trn Server Project c nhim v phn chia mt bi

ton thnh nhiu Task v gi nhng task ny n cho Server Task, ng thi nhn kt qu tr v t Server Task v x l. Node Applet
Node Applet nm trn Server Facebook App v c chy trn cc my tnh

tham gia vo h thng tnh ton. Node Applet c nhim v thc thi nhng Task m Server Task gi ti, v gi tr kt qu v cho Server Task

Server Application Project

Input Data Pool

Output Data Pool Server Application

Task Server Task Manager

Data Manager

Web Server Application Web Admin


pages GUI

Participant

App Facebook GUI


GUI

Task GUI

Task Engine
Node Node Applet (applet)

Task Data

Hnh 3.2 Kin trc chi tit h thng 3.2.1: Server Task 3.2.1.1: Nhim v
Server Task l mt chng trnh c th chy trn mt my hoc nhiu my tnh khc

nhau.

Server Task c 2 nhim v chnh:

- Nhn task t Server Application v phn phi chng ti Node - Nhn kt qu tr v t Node v gi kt qu ny ti Server Application x l 3.2.1.2: Chc nng
Server Task cung cp 3 chc nng chnh:

Load balancing (cn bng ti)


Node Applet chy trn nhiu my tnh khc nhau vi cu hnh khc

nhau, chnh v th kh nng tnh ton mi my tnh Node l khc nhau. Server Task cung cp mt chc nng cn bng ti. Khi mt my tnh Node kt ni ti Server Task, n s t ng gi nhng thng tin cu hnh ca n ti Server Task, Server Task da vo nhng thng tin cu hnh ca tng my v tc kt ni mng ti cc my tnh ng vai tr l Node, gi s lng Task ph hp vi kh nng tnh ton ca tng my. Mt tp hp nhiu Task c gi ti Node gi l mt bundle, da vo cc thut ton cn bng ti server tnh s lng Task ph hp cho tng Node, v gi mt bundle vi s lng Task ti Node

Qun l tin tnh tnh ton (Jobs) Chc nng qun l qu trnh tnh ton gip ngi qun l c th dng hoc khi phc li vic thc thi cng vic tnh ton, ng thi a ra cc thng k v tin trnh thc thi ca cng vic tnh ton, nhng s liu c thng k nh hiu sut cng vic, thi gian tnh ton trung bnh, thi gian d tnh hon thnh cng vic.

Qun l Node Chc nng qun l Node, qun l cc Node kt ni ti Server Task, qun l thng tin cng nh s lng Node kt ni ti Server Task. Vic qun l Node gip cho vic a ra nhng thng k v thi gian tnh ton, v ng lng thi gian hon thnh cng vic. 3.2.1.3: Cu hnh

Server Task s dng 3 kt ni TCP to kt ni ti Server Application, Node v Server Task khc.

Server Application

TCP/IP Port: 11112

TCP/IP Port: 11113

Server Task
TCP/IP Port: 11111

Node Applet

TCP/IP Port: 11112

TCP/IP Port: 11113

Server Task

Hnh 3.3 M hnh kt ni TCP/IP

Mt kt ni TCP ti Server Application nhn task gi t Server Application ti v gi kt qu v cho Server Application x l. Khi Server Task chy, n lun lng nghe kt ni t Server Application mt cng, mc nh l 11112 Mt kt ni TCP ti Node gi task v file input ti Node, nhn kt qu tr v t Node, Server Task lng nghe kt ni t Node trn mt cng, mc nh l 11113 Mt kt ni TCP ti Server Task khc chia s task v file input, Server Task lng nghe kt ni t nhng Server Task khc trn cng mc nh l 11111
Server Task c 2 tin trnh chnh l: Controller v Server, tin trnh

controller s khi chy server nh mt tin trnh c lp va theo di trng thi hot ng ca n, trng thi ca server c ghi nhn trong mt m trng thi, da vo m ny tin trnh controller s quyt nh vit bt u hay dng

tin trnh server. Tin trnh controller cung cp nhng thng s cn thit tin trnh server c th thc thi. + Cc cu hnh ( nm trong mt file file cu hnh) + Bin mi trng + Java Class path 3.2.2: Server Application 3.2.2.1: Nhim v
Server Application l mt chng trnh java chy trn mt my tnh no , c

th cng hoc khc Server Task, Server Application c th kt ni ti mt hay nhiu Server Task. Server Application c nhim v to ra Task v nhng file input, gi cc task v cc file input ti Server Task, nhn kt qu tr v t Server Task v x l nhng kt qu .

3.2.2.2: Chc nng


Server Application cung cp 2 chc nng: Recovery and Failover

Khi kt ni gia Server Application v Server Task b ngt do mt l do no , Server Application s t ng c gng kt ni ti Server Task trong mt khong thi gian c n nh.
Validator

Nhng kt qu t my tnh Node gi ln c th khng chnh xc, do vic tnh ton sai my tnh Node.Validator l mt chc nng kim tra kt qu gi v t Node c chnh xc hay khng, thc hin chc nng ny Server Application yu cu Server Task gi mt task ti hai Node thc thi v nhn kt qu gi tr v t cc Node . Server Application s tin hnh so sch cc kt qu ny, nu hai kt qu bng nhau th kt qu c coi l ng, nu sai Server Application s yu cu Server Task gi li task ti Node tnh ton li. 3.2.2.3: Cu hnh
Server Application c 2 modun chnh, mt modun dng to kt ni vi Server Task, nhn v gi d liu ti Server Task thng qua mt kt ni TCP,

modun ny c JPPF Frame Work cung cp sn. Modun th 2 l nhng lp

java thc hin vic tnh ton bi ton, modun ny do ngi pht trin ng dng tnh ton vit v cu hnh da trn h thng JPPF API, nhng d liu u vo phc v cho vic tnh ton cng c nhng ngi pht trin to ra. Khi Server Application chy, n thc hin vic bin dch nhng lp java m t vic tnh ton thnh nhng file .class, nhng file .class v nhng file d liu u vo c gi ti Server Task, ti y chng c phn phi ti cc Node. Trong qu trnh chy, Server Application ng thi gi Task ti Server Task, v nhn kt qu tr v ca nhng Task hon thnh, x l cc kt ny.

3.2.3: Node Applet 3.2.3.1: Nhim v


Node Applet l mt java applet, chy trn nhng my tnh tham gia vo h thng

tnh ton, c nhim v nhn task v file input gi v t Server Task, thc thi chng v gi tr kt qu v cho Server Task. 3.2.3.2: Chc nng
Recovery and Failover

Tng t nh Server Application, khi kt ni gia Node v Server Task b ngt do mt l do no , Node s t ng th kt ni ti Server Task sau mt khong thi gian c n nh. Task Checkpoint Trong qu trnh thc thi mt Task, Node Applet c th gp mt s vn no cn phi dng vic thc thi mt Task. c th khi phc li qu trnh tnh ton ca mt Task. Node Applet cung cp chc nng Task Chekpoint, chc nng ny lu li trang thi hon thnh ca mt Task, mt Task c th b dng thc thi do ngi dng dng vic chy ng dng, hoc cng c th do mt s c t ngt no , tng hiu nng thc thi ca mt Task v trnh trng hp phi thc hin li Task nhiu ln do s c. Chc nng Task Chekpoint s t ng lu trng thi hon thnh ca mt task sau mt khong thi gian nht nh. 3.2.3.3: Cu hnh

Khi mt ngi dng Facebook chy ng dng tnh ton phn tn trn Facebook, v chn mt Project tham gia v li tnh ton, Node Applet s c chy, Node Applet ly a ch ca Server Project t mt file cu hnh. Sau n thc hin to kt ni TCP ti Server Task. Khi kt ni TCP to xong, Server Task gi Task v nhng file input cn thit v my tnh Node. Node Applet chy nhng task m Server Task gi v bt u thc hin vic tnh ton. Khi qu trnh tnh ton hon thnh, Node Applet gi kt qu v cho Server Task thng qua kt ni TCP to ra lc trc, v sau kt ni ny s b ngt, Node Applet sau s to mt kt ni TCP khc ti Server Task tip tc nhn Task khc v thc thi. Qu trnh nh vy s lin tc c thc hin cho n khi ngi dng ngng chy ng dng hoc ng dng tnh ton thc hin xong. My Node thc hin vic tnh ton bng mt chng trnh applet, nn ngi dng khng cn phi ti v v ci t cc chng trnh tnh ton trn my tnh ca mnh. Ngi dng c th truy cp vo trang web ca ng dng thc hin vic tnh ton.

3.3: ng dng tnh ton


3.3.1: nh ngha L nhng ng dng java c chy trn h thng tnh ton phn tn, thc hin vic tnh ton mt bi ton no . Nhng bi ton ny thng l nhng bi ton c khi lng tnh ton ln, nu thc thi trn mt my tnh th thi gian tnh ton s rt lu, hoc cn c nhng my tnh c kh nng tnh ton cao, cc my tnh loi ny thng rt t.V vy mun tng tc tnh ton cn c mt lng ln my tham gia vo vic tnh ton, lm c iu ny, mt ng dng tnh ton cn c chia thnh nhiu phn, mi phn c gi l mt Task, Task c gi ti nhiu my tnh khc nhau tnh ton. Nhng ng dng tnh ton c vit da vo mt API c cung cp bi h thng JPPF. 3.3.2: JPPF API JPPF API cung cp nhng th vin cho ngi lp trnh pht trin nhng ng dng tnh ton ca mnh. JPPF Frame Work cung cp h thng cc lp to kt ni,

thc hin vic phn phi Task, v cc chc nng qun l. Ngi pht trin ng dng khi mun trin khai ng dng tnh ton ca mnh trn h thng JPPF, h s nh ngha nhng Task c k tha t lp JPPFTask, nhng Task c tha k t lp ny s c th c trin khai trn h thng JPPF. JPPF API cung cp nhng lp gip vic to kt ni gia ng dng v Server Task, bao gm mt s tnh nng sau. + Qun l mt hoc nhiu kt ni ti Server Task + Gi Task ti Server Task v nhn kt qu t Server Task + X l nhng thng bo v vic thc thi Task

3.4: Task
3.4.1: nh ngha Task
Task l mt n v tnh ton nh ca mt ng dng tnh ton, c thc thi trn

my tnh Node. Mt ng dng tnh ton ln mun tng hiu sut tnh ton cn c chia nh lm nhiu task, c th phn phi ti nhiu my tnh Node thc thi, lm tng hiu nng tnh ton ca ng dng. Mt Task c nhng ngi trin khai ng dng tnh ton nh ngha, chng c qun l bi server application. thc thi mt task, my tnh Node cn ti v nhng java class, java class ny chnh l nhng chng trnh thc thi mt phn nh ca mt ng dng tnh ton. Chu trnh thc thi mt Task trn l qu trnh to kt ni, nhn nhng file .class v nhng file d liu u vo, thc hin tnh ton trn nhng d liu , tao ra kt qu v gi tr v cho Server Task, ng kt ni TCP. Sau li to mt kt ni TCP khc nhn mt Task khc. Mt Task do ngi pht trin vit mun thc thi c trn h thng JPPF, n cn c vit da vo API m JPPF cng cp. JPPFTask l mt lp c s cho tt c task, nhng Task do ngi pht trin vit phi k tha lp ny. 3.4.2: Input Data File Input data file l nhng d liu cn thit thc thi mt task, nhng file ny c Server Application gi ln Server Task, Server Task lu chng trong c s d liu ca mnh. Khi mt kt ni ti Server Task, nu Task m n thc hin cn c cc

file u vo, Server Task s gi file input cng vi cc file .class ca Task v my , cc file ny s c lu trong th mc %temp% ca my , khi mt ngng vic thc thi task cho mt project, nhng file ny s t ng c xa b.
3.4.3: Result

Result l nhng kt qu tnh ton ca mt task, khi mt task c thc thi xong, result c gi tr v cho Server Application thng qua Server Task, cc kt qu ny c Server Application x l, nhng kt qu c chp nhn s c lu vo c s d liu trn Result cng c nh ngha bi ngi pht trin ng dng tnh ton. S dng mt s phng thc to Result v ly Result do JPPF API cung cp, ngi pht trin c th nh ngha Result cho bi ton ca mnh. C 2 phng thc n gin ng dng lu gi v nhn v mt result l: public void setResult(Object result) public void getResult() v d vic to result.
public class MyTask extends JPPFTask { public void run() { // ... some code here ... setResult("This is the result"); } }

Result s c nhn v bng phng thc getResult().


String result = (String) myTask.getResult();

Ngoi ra cn c cc cch khc lu tr v nhn v mt result: + Lu tr hoc nhn v t mt c s d liu + S dng files + S dng mt ng dng khc ..

Chng IV: Ci t h thng


4.1 Server Task
Server Task c nhim v nhn task t server application v phn phi task ti nhng node tham gia vo li tnh ton. Khi khi chy server task to ra 3 server socket lng nghe kt ni t server application, node v serve task khc. Nhng lp chnh trong Server Task 4.1.1 JPPFDriver JPPFDriver l lp chnh trong Server Task, n chun b v khi chy nhng mdun ca Server Task. N chy mt server cho Server Task kt ni n, mt server cho Node kt ni n v mt class server x l nhng yu cu t nhng class loader t xa.
Nhng thuc tnh chnh:
taskQueue: Thuc tnh ny c kiu l i tng JPPFQueue, l mt hng t

lu trc task thc thi.


applicationServers: l mt i tng c kiu JPPFAppli cationServer. Lp

i tng ny lng nghe nhng kt ni ti t Server Application, mi khi c mt kt ni ti server mt thread c to lng nghe nhng yu cu ca Server Application, v t nhng yu cu ny vo hng i thc thi
nodeNioServer: l mt i tng c kiu NodeNioServer. Lp i tng

NodeNioServer thc hin to kt ni vi Node, gi yu cu thc thi task ti Node.


classServer: l mt i tng c kiu ClassNioServer. lp i tng ny x

l nhng yu cu t nhng class loader .

JPPFDriver
- JPPFApplicationServer[] applicationServers - NodeNioServer nodeNioServer - ClassNioServer classServer

- void run() - void shutdown() - void createConnectionInformation() - void main()

JPPFApplicationServer

NodeNioServer

ClassNioServer

Nhng phng thc chnh:


run(): Phng thc c gi bi hm main() s khi chy Server Task,

phng thc run() s khi to nhng i tng ClassNioServer, NodeNioServer v JPPFApplicationServers, v chy chng. N cng khi to i tng JPPFBroadcaster qung b thng tin ca Server Task nu c cu hnh. Nu thuc tnh "jppf.management.enabled" trong file cu hnh c gn bng true, n s khi to i tng JMXServerImpl thc thi vic thc thi task.
shutdown(): Shutdown Server cng nhng thnh phn ca n. createConnectionInformation(): Ly thng tin v host v cng dng cho

nhng kt ni ti Server Task t file cu hnh.

4.1.2 JPPFNode Lp JPPFNode l i tng thc thi task, lp i tng ny c gi bi Node thng qua Classloader, Mt Node khi chy dng phng thc Classloader load lp JPPFNode v thc thi.
JPPFNode
- NodeExecutionManager executionManager - NodeIO nodeIO - Runnable exitAction

- void run() - void perform() - void processResults() - void init()

Nhng thuc tnh chnh:

Thuc tnh ny c kiu NodeExecutionManager dng thc thi task.


executionManager:

mt

tng

nodeIO: Thuc tnh ny c kiu l mt i tng NodeIO dng c nhng

task bundle do server gi v.


exitAction: Thuc tnh ny c kiu l i tng Runable, nu exitAction khc

null, node s c dng.


Nhng phng thc chnh:
init(): Phng thc ny khi to node, to nhng socket kt ni ti Server

Task
run(): Khi chy JPPFNode, gi phng thc init() to node, khi qu trnh

to node hon thnh n s gi phng thc perform() thc thi task.


perform(): y l phng thc thc thi task, phng thc ny s gi i

tng NodeIO c nhng task do server gi v, sau gi i tng

executeManage thc thi task v gi phng thc processResults thc thi gi tr kt qu v server.
stopNode(): Phng thc dng node v gii phng ti nguyn n s dng.

4.1.3 Server Task Configuration Thng tin cu hnh server c lu trong mt file cu hnh.
Cu hnh thng tin mng

Cu hnh cng lng nghe kt ni t Server Application, Node v Class loader.


# class loader port class.server.port = 11111 # communication with the applications app.server.port = 11112 # communication with the nodes node.server.port = 11113

Server Task c th gi qung b nhng thng tin ca n trn mng (a ch host v s cng) thng qua c ch UDP multicast. Nh c ch ny Node v Server Application c th t tm c nhng Server Task ang hot ng trn mng. Server Task t ng qung b thng tin ca n trn mng ta cn gn thuc tnh jppf.discovery.enabled bng true.
# Enable or disable automatic discovery of JPPF drivers jppf.discovery.enabled = true # UDP multicast group to which drivers broadcast their connection parameters jppf.discovery.group = 230.0.0.1 # UDP multicast port to which drivers broadcast their connection parameters jppf.discovery.port = 11111 # How long a driver should wait between 2 broadcasts, in milliseconds jppf.discovery.broadcast.interval = 1000

Server Task c th kt ni ti Server Task khc to thnh mt mng kiu mng ngang hng. C 4 loi kt ni gia 2 server A v server B + A v B khng c kt ni + A kt ni ti B ( A hot ng nh mt Node kt ni ti B) + B kt ni ti A ( B hot ng nh mt Node kt ni ti A) + A v B c kt ni vi nhau. C hai cch nh ngha mt kt ni t mt server ti mt server khc trong mng.
T ng tm kim server khc trong mng kt ni
# Enable or disable auto-discovery of other peer servers (defaults to false) jppf.peer.dicovery.enabled = true

Vi cch ny, cc Server Task s t ng tm kim nhng Server Task khc ang hot ng trong mng thc hin kt ni.
Cu hnh bng tay.
# define a space-separated list of peers to connect to jppf.peers = server_1 server_2 # connection to server_1 jppf.peer.server_1.server.host = host_1 class.peer.server_1.server.port = 11111 node.peer.server_1.server.port = 11113 # connection to server_2 jppf.peer.server_2.server.host = host_2 class.peer.server_2.server.port = 11111 node.peer.server_2.server.port = 11113

Vi cch cu hnh bng tay ta c th ch nh Server Task no kt ni vi nhng Server Task no.

Gi tr jppf.peer.server_1.server.host cn phi trng vi gi tr class.server.host trong file cu hnh ca server_1 v gi tr node.peer.server_1.port cn phi trng vi gi tr node.server.port trong file cu hnh ca server_1

Cu hnh thuc tnh cn bng ti


jppf.load.balancing.algorithm = <algorithm_name>

JPPF cung cp bn thut ton cn bng ti: + manual: mi mt bunle cha c nh s task, tc l mt node c chia cho s lng task l nh nhau. + autotuned: s dng thut ton Monte Carlo + proportional: tnh thi gian trung bnh thc thi task da vo vic tham gia ca cc node, t gi lng task tng ng vi thi gian thc thi trung bnh ti cc node. + rl: thut ton da trn mt k thut tr thng minh nhn to gi l reinforcement learning

4.2 Server Application


To kt ni ti Server Task, gi task ti Server Task v nhn kt qu tr v x l. Nhng lp chnh trong Server Application 4.2.1 JPPFClient Lp JPPFClient cung cp mt API cho vic kt ni ti Server Task, gi task v nhng cu lnh iu khin .

JPPFClient

- String uuid

- JPPFClient() - void initPools() - List<JPPFTask> submit() - void close()

Nhng thuc tnh chnh.


uuid: l nh danh ca mt JPPF, nh danh ny xc nh nhng ng

dng ang kt ni ti Server Task


Nhng phng thc chnh.
initPools(): phng thc ny c nhng thng tin trong file cu hnh v

gi phng thc newconnection to kt ni ti Server Task.


submit(): phng thc ny thc hin vic gi Task ti Server Task,

phng thc ny c cc i s: tasklist, dataProvider, policy, priority. + tasklist: danh sch task cn submit. + dataProvider: l mt cung cp kh nng chia s d liu gia cc task, i s ny c th bng null. + policy: c ch thc thi task, i s ny quyt nh mt task c c thc thi trn mt node no khng. + priority: quyn u tin, xc nh quyn u tin thc thi ca mt task.
close(): phng thc ny thc hin dng Server Application v gii phng

ti nguyn n s dng

4.2.2 JPPFTask L mt lp tru tng cho tt c task gi ti server thc thi, lp ny m t vic chia s d liu gia cc task, m t nhng ngoi l trong vic thc thi task, v m t kt qu ca vic thc thi task.

JPPFTask
- String id - int position - Object result - Exeption exeption - DataProvider dataProvider - String getId() - void setId() - Object getResult() - void setResult() - Exeption getExeption() - void setExeption() - DataProvider getDataProvider() - void setDataProvider() - int getPosition() - void setPosition()

Nhng thuc tnh chnh.


id: nh danh ca task position: v tr ca task theo thi gian n c gi ti server, y chnh l

v tr ca n trong hng i thc thi task.


result: kt qu thc thi ca task exption: ngoi l trong vic thc thi task dataProvider: c ch chia s d liu gia cc task

Nhng phng thc chnh.


getId(): tr v id ca task setId(): thit lp id cho task getResult(): tr v kt qu thc thi ca task

setResult(): thit lp kt qu ca task, phng thc ny s c ngi

pht trin nhng ng dng tnh ton dng nh ngha mt kt qu ca task theo tng ng dng tnh ton.
getExeption(): tr v ngoi l trong vic thc thi task setExeption(): thit lp nhng ngoi l trong vic thc thi task getDataProvider(): tr v c ch chia s d liu gia cc task setDataProvider(): thit lp c ch chia s d liu ga cc task getPosition(): tr v v tr ca task trong hng t thc thi task setPosition(): thit lp v tr ca task trong hng i thc thi task

Ngoi ra JPPFTask cn nh ngha mt s phng thc khc nh onCancel(), onRestart(), onTimeout() x l nhng s kin xy ra i vi task

4.2.3 Server Application Configuration

Server Application c th kt ni ti nhiu Server Task, trong file cu hnh lit k tn v a ch ca nhng Server Task m n s kt ni ti.
# space-separated list of drivers this may connect to # defaults to default-driver jppf.drivers = driver-1 driver-2

Cu hnh thng tin mng

Vi mi Server Task ta nh ngha nhng thuc tnh ca n nh a ch host v s cng.


# host name, or ip address, of the host the JPPF driver is running on driver-1.jppf.server.host = localhost # port number for the class server that performs remote class loading driver-1.class.server.port = 11111 # port number the s / applications connect to driver-1.app.server.port = 11112

Th t u tin ca Server Task

# assigned driver priority driver-1.priority = 10

Gi tr ny s quyt nh th t u tin ca Server Task, Server Applicaton s lun s dng kt ni ti Server Task c u tin cao nht, khi kt ni ti Server Task c u tin cao nht b ngt, n s to kt ni ti Server Task c u tin tip theo.
Recovery and Failover
# number of seconds before the first reconnection attempt reconnect.initial.delay = 1 # time after which the system stops trying to reconnect, in seconds # a value of zero or less means it never stops reconnect.max.time = 60 # time between two connection attempts, in seconds reconnect.interval = 1

Chng ta c th cu hnh c ch khi phc khi kt ni gia Server Application v Server Task gp s c, vi nhng thng tin cu hnh nh trn, Server Application s thc hin vic khi phc li kt ni sau 1s khi kt ni b ngt, n s c gng kt to kt ni trong 60s, sau 60 m khng to c kt ni n s ch 1s sau tip tc th li vic to kt ni
Local execution
# enable local job execution; defaults to false jppf.local.execution.enabled = true # number of threads to use for local execution # the default value is the number of CPUs or cores available to the JVM jppf.local.execution.threads = 4

Vi vic cu hnh ny s cho php Server Application cng tham gia vo vic tnh ton nh mt node. Mc nh gi tr ny l false

4.3 Node Applet


Chy trn nhng my tnh tham gia vo li tnh ton, thc thi Task v tr kt qu v cho Server Task Nhng lp chnh trong Node Applet 4.3.1 NodeRunner L mt applet, thc thi vic chy Node, to kt ni ti Server Task, s dng c ch classloader ti lp JPPFNode thc thi task v gi kt qu tr v Server Task. NodeRunner
- JPPFClassLoader classLoader - SocketWrapper nodeSocket - MonitoredNode node

- void init() - void runMain() - MonitoredNode createNode() - JPPFClassLoader getJPPFClassLoader() - void shutdown()

Nhng thuc tnh chnh.


classLoader: c kiu JPPFClassLoader, l mt classloader dng load

nhng lp cn java khi chy node.


nodeSocket: c kiu SocketWrapper, l socket kt ni ti Server Task. node: c kiu MonitoredNode i tng ny c to

nh c ch classloader. NodeRunner dng c ch classloader ti lp JPPFNode trn Server Task to mt i tng kiu MonitoredNode Nhng phng thc chnh.

init(): phng thc to applet runMain(): phng thc thc thi vic chy node, phng thc ny gi ti

hm createNode to node v chy n.


createNode(): s dng c ch classloader ti lp JPPFNode trn Server

Task to mt node c kiu l MonitoredNode.


getJPPFClassLoader(): phng thc ny tr v classloader dng trong

vic thc thi NodeRunner.


shutdown(): phng thc dng chy Node.

4.3.2 JPPFClassLoader Mt ClassLoader cho php ti nhng lp t xa trong qu trnh thc thi. JPPFClassLoader
- SocketWrapper socketClient - List<String> uuidPath - String requestUuid

- void init() - void initSocketClient() - Class<?> findClass() - JPPFResourceWrapper loadResourceData() - JPPFResourceWrapper loadRemoteData()

Nhng thuc tnh chnh.


socket: socket kt ni ti remote host, ti lp uuidPath: danh sch id ca nhng ng dng c gi ln Server Task requestUuid: id ca bundle task m node thc hin

Nhng phng thc chnh.


Init(): to socket kt ni ti remote host

initSocket(): thit lp thng tin cho socket theo nhng thng tin trong file

cu hnh.
findClass(): phng thc ny thc hin ti class theo tn class c ch

nh, nu gp li n s gi phng thc System ClassLoader, phng thc ny gi ti phng thc loadResoureData() ly nhng thng tin v class cn ti, v dng phng thc defineClass() mt t class c ti theo nhng thng tin ly c nh phng thc loadResoureData(). phng thc ny gi ti phng thc loadRemoteData() c nhng thng tin v class c ch nh thng qua socket. Phng thc tr v mt i tng JPPFResourceWrapper, i tng ny tm lc nhng thng tin ca class c ch nh.
loadResourceData():

4.3.3 Node Applet Configuration


Cu hnh mng
# IP address or host name of the server jppf.server.host = my_host # class loader port class.server.port = 11111 # communication between node and server node.server.port = 11113

Thng tin cu hnh ny nh ngha a ch v cng ca Server Task m node s kt ni ti.


Server discovery
# Enable or disable automatic discovery of JPPF drivers jppf.discovery.enabled = true # UDP multicast group to which drivers broadcast their connection parameters jppf.discovery.group = 230.0.0.1 # UDP multicast port to which drivers broadcast their connection parameters jppf.discovery.port = 11111

# How long in milliseconds the node will attempt to automatically discover a driver # before falling back to the manual configuration parameters jppf.discovery.timeout = 5000

Nu gi tr jppf.discovery.enabled c gn bng true, node s t ng tm kim nhng Server Task c trong mng kt ni.
Recovery and failover
# number of seconds before the first reconnection attempt reconnect.initial.delay = 1 # time after which the system stops trying to reconnect, in seconds # a value of zero or less means it never stops reconnect.max.time = 60 # time between two connection attempts, in seconds reconnect.interval = 1

Cng ging nh Server Application, nhng thng tin cu hnh ny m t c ch thc hin khi phc kt ni khi b ngt.
Security policy

Chnh ny bo mt s gii hn nhng vic node c th lm trn my tnh m n chy. kch hot chnh sch ny ta cn ch r ng dn ti file nh ngha nhng chnh sch bo mt.
# Path to the security file, relative to the current directory or classpath jppf.policy.file = jppf.policy

Nu gi tr ny khng c nh ngha, chnh sch bo mt s b v hiu ha.

4.4 Mt s ng dng tnh ton


Chng ti xy dng th nghim bi ton gii m DES trn h thng tnh ton. Bi ton t ra l chng ta c mt bn r v mt bn m ha ca bn r , chng ta cn tn ra kha dng m ha b r . gii quyt bi ton ny chng ta s dng phng thc duyt ton b, chng ta s duyt ln lt cc gi tr c th ca kha, dng kha gii m bn m ha, sau so snh vi bn r tm ra kha ng. Bi ton cn c tnh ton trn h thng tn ton phn tn tng nng sut tnh ton, v th bi ton cn c chia ra lm nhiu phn nh, mi phn nh ny l mt task, mt task y chng ti nh ngha l vic th 100 kha, kt qu tr v cho server s l false nu 100 kha u sai, nu c kha ng kt qu tr v s l true v gi tr ca kha . Do iu kin vt cht khng cho php, chng ti cho chy th ng dng trn 3 my, v chy th 5000 task, kt qu cho thy h thng c th chia task cho tng my thc thi.

Hnh 4.1 M t phn chia task ti nhng my tnh Node Thng k thi gian thc thi cho thy, khi chy vi 3 my tnh thi gian thc thi nhanh hn 1 my tnh. Hnh 4.2 l biu thi gian thc thi khi c mt my tnh, ng mu cho thy thi gian thc thi trung bnh khong 51ms.

Hnh 4.2 Biu thi gian thc thi khi c mt my tnh Hnh 4.3 l biu thi gian thc thi khi c 3 my tnh, ta thy thi gian thc thi trung bnh khong 30ms

Hnh 4.3 Biu thi gian thc thi khi c ba my tnh

Chng V Tng kt
Da trn nhng kin thc tm hiu c v tnh ton phn tn v vic pht trin ng dng trn facebook. Chng ti phn tch v nm bt c kin trc c bn ca mt h thng tnh ton phn tn, cch thc hot ng v trin khai mt h thng tnh ton phn tn. Bn cnh chng ti cng nm bt c quy trnh trin khai mt ng dng trn facebook. T nhng kt qu nghin cu , chng ti bc u xy dng mt h thng tnh ton phn tn kt hp vi ng dng facebook. H thng c s dng mt ng dng m ngun m v tnh ton li lm nn tng pht trin l ng dng JPPF [12]. Chng ti ci tin ng dng tnh ton li ny n c th trin khai trn mi trng web, gip cho vic tham gia ca ngi dng c d dng hn. Chng ti cng xy dng mt vi bi ton tnh ton da trn h thng tnh ton phn tn ny, kim th qu trnh hot ng ca n. V h thng c th thc hin nhng bi ton trn mi trng li tnh ton. Do iu kin vt cht cng nh thi gian hn hp nn h thng mi ch c trin khai trn quy m nh, nhng chng ti tin rng vi vic pht trin ca mng my tnh cng nh mng x hi nh hin nay, h thng s d dng c m rng v pht trin. Vic pht trin cc ng dng tnh ton phn tn s cn c quan tm nhiu trong tng lai, v y l mt gii php hu hiu gii quyt nhng bi ton khoa hc ln. Trong tng lai chng ti s xy dng h thng vi quy m rng ln hn. Ci tin nhng thut ton ca chng trnh chng trnh c th vn hnh tt hn, chnh xc hn, s dng ti nguyn ca nhng my tnh trong li tnh ton ph hp hn nhm tng hiu nng ca h thng. V ng dng, chng ti s ci tin h thng API gip cho nhng ngi pht trin bi ton tnh ton c th d dng trin khai ng dng ca mnh V ng dng facebook, chng ti s ci tin giao din ngi dng, gip ngi dng d dng tham gia vo nhng d n tnh ton, bin n tr thnh mt cu ni gia ngi dng v d n tnh ton. T to iu kin m rng d n tnh ton, tng hiu nng thc thi. S l rt tt khi mi ngi cng chung nhau chung sc hon thnh nhng d n c ch cho ton x hi.

Ti liu tham kho


Ting Anh
[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 [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 [4] Jon Wakelin, Condor Globus and SRB: Tools for Constructing a Campus Grid, http://www.nesc.ac.uk/talks/556/02_Wakelin_condorGlobus.ppt [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. [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/ [8] http://boinc.berkeley.edu/wiki/User_manual [9] http://setiathome.berkeley.edu/ [10] http://pleiad.umdnj.edu/IBM/ [11] http://www.tnsglobal.com/_assets/files/TNS_Market_Research_5.pdf [12] http://jppf.org/

Ting vit
[13] PGS.TS. V c Thi, PGS.TS. Trn Vn Lng, PGS.TS. Nguyn Thanh Thu, GS.TSKH. Phm K Anh, PGS.TS. L Anh Dng, Tnh ton li v mt s vn nghin cu, pht trin tnh ton li Vit Nam, Hi tho quc gia ln th XI: Mt s vn chn lc ca CNTT - TT Hu, 12 13/6/2008

You might also like