Mô hình triển khai

Một phần của tài liệu Nghiên cứu ứng dụng tính toán mạng lưới tại Việt Nam dựa trên máy tính cá nhân (Trang 38)

Máy trung tâm chạy hệ điều hành M icrosoft W indow XP sp2, các phần mềm cài đặt:

M icrosoft SQL Server 2005 .Net Fram ew ork 2.0

M anager 1.0.5 (trong bộ công cụ Alchemi)

Các máy thực thi chạy hệ điều hành M icrosoft W indow Server 2000, số lượng máy thực thi là 13 đển 15 máy, các phần mềm cài đặt:

.Net Fram ew ork 2.0

Executor 1.05 (trong bộ công cụ Alchemi)

Các máy tính trong mô hình được thiết kế theo mô hình mạng Lan, máy trung tâm thuộc một subnet, 13 m áy thực thi thuộc một subnet khác.

II. Kết quả thu được

H o ạ t h ọa, 4 h ìn h cầ u , 2 hình dẹt di ch u yển tro n g k hông gian

Ngày t e s t : 29 '05/2008

File input (số ữ am e, dung lư ợ n g ): chuyendong.wri (26 frames, 112 kb)

File output: 26 files (resultJ).b m p -> result_25.bm p trong thư mục ../RTTest/chuyendong), kích cỡ: 500x500 pixel mỗi ảnh

Số máy xử lý: 15 m áy

Thời gian xử lý: 01:13:52.7031250 Ví dụ ảnh đầu tiên của các file output:

Hình 17: Hoạt họa các kbổi câu

H o ạ t h ọa 14 h ìn h cầu ch u y ển tron g k h ôn g gian

Ngày t e s t : 30/05/2008

File input (số fram e, dung lượng) : holon.wrl (36 frames, 297 kb)

File output: 36 files (result_0.bmp -> result_36.bm p trong thư mục ../RTTest/holon), kích cở: 400x400 pixel mỗi ảnh

Số m áy chạy: 13 m áy

Thời gian xử lý: 01:43:57.7656250 Ví đụ ảnh đầu tiên của các file output:

V • í

Hình 18: Hoạt họa các khối cầu 2

H o ạ t họa b án h x e q u a n h tròn + tịnh tiến

Ngày t e s t : 30/05/2008

File input (số frame, dung lượng) : banhxequay2.wri (26 frames, 45 kb)

File output: 26 files (result_0.bmp -> result_26.bmp trong thư mục ,./RTTest/banhxequay2), kích cỡ: 400x400 pixel mỗi ảnh

Số m áy xử lý: 13 m áy

Thời gian xử lý: 00:14:21.1250000 Ví dụ ảnh đầu tiên của các file output:

Hình 19: Hoạt họa bánh xe quay

H o ạ t họa ấm trà tịn h tiến + quay (chư a có textu re)

N gày test : 31/05/2008

File input (sô frame, dung lư ợ n g ): teapot.wri (36 frames, 74 kb)

File output: 36 files (result o.bmp -> result 36.bmp trong thư mục ../RTTest/teapot), kích cỡ: 400x400 pixel mỗi ảnh

Số máy xử lý: 12 máy

Thời gian xử lý: 00:31:40.0625000 Ví dụ ảnh đầu tiên của các file output:

u

c - /

Hình 20: Hoạt họa ấm trà (không texture)

H o ạ t h ọa ấm trà tịn h tiến + quay (có tex tu re)

Ngày t e s t : 31/05/2008

File input (số fram e, dung lượng) : teapot2.wri (36 frames, 74 kb)

File output: 36 files (result 0.bmp -> result_36.bmp trong thư mục ../RTTesƯteapot2), kích cỡ: 400x400 pixel mỗi ảnh

Số m áy xử lý: 15 máy

Texture trên bề m ặ t : file gach.bmp Thời gian xử lý: 00:19:35.6406250 Ví dụ ảnh đầu tiên của các file output:

Hình 21: Hoạt họa ẩm trà (có texture)

H o ạ t h ọa ấm trà q u ay quanh trục đ ứ n g (có áp d ụ n g texture)

Ngày t e s t : 31/05/2008

File input (số fram e, dung lượng) : teapot3.wri (36 frames, 74 kb)

File output: 36 flies (result_0.bmp -> result 36.bmp trong thư mục ../RTTest/teapot3), kích cỡ: 400x400 pixel mỗi ảnh

Sổ m áy xử lý: 15 máy

Texture trên bề m ặ t : file hoa.bmp Thời gian xử lý: 00:22:32.8906250 Ví dụ ảnh đầu tiên của các file output:

Phần V. KÉT LUẬN

Quá trình hoàn thiện đề tài là quãng thời gian chúng tôi tìm hiểu được khá nhiều tri thức mới về tính toán mạng lưới và đồ họa ba chiều. Trong quá trình phát triển chúng tôi đạt được các kết quả sau:

về tín h toán m ạ n g lư ớ i

Tìm hiểu khá chi tiết và tổng quan về các hệ thống tính toán lưới.

về bộ c ô n g cụ A lch em i

Nắm được các tính năng cũng như nhược điểm của bộ công cụ Alchemi. Hiểu mã nguồn, cấu trúc của chương trình và cỏ thể sửa đổi để cải thiện bộ công cụ. Trên thực tế đã xây dựng và thực nghiệm thành công modul tính toán dư thừa.

về c h ư ơ n g trìn h R a y tr a c in g và qui trình h o ạ t họa

Nắm bắt rõ các kiến thức về thuật toán Raytracing, file định dạng VRML [13,14], và công cụ 3ds M ax [15]. Triển khai và phát triển thành công qui trình tạo ảnh Raytracing trên m ạng lưới grid (thực nghiệm trên 13-15 máy tính, và cho kết quả là m ột số ảnh hoạt họa). Tuy nhiên chương trình xử lý ảnh Raytracing vẫn còn nhiều thiếu sót, chưa áp dụng được hết các thuật toán của Raytracing.

TÀI LIỆU TH AM KHẢO

[1] w w w .A lchem i.net. Alchemi. [Website]

[2] Buss, S am u el R. 3-D Computer Graphics - A M athematical Introducing

with OpenGL. N ew York : Cambridge University Press, 2003.

[3] http://boinc.berkeley.edu/. Boinc. [Website]

[4] M. Taufer, D. Anderson, P.Cicotti, C.L. Brooks III. Homogeneous redundancy: a technique to ensure integrity o f molecular simulation results using public computing.

[5] H enrik W ann Jensen, Per Christensen, s.l. High quality rendering using

raytracing and pho to n m apping : Siggraph 2007 course 8, 2007.

[6] http://w w w .encyclopedia.com /. Encyclopedia.com. [Website] HighBeam Research.

[7] Per H. C hristensen, Julian Fong, David M. Laur, Dana Batali.

Raytracing fo r the m ovie ‘Cars

[8] D.I Laurenson, A.U.U. Sheikh, s . M cLaughlin. The use o f raytracing in characterizing the indoor mobile radio channel

[9] http://w w w .openrt.de/. OpenRT. [Website] [10]

httpiy /b lo g s.in tel.co n x research /^O O T /lO y m o reo n th efiitu reo fray traci.p h p .

intel.com. [W ebsite]

[11] http://w w w .legitreview s.com /article/712.'1/. [Website]

[12] D.I L aurenson, A .u .u . Sheikh, s . M cLaughlin. Parallel Progressive Ray-tracing.

[13] D aniel K .Schneider, Sylvere M artin M ichiellot. VRML Primer and

Tutorial, s.l. : U niversity o f Geneva, 1998.

[14] R ik k C a re y , G av in Bell. The A nnotated VRML 9 n Reference Manual.

L Ậ P L ỊC H T R O N G H Ệ T H Ố N G T ÍN H T O Á N L Ư Ớ I D ự A T R Ê N K Ỹ T H U Ậ T T Ó I ư u H Ó A C Ủ A N H Ó M B Ầ Y

Trịnh Thị Thúy Giang1, Hồ Đắc Phương2, Nguyễn Thanh Thủy3,

Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà nội.

Email: tgiang@ vnu.edu-vn

2 Đại học Công nghệ, Đại học Quốc gia Hà Nội.

Email: hdDhuonft@vnu.edu-vn

3 Đại học Bách khoa Hà nội.

Email: thuvnt@ it-hut.edi].vn

TOM TẮT: Trí tuệ nhân tạo thư ờng được nghiên cứu theo hai hướng, đó là: sử dụng các kỹ thuật trong tin học đe nghien cứ u các h iện tư ợ n g sinh hỏa học tự nhiên và sử dụng các quá trình tối ưu hóa tụ nhiên trong sinh học đê giả i q u yêt các bài toán trong tin học. Trong bài báo này, chúng tôi trình bày một kết quả theo huớng nghiên cứu thứ hai đê giả i bài toán lập lịch trong các hệ thống tính toán lưới. Kết quả cùa bài báo là một thuật toán lập lịch m ớ i dựa trên kỹ thuật tối ưu hóa theo nhóm bày PSO (Particle Swarm O ptim ization). C ác kêt quà thực nghiệm chỉ ra rằng, thuật toán được đề xuất có hiệu quả tốt như thuật toán lập lịch dựa trên giả i thuật di truyền nhưng có thởi gian thực hiện nhỏ hơn.

TỪ K H Ó A : G rid com p u tin g, S ch ed u lin g, Particle Swarm O ptim ization, G enetic A lgorithm .

I. GIỚI THIỆU

Hệ thong tính toán lưới (grid computing system) là một tập hợp rộng lớn và không đồng nhât của các hệ thông tự trị (autonomous systems) phân tán về địa lý được kêt nôi với nhau bởi liên mạng máy tính báng thông rộng [1]. Lưới tính toán được sử dụng để giải quyết các vấn để phức tạp thuộc nhiều lĩnh vực khác nhau như: tối ưu, mô phóng, khám phá dược liệu, sinh học,.... Trong một lưới tính toán, các hệ thống tự trị phải chia sẻ công việc (job sharing) với nhau. Việc chia sẻ các công việc cho các hệ thống tự trị sao cho tài nguyên hệ thống được sử dụng hiệu quả và các công việc thực hiện được một cách tối ưu được gọi là “lập lịch ừong hệ thong tính toán lưới” [1], Bài toán lập lịch là một trong các tác vụ khó khăn chính của hệ thống tính toán lưới, vì vậy nó đã được rẩt nhiều nhà khoa học quan tâm. Không giống như các bài toán lập lịch trong hệ thống phân tán truyền thống, trong lưới tính toán việc lập lịch phức tạp hon nhiều do các đặc trưng như: tính động của hệ thống, sự không đồng nhất về tài nguyên và công việc ... cần được quan tâm khi xử lý. Bài toán lập lịch được xem xét trong cả hai trường hợp: tĩnh (static) và động (dynamic). Trong bài báo này chúng tôi chỉ xem xét bài toán ở dạng tĩnh.

Bài toán lập lịch đã được chứng minh là NP đây đủ [1], Do vậy, việc sử dụng các thuật toán heuristics là cách tiếp cận thực tê (de facto) đê giải quyêt nó. Trong những năm qua, nhiều tác giả đã sử dụng các thuật toán heuristics khác nhau để giải quyết bài toán lập lịch như: Ritchie [2] sử dụng thuật toán Local search, Yarkhan [3] sử dụng thuật toán Simulated Annealing, Abraham [4] sử dụng thuật toán Tabu Search, Marino [5] sử dụng Genetic algorithms, Ritchie [6] sử dụng thuật toán lai giữa Ant Colony Optimization và Tabu Search, .... Do tính khó giải của bài toán lập lịch và sự quan trọng của nó trong các hệ thống tính toán lưới, nên việc tìm kiểm các giái thuật mới vẫn là một chủ đê nghiên cứu thú vị.

Kỹ thuật tiến hóa theo nhóm bầy (PSO- Particle Swarm Optimization) được đưa ra năm 1995 bởi Dr. Eberhart and Dr. Kennedy [7]. Kỹ thuật này phỏng theo hành vi cùa các bây chim (Bird flocking) và các đàn cá (Fish schooling). PSO đã được áp dụng đê giải các bài

toán tối ưu khác nhau, đặc biệt là đối với bài toán người du lịch bán hàng [8]. Dựa theo cách biểu diễn vị trí và tốc độ của các phần tử (particle) trong quần thể (population) được trình bày trong [8Ị, chúng tôi đưa ra một thuật toán mới dựa ừên PSO để giải bài toán lập lịch cho các hệ thống tính toán lưới. Các kết quả thực nghiệm chi ra rằng, thuật toán được đề xuất có hiệu quả tốt như thuật toán lập lịch dựa ữên giải thuật di truyền nhưng có thời gian thực hiện nhỏ hon.

Phân còn lại của bài báo được tô chức như sau. Mục II dùng để ữình bày tổng quan về kỹ thuật PSO. Mục III đưa ra thuật toán lập lịch dựa trên thuật toán PSO cho hệ thống

tính toán lưới. M ục IV trình bày các kêt quả thực nghiệm. Chúng tôi đưa ra các kết luận

và đề xuất các hướng phát triển trong mục V. II. TỐI ƯU HÓA THẸO NHÓM BẢY

PSO là một kỹ thuật tối ưu hóa ngẫu nhiên dựa trên một quần thể được phát triển bởi Dr. Eberhart and Dr. Kennedy [7], phỏng theo hành vi cùa các bầy chim hay các đàn cá. PSO có nhiêu sự tương tự như kỹ thuật tính toán tiến hóa như thuật toán GA (Genetic algorithm). Hệ thông được khởi tạo với một quân thê của các giải pháp ngẫu nhiên và tìm kiếm giải pháp tôi ưu báng việc cập nhật các thế hệ. Tuy nhiên, không giống như GA, PSO không có các thao tác tiển hóa như là lai ghép (crossover) hay đột biến (mutationj.

Đẻ minh hoạ ý tường cuả thuật toán PSO, ta xem xét kịch bản như sau: Giả sử có một bầy chim đang tìm kiếm thức ăn trong một vùng nào đó. Tất cả các con chim là không biết thức ăn ở đâu. Tuy nhiên, chúng biết là thức ăn cách xa bao nhiêu sau mỗi lần bay đi bay lại (lặp). Câu hỏi đặt ra là: Cách tốt nhất để tìm được thức ăn là gì? Câu trả lời đơn giản là bay theo những con chim gần chỗ thức ãn nhất. PSO phòng theo kịch bản này và sử dụng nó để giải các bài toán tối ưu.

Trong PSO, mỗi giải pháp đơn, trong kịch bản ừên là “bird”, được gọi là particle.

Mỗi particle có m ột giá trị thích nghi (fitness value), được đánh giá băng hàm đo độ thích

nghi (fitness function), và một vận tôc (velocity) đê định hướng việc bay (flying)/tìm kiếm, của nó. Các particle sẽ duyệt (fly through) không gian bài toán băng cách theo sau các particles có điều kiện tốt nhất hiện thời (current optimum particles).

PSO là được khởi tạo bởi một nhóm ngẫu nhiên các particles, sau đó tìm kiểm giải pháp tối ưu bằng việc cập nhật các thế hệ (lần lặp). Trong mỗi thế hệ, mỗi particle là

được cập nhật bời hai giá trị: giá trị thứ nhất, gọi l àpBest, là fitness value của particle tôt nhất trong thế hệ hiện thời. G iá trị thứ hai, gọi là gBest, là fitness value của particle tôt nhất trong tất cả các thế hệ từ trước đến bây giờ. Q uá trình cập nhật các particle dựa trên

hai công thức sau:

v[] = v [] + c l * ran d() * (p b est[] - p resentn ) + c2 * rand() * (g b e stn present[]) (1 )

present[] = p ersentn + v [] (2 )

Trong đó:

- c 1, c2 là các nhân tốc học, chúng thường được chọn là c 1 = c2 = 2 Giả mã của một thuật toán PSO được viết như sau:

For Each particle

Khởi tạo particle EndFor

Do

For Each particle

Tính fitness value

If fitness value < pBest Then pBest = the fitness value.

endif EndFor

If pBest < gBest then gBest =pBest

endif

For each particle

Tính article vật tõc theo công thức 1 Cập nhật vị trí theo công thức 2 EndFor

W hile (chưa đạt đẽn sõ thẽ hệ tõi đa cho phép);

H ìn h 1: Thuật toán PSO

III. PSO CHO BÀI TOÁN LẬP LỊCH

Lập lịch trong hệ thống tính toán lưới được biết đến vơi nhiều cách thưc khác nhau do độ phức tạp của hệ thống và tính phân tán của các ứng dụng. Tuy nhiên, trong bài báo này, chúng tôi chỉ quan tâm đến bài toán lập lịch tĩnh, trong đó các ứng dụng không phụ thuộc

lẫn nhau. H ơn nữa, những vấn đề về trao đổi dữ liệu, tính kinh tế và giá trên các tài

nguyên cũng sẽ không được đặt ra. Kiểu lập lịch này xuất hiện trong nhiều ứng dụng thực tế. Trong kiểu lập lịch này mỗi ứng dụng có thế được chia thành nhiều các công việc độc lập, các công việc này được gửi (riêng rè) đến các hệ thống tự trị trong lưới đê thực hiện và tạo ra các két quả (bộ phận), kết quả cuối cùng là sự kêt hợp của các kêt quả bộ phận.

Chúng tôi cũng chỉ quan tâm đến kịch bản, trong đó các ứng dụng được gửi tới lưới là

độc lập và không có ưu tiên.

Để dễ dàng cho việc phát biểu bài toán và không mât tính tông quát, ta giá sử răng đã

biết trước các thông tin sau: khả năng tính toán (cũng được biêt là tải tính toán) của mồi tài nguyên (hệ thống tự trị) trong lưới; ước lượng vê tải tính toán (computational load)

của m ỗi công việc, tải tính toán đã sử dụng của môi tài nguyên. G iả sử có:

1) n công việc độc lập với tải tính toán Ụ\, J2, ... Jn} cân phải lập lịch tính toán.

Chúng ta cũng giả sử là m ỗi công việc sẽ được xử lý trong m ột tài nguyên duy

nhất.

3) {T \,T 2, là thời gian mà tài nguyên i sẽ kết thúc công việc trước đó (chi ra tài trọng đã sử dụng trước đó).

Bài toán đặt ra là: Lập lịch để hệ thống tính toán thực hiện tất cả các công viêc sao cho 1) Flowtime là cực tiểu, nghĩa là:

n Ầ/f

T f = min y — m

í - i t

2) Makespan cực tiểu, nghĩa là:

M

T m =-- min{ max {r

(3)

}} (4)

Để áp dụng được kỹ thuật PSO cho bài toán lập lịch trong hệ thống lưới, đầu tiên chung ta phải biêu diên được các particle. Chúng tôi biêu diễn mỗi particle như là một ma trận như sau:

Pn Pl2 ■•• Pĩ*

p = Pi\ P22 ■■■ Pin

_pm 1 Pmìp mn

(5)

trong đó, P ij biểu diễn khả năng m à công việc J j có thể được thực hiện bơi tài nguyên M ị.

Giá trị này được sinh bời m ột hàm , gọi là hàm mờ, dựa trên giá trị M \ / J ịnhư sau:

Pij = ụ i M ■ ). ì e {1,2,. . . . mị . j e {1,2,...,n} (6)

Và giá trị cùaPij phải thỏa mãn các điều kiện sau:

P ij e [ 0 , l ] , / ( = j e { 1 , 2 , . . . , « } ( 7 )

™ , (8)

Ỵ^pị, = I , í ' e (1.2.... /n). j G {1,2,...,«}

i=i

Độ thích nghi của mỗi particle được tính như sau: Công việc Jj sẽ được gừi đến tài nguyên Mị thực hiện nếu p Êj có giá trị lớn nhất tại cột thứ i. Sau khi tất cả các công việc

được gán cho các tài nguyên, độ thich nghi của môi particle được tính theo công thức sau như đã được sử dụng trong [9]:

F = --- !---J (9)

Tm + a * T f

Với ữ e (0, 1) là tham số thiét kế để điều chỉnh và lể and 7™ được tính theo các công

thức (3) và (4).

IV. CÁC KẾT QUẢ THỰC NGHIỆM

Các kêt quả thử nghiệm trình bày ở đây là kết quả trung bình của 20 lần chạy thử nghiệm độc lập. Chương tình mô phỏng được thực hiện bàng ngôn ngữ C++ chạy trên may tinh đơn có bộ vi xử lý Intel Peniv 2.7 Ghz, RAM 1Gb.

Các tác gia trong [9] chi ra răng, thuật toán GA đạt được hiệu quà cao hơn các thuật toán heuristics khác. Do vậy trong thử nghiệm này, chúng tòi chỉ so sánh thuật toán được đề xuất với thuật toán GA được mô tả trong [9],

a) Các tham số của thuật toán PSO và GA

Trong các thí nghiệm của chúng tôi, các tham số p cp m của thuật toán GA được thiết lập theo khuyên cáo chung của thuật toán di truyền đó là p c = 0.02 và pm = 0.6 [10], Chúng tôi lây p = 50 (kích thước của quân thê) và g = 50 (số thế hệ tối đa trong quá trình

tiến hoá) cho thuật toán GA. Các giá trị này cũng được dùng cho thuật toán PSO, nghĩa là

Một phần của tài liệu Nghiên cứu ứng dụng tính toán mạng lưới tại Việt Nam dựa trên máy tính cá nhân (Trang 38)