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

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

56 994 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 56
Dung lượng 25,71 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tính toán mạng lưới chính là công nghệ được đưa ra để giải quyết hai vấn đề: Tận dụng các tài nguyên dư thừa và xử lý tính toán lớn với chi phí rẻ Hiện nay, có rất nhiều mô hình công ngh

Trang 1

ĐẠI HỌC QUÓC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC T ự NHIÊN• • • •

* * * * * * * * *

TÊN ĐÈ TÀI:

NGHIÊN CỨU ỨNG DỤNG TÍNH TOÁN MẠNG LƯỚI

MÃ SÓ: QT-08-69

CHỦ TRÌ ĐÈ TÀI: ThS Trịnh Thị Thúy Giang

HÀ NỘI - 2008

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC T ự NHIÊN« • • •

TÊN ĐÈ TÀI:

NGHIÊN CỨU ỨNG DỤNG TÍNH TOÁN MẠNG LƯỚI

MÃ SÓ: QT-08-69

CHỦ TRÌ ĐÈ TÀI: ThS Trịnh Thị Thúy Giang

Đ Ạ I H Ọ C Q U Ố C G IA HÀ r ọ i TRUNG TÂM t h ò n g t in TH J VIỆN

Trang 3

ĐẠI HỌC QƯÓC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC KHOA HỌC T ự NHIÊN• • * *

'k'k'k'k'k'k’kyc'k

TÊN ĐÈ TÀI:

NGHIÊN CỨU ỨNG DỤNG TÍNH TOÁN MẠNG LƯỚI

MÃ SỐ: QT-08-69

C H Ủ TRÌ ĐÈ TÀI: T h S T r ịn h T h ị T h ú y G ia n g

CÁN B ộ THAM GIA: ThS Hồ Đ ầc Phương

ThS Trần Văn Dũng ThS Lê Thị Thanh Hải

Trang 4

- ThS Lê Thị Thanh Hải, Trường ĐHKHTN

4 M ục tiêu và nội dung nghiên cứu.

Hiện nay, trên thực tế có rất nhiều bài toán yêu cầu khối lượng tính toán lớn mà không thể sử dụng các máy tính thông thường, chính vì vậy xuất hiện những siêu máy tính để giải quyết các bài toán đó, tuy nhiên đi kèm theo nó cũng là những chi phí vô cùng lớn

Tính toán mạng lưới chính là công nghệ được đưa ra để giải quyết hai vấn đề: Tận dụng các tài nguyên dư thừa và xử lý tính toán lớn với chi phí rẻ

Hiện nay, có rất nhiều mô hình công nghệ nền tảng để xây dựng các ứng dụng tính toán lưới, rất nhiều công cụ đã được phát triển như m ột framework để phục vụ việc thực thi và phát triển những ứng dụng chạy trên nền tính toán lưới, ví dụ Globus, Boinc, Alchem i Trong đó Alchemi là một bộ công cụ phát triển trên nền tảng NET, nhưng vẫn hỗ trợ các ứng dụng chạy trên những nền tảng khác nhau hoạt động, và cũng hồ trợ tích hợp với các ứng đụng chạy ư ên bộ công cụ đã được phát triển khá lâu Globus [1]

Các nội dung nghiên cứu:

- Nghiên cứu các vấn đề liên quan đến môi trường tỉnh toán mạng lưới

và bộ công cụ A lchem i (công cụ phát triển trên nền tảng NET và được cung cấp mã nguồn trên Internet [1])

Trang 5

5 Các kết quả đạt được.

- Viết được m ột bộ tài liệu giới thiệu về bộ công cụ Alchemi

- Đã nghiên cứu và phát triển một số tính năng mới cho bộ công cụ

P G S T S Đ ỗ Q u a n g H u y T hS T rịn h T h ị T h ú y G iang

TRƯỜNG ĐẠI HỌC KHOA HỌC T ự NHIÊN

*HÓ HIỆU IRbỏNG

Trang 6

MỤC LỤC■ •

Phàn I GIỚI TH IỆU C H U N G 6

I Đặt vấn đề 6

II Bộ công cụ Alchemi 6

2.1 Giới thiệu chung 6

2.2 Kiến trú c 8

Phần II PH ÁT TRIẺN A L C H E M I 19

I Xây dựng module tính toán dư thừa trên Alchemi: 19

1.1 Giới thiệu tính toán dư thừa: 19

1.2 Kỹ thuật Homogeneous Redundancy (HR): 20

1.3 Xây dựng modul tính toán dư thừa 20

1.4 Xây dựng module xác nhận tính đúng đắn của kết quả 24

II Thực thi chương trình sau khỉ đã thêm các module phát triển thêm: 26

Phàn III XÂY D ự N G ỨNG DỤNG RAYTRACING DƯA t r ê n ALCHEM I27 I Giói thiệu Raytracing 27

1.1 Lịch s ử : 27

1.2 Tổng quan và khái n iệm : 27

1.3 Ưu nhược điểm của phương pháp Raytracing: 28

1.4 ứ ng dụng của Raytracing: 29

1.5 Các dự án đã phát triển: 31

1.6 Xu thế phát triển Raytracing: 32

II Thuật toán: 33

III.Song song hóa quá trình tính toán thuật toán ray tracing 34

3.1 Mô hình tính toán: 34

3.2 Cân bàng tả i 35

Phần IV T H ự C N G H IỆ M 37

I Mô hình triển khai 37

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

Phần V K ÉT L U Ậ N 44

TÀI LIỆU TH AM K H Ả O 45

Trang 7

Phần I GIỚI THIỆU CHUNG

I Đ ặt vấn đề

Con người đang sổng trong giai đoạn của sự bùng nổ về công nghệ thông tin Các thiết bị phần cứng m áy tính ngày càng trờ nên hoàn thiện và có sức mạnh lớn hơn nhiều so với các thiết bị trước đây M ặt khác giá thành cũng giảm và điều đó giúp cho máy tính có m ặt tại mọi nơi trên thế giới, có mặt trong mọi công việc của con người, từ công kinh doanh đến sản xuất, nghiên cứu khoa học Tuy nhiên, các ứng dụng thông thường chỉ mới sử dụng được một phần nhỏ năng lực xử lý trên tính, do đó dẫn đến sự lãng phí rất lớn

Những bài toán có khối lượng tính toán khổng lồ mà nếu dùng máy tính thông thường có thể phải m ất đến vài năm để hoàn thành (ví dụ tạo một bộ phim 100 phút, với 24 frame/s bàng thuật toán Raytracing, có thể mất đến 6000 ngày tính toán trên máy tính, tương ứng với 16 năm chạy trên 1 CPU thông thường [2]) Những siêu máy tính được phát triển để giải quyết những bài toán đó, nhưng giá thành của chúng quá đắt nên đôi khi không phù hợp

Tính toán lưới là công nghệ được đưa ra để giải quyết hai vấn đề trên:

o Tận dụng các tài nguyên dư thừa

o X ử lý tính toán lớn với chi phí rẻ

Với sự phát triển của công nghệ tính toán lưới hiện nay, rất nhiều công cụ đã được phát triển như m ột framework để phục vụ việc thực thi và phát triển những ứng dụng chạy trên nền tính toán lưới, ví dụ Globus, Boinc, Alchemi Trong đó Alchem i là m ột bộ công cụ phát triển trẽn nền tảng NET, nhưng vẫn hỗ trợ các ứng dụng chạy trên những nền tảng khác nhau hoạt động, và cũng hỗ trợ tích hợp với các ứng dụng chạy trên bộ công cụ đã được phát triển khá lâu Globus [1]

II Bộ công cụ A lchem i

2.1 Giới thiệu chung

Trong bối cảnh các thư viện và framework dành cho tính toán mạng lưới chủ yểu nằm trên nền Linux, Alchem i xuất hiện và trở thành m ột trong những fram ework hiếm hoi hoạt động trên nền NET Bản thân là m ột framework mã nguồn mở, A lchem i cung cấp khả năng linh hoạt cho người sử dụng thiết kế và xử

lý các ứng dụng desktop trên hệ thống các máy tính được kết nổi qua mạng để trơ thành một m áy ảo siêu mạnh (virtual supercom puter) Đề tài trình bày tổng quan về

A lchem i và m ột ứng dụng xây dựng trên bộ công cụ Alchemi

Trang 8

Trong khi khái niệm về tính toán trên lưới khá đơn giản thì thực tế của việc triển khai tính toán mạng lưới phải đương đầu với m ột số thách thức Những yểu tố

có thể kể ra như tính bảo mật, tính hỗn tạp, tính tin cậy, nền tảng phần mềm, lập lịch (scheduling) và quản lý tài nguyên M icrosoft NET Fram ework cung cấp một công

cụ mạnh để giải quyết tất cả những vấn đề trên, đặc biệt hỗ trợ cho những thực thi từ

xa (qua NET Rem oting và web service), đa luồng (multithreading), bảo mật, lập trình không đồng bộ, thực thi có quản lý (managed execution) và phát triển đa ngôn ngữ (cross-language development) khiến nó trở thành một nền tảng (platform) lý tưởng cho các phần mềm tàng giữa của lưới Được xây dựng trên nền NET, Alchem i bao gồm những thành phần sau:

- Chương trình (file chạy window) để xây dựng một tính toán mạng lưới

- Các hàm .NET API và công cụ cho phép phát triển các ứng dụng và tích hợp các ứng dụng đã phát triển trên nền tảng khác

A lchem i được xây dựng dựa theo mô hình master-vvorker, trong đó một thành phần trung tâm đứng ra phân phát các đơn vị xử lý song song và quản lý chúng Đơn

vị xử lý nhỏ nhất trong mô hình xử lý song song của Alchemi là thread, nó bao gồm hàm xử lý cũng như dữ liệu M ột ứng dụng lưới được định nghĩa đơn giản là một ứng dụng có thể chạy trên hệ thống lưới và bao gồm một tập hợp các thread, ứ n g dụng hay thread đều được trừu tượng hóa trong mô hình hướng đối tượng của Alchemi

Fram ew ork của Alchem i cho grid được xây dựng với mục tiêu làm cho cấu trúc của grid và phát triển phàn mềm grid càng đơn giản càng tốt, đảm bảo được tính mềm dẻo, linh hoạt, tin cậy và khả năng mở rộng Những tính năng chủ đạo được hỗ trợ bởi A lchem i là:

- Các cluster nền Internet tạo thành từ các máy tính cá nhân không cần hệ thống chia sẻ file

- Hệ thống các cluster để tạo ra hệ thống grid có tính cấp bậc và cộng tác cao

- Lập trình luồng grid hướng đối tượng

- Giao diện web service hỗ trợ môi trường grid thông qua các thành phần môi giới tài nguyên (resource broker component)

Thiết kế cho m ột môi trường grid nhiều tầng sử dụng Alchem i và một số công

Trang 9

web service đa nền của Alchemi Trong môi trường này, các ứng dụng grid có thể được tạo bằng cách sử dụng mô hình luồng grid của Alchemi hoặc mô hình lập trình param eter-sw eep của Gridbus broker, ứ n g dụng được thiết kế sử dụng mô hỉnh hướng luồng grid của Alchemi (viết trên nền NET) chạy trên các nút của Alchemi trong khi các ứng dụng khác như ứng dụng parameter-sweep có thể được chạy trên nút của A lchem i hoặc Globus.

A lc h e m ì Jobs Afclu.’ I— - - r t.£fm 1 lY—’il

~ - r " ~ —

e-Commerce Application

e-Engineering Application

A lc h e m i N ET API {O bject-O riented Grid Thread Programming

Trang 10

Hình 2

M anager

M anager quản lý thực thi các ứng dụng grid và cung cấp dịch vụ liên kết với quản lý thực thi luồng Các Executor đăng kí với M anager qua đó để giúp Manager kiểm tra tính sẵn sàng của chúng Luồng được gửi đi tót Owner được đặt vào một khối chung (pool) và được lên kế hoạch để được thực thi trên các Executor rỗi M ột mức độ ưu tiên dành cho từng luồng có thể được thiết lập ngay khi nó được tạo tại Owner, nhưng luồng sẽ được đánh mức ưu tiên cao nhất nếu không thiết lập mức ưu tiên Executor trả về luồng đã được thực thi cho M anager và được chuyển tới Owner tương ứng

Trang 11

này, tài nguyên mà Executor sử dụng được quản lý trên m ột cơ sở tự nguyện bời nó đòi hỏi luồng được thực thi từ Manager Khi giao tiếp hai đường khả thi (two-way com m unication) và những thực thi yêu cầu Executor m ở m ột giao diện (IExecutor)

để M anager có thể giao tiếp trực tiếp với nó Như vậy, mô hình thực thi của

A lchem i tạo ra hai lợi ích:

- Quản lý tài nguyên mềm dẻo như tập trung quản lý và thực thi chuyên biệt (dedicated execution) đối đầu với quản lý phi tập trung và thực thi không chuyên biệt (none-dedicated execution)

- Triển khai mềm dẻo dưới sự ràng buộc của mạng như các thành phàn có thể được triển khai không chuyên biệt khi mà giao tiếp hai đường không được yêu cầu hoặc không khả thi (trong trường hợp đằng sau firewall hoặc NAT/proxy server)

Do đó, thực thi chuyên biệt sẽ phù hợp khi M anager và Executor cùng trên một LAN trong khi thực thi không chuyên biệt sẽ thích hợp khi M anager và Executor kết nối thông qua Internet

O w ner

ứ n g dụng grid được tạo sử dụng các API (Application Program Interface) của Alchem i được thực thi trên các thành phần của Owner Ow ner cung cấp một giao diện giữa lập trình viên và grid Từ đây Owner sở hữu ứng dụng và cung cấp dịch

vụ phối hợp với quyền sở hữu của một ứng dụng và những luồng hợp của nó Owner chuyển luồng tới M anager và thu lại những luồng đã xử lý như một lập trình viên ứng dụng thông qua các hàm API

C ross-Platform M anager

Cross-Platform M anager là một thành phần tuỳ chọn của Manager, là một giao diện chung thể hiện phần chức năng của M anager để A lchem i có thể quán lý thực thi các tác vụ grid độc lập Tác vụ được đưa tới Cross-Platform M anager được dịch sang m ẫu m à M anager hiểu được (như luồng grid), sau đó được liệt kê và thực thi bình thường Do đó, thêm vào khả năng hỗ trợ grid của các ứng dụng đã có, Cross- Platform M anager trợ giúp những phần mềm tầng giữa khác làm việc được với Alchem i trên bất cứ nền tảng nào mà hỗ trợ web service (như Gridbus Grid Service Broker)

2.2.2 Cấu hình hệ thống

N hững thành phần được trình bày ở trên cho phép A lchem i tạo những cấu hình grid sau:

Trang 12

- M ulti-cluster grid

- Cross-platform grid (grid toàn cầu)

- Cluster (desktop grid)

Triển khai cơ bản nhất là một cluster (được thể hiện ở hình 3) bao gồm một

M anager và nhiều Executor được cấu hình để kết nối với Manager Một hoặc nhiều Owner có thể thực thi ứng dụng trên cluster thông qua kết nối với Manager Môi trường này phù hợp với việc triển khai trên LAN cũng như Internet Hoạt động của các M anager, Executor và Owner trong cluster đã được mô tả ở trên

M ulti-cluster

M ột hệ m ulti-cluster được tạo bằng cách kết nối nhiều M anager trong một mô hình phân cấp (hình 4) N hưng mô hình single-cluster, bất cứ một Executor và Owner nào đều có thể kết nối với một M anager ở bất cứ tầng nào trong hệ phân cấp Một Executor và O w ner trong một multi-cluster kết nối với m ột M anager giống như trong một cluster và những hoạt động tương ứng không có gì khác biệt

Chìa khoá để xây dựng multi-cluster trong kiến trúc Alchem i là M anager xử sự giống như một Executor đối với một M anager khác bởi M anager được tích hợp vào trong giao diện của Executor M ột M anager tại mỗi tầng ngoài trừ tầng cao nhất trong cấu trúc phân tầng được cấu hình để kết nổi với một M anager ứ tầng cao hơn

và nó được M anager ở tầng cao hơn đối xử giống như m ột Executor Mô hình này phù hợp với việc triển khai trên Internet

Alchemi O w ner

Alchemi M anager

Alchemỉ Executor

Alchemi Cross Platform M anager

Hình 3

Trang 13

Hình 4

M ột khi O w ner chuyển ứng dụng grid tới từng Manager, mỗi M anager có những luồng "địa phương" chờ để thực thi N hư đã nói, các luồng được đăng kí với quyền ưu tiên cao nhất nếu không đăng kí (trừ khi quyền ưu tiên được đánh trong quá trình tạo) và các luồng được lên kế hoạch và thực thi bình thường bởi những Executor địa phương của M anager M ột Executor trong hoàn cảnh này hoàn toàn có thể là m ột M anager trung gian, bởi nó được đối xử như một Executor bởi M anager tầng trên Trong trường hợp này sau khi nhận một luồng từ M anager tầng cao hơn,

nó được lên lịch nội bộ bởi M anager trung gian với quyền ưu tiên giảm đi một bậc

và được thực thi bình thuờng bởi các Executor nội bộ (một lần nữa, những Executor này lại có thể là M anager trung gian)

Trang 14

Ngoài ra có thể xảy ra tình huống khi một M anager muốn chỉ một luồng tới

m ột trong số những Executor nội bộ (một hoặc hom có thể là M anager trung gian) Nhưng không có luồng nội bộ nào chờ để thực thi Trong trường hợp này, nếu

M anager là m ột M anager trung gian, nó sẽ yêu cầu một luồng từ M anager ờ tầng cao hơn của nó, giảm độ ưu tiên đi m ột và lên lịch nội bộ cho nó

Trong tất cả các trường hợp, hiệu quả của việc giảm độ ưu tiên đi một tương đương với m ột luồng càng gần m ột Executor xử lý nó bao nhiêu thì quyền ưu tiên

mà nó được thực thi càng cao Nó cho phép một phần của Alchem i grid được quản

lý có thể được chia sẻ bởi các tổ chức khác để tạo thành sự hợp tác mà không gặp bất kì xung đột nào đối vói lợi ích của người dùng nội bộ

Giống Executor, một M anager trung gian phải được cấu hình cho cả thực thi chuỵên biệt lẫn không chuyên biệt Không chỉ hoạt động như Executor, nó vẫn đảm bảo duy trì quản lý và triển khai m ềm dẻo dưới một mạng được quản lý nghiêm ngặt

C ross-Platform Grid

Cross-Platform M anager có thể được sử dụng để khởi tạo một grid gióng như

mô hình grid toàn cầu cổ điển M ột thành phần của phần mềm tầng giữa của grid như một broker có thể sử dụng web service của Cross-Platform M anager để thực thi các ứng dụng đa nền trên các nút của Alchemi (cluster hoặc m ulti-cluster) một cách

ổn thoả

Trang 15

2.2.3 Thiết kế và thực thi

Hình 5

Trang 17

Hình 7

Cài đặt:

Cách thức hoạt động của Alchemi

Để cài đặt các thành phần của Alchem i cần phải cài đặt tối thiểu M icrosoft

•NET fram ew ork 1.1 N goài ra M anager yêu cầu phải có SQL Server 2000 hoặc

M SD E 2000 hoặc các phiên bản về sau

Các chương trình M anager và Executor có thể cài đặt được ở hai chế độ:

- Cài đặt như m ột ứng dụng desktop

- Cài đặt như m ột dịch vụ của W indow (w indow service - hỗ trợ trên các hệ điều hành W indow N T '2000, XP 2003)

Việc xây dựng m ột tính toán mạng lưới đơn giản gồm các công việc sau:

Trang 18

- Người dùng phát triển ứng dụng dựa trên các API của Alchemi và đăng ký ứng dụng với M anager

- Cài đặt M anager lên một máy trung tâm có thể kết nối tới các máy có chức năng xử lý

- Cài đặt Executor lên các máy có chức năng xử lý, nói tới máy trung tâm chứa

M anager

Phát triển ứng dụng tính toán lưới trên Alchemỉ:

M ột tính toán m ạng lưới có thể coi như một máy tính ảo với nhiều CPU có trong nó, A lchem i lả m ột bộ công cụ trừu tượng tính toán mạng lưới theo quan điểm này

Alchem i hỗ trợ hai mô hình kết cấu ứng dụng song song

- Mô hình phân việc (File-Based Jobs): Tính toán mạng lưới truyền thống được trừu tượng hóa như m ột cỗ máy ảo với đơn vị xử lý nhỏ nhất là một tiến trình Đặc

tả một công việc thường bao gồm file input, file output và một chương trình thực thi Với mô hình như vậy việc phát triển phần mềm chạy trên tính toán mạng lưới bao gồm việc xử lý với các file input, và output

- Mô hình thứ hai mà Alchem i hỗ trợ cung cấp một cách trừu tượng thấp hơn, trong đó đơn vị xử lý nhỏ nhất là m ột Thread Bởi vậy người lập trình chỉ phải xử lý với các Thread và ứng dụng trong mạng lưới, do đó chuyên tâm vào ứng dụng hơn

là các chi tiết khác ngoài phát triển ứng dụng

Với hai m ô hình trừu tượng hóa công việc như trên, Alchemi cung cấp một cách thức lập trình rất tiện lợi và đơn giản cho người lập trình Người phát triển ứng dụng chạy trên tính toán mạng lưới chỉ cần thực thi m ột số thủ tục Alchemi đã định sẵn là có thể đưa ứng dụng chạy trên một nền tính toán lưới

Công việc phát triển m ột ứng dụng gồm hai phần:

- Tạo phần xử lý công việc Tạo một lớp kế thừa giao lớp Gthread (hoặc GjobJ

và viết phần xử lý bên trong hàm Start()

- Khai báo ứng dụng: ử n g dụng trong Alchem i được trừu tượng hóa là lớp GApplication V iệc khai báo hay khởi tạo ứng dụng bao gồm:

+ K ết nối đến M anager, có thể sử dụng hai lớp có sẵn trong thư viện lập trình của A lchem i là G C onnection (dùng cho ứng dụng Console), GConnectionDialog (dùng cho ứng dụng W inform ) để tạo kết nối, hoặc gán cho thuộc tính Connection

Trang 19

của lớp G application các giá trị như ip của Manager, port, user và password trên

M anager

+ Khai báo các file gửi kèm theo công việc (ví dụ file dữ liệu) qua thuộc tính

M anifest Các dữ liệu gửi kèm theo có thể là các Thread, hay file độc lập trên đĩa cứng

+ Tạo các Thread cho ứng dụng bàng cách sử dụng thuộc tính Threads của lớp Gapplication Thuộc tính này đại diện cho tất cả các Thread cần phải xử lý của ứng dụng

+ Ke thừa hai hàm ApplicationFinished, và ThreadFinished để xử lý sự kiện khi ứng dụng kết thúc, hay m ột Thread đã được xừ lý

+ Gọi hàm StartQ của lớp Gapỉication để bắt đầu thực thi ứng dụng

Trang 20

Phần II PHÁT TRIẺN ALCHEMI

Alchem i được thiết kế theo mô hình hướng đối tượng trong môi trường NET,

đã được công bô m ã nguồn để các lập trình viên trên thế giới có thể tìm hiểu và phát triên tiêp Tại thời điêm hiện nay, Alchemi mới bao gồm các tính năng cơ bản để thiêt lập m ột tính toán mạng lưới đủ lớn Nhưng chưa có được một số tính năng mà các môi trường khác đã cung cấp như tính bảo mật, hay tính toán dư thừa Đề tài này xin trình bày việc phát triển và tích hợp thêm một số tính năng cho Alchemi.Các m odule đã phát triển thêm:

- Tính toán dư thừa (Redundancy computing)

- Đảm bảo tính đúng đắn của kết quả

I Xây dựng m odule tính toán dư thừa trên Alchemi:

1.1 Giới thiệu tính toán dư thừa:

Tính toán lưới có thể mang lại một khả năng tính toán lớn với giá thành thấp so với những siêu máy tính Tuy nhiên một vấn đề nảy sinh là các kết quả được tính toán từ các m áy tính tình nguyện có thể có lỗi (cố tính hoặc không cố tình) dẫn đến kết quả trả về sai [2] Nút trung tâm phân phổi công việc, các nút con nhận công việc tính toán và trả về kết quá Quá trình đó có thể xảy ra các trường hợp sau:

- K ẻt quả được tính toán hoàn toàn chính xác

- K ết quả tính toán không chính xác

- Nút con không tải được dữ liệu từ server về

- ứ n g dụng tại nút con bị lỗi

Việc kết quả sai lệch có thể do một sổ nguyên nhân sau [3]:

- H ardw are malfunctions: Các máy tính khi thay đổi “clock rate” có thể dẫn đến việc lỗi bit Những lỗi này có thể xảy ra khi tính toán dấu phẩy động do đó kết quả tính toán là sai lệch

- Incorrect software modifications: Một số dự án cung cấp m ã nguồn mở cho người tham gia tải về, do đó họ có thể sửa đổi nội dung của chương trình, điều đó có thể đẫn đến kết quả trả về sai lệch

- M alicious attack: Hiểm họa do kẻ xấu cố tình gửi kết quả sai đến

Trang 21

máy tính đẽ xử lý, sau đó kết quả thu về được so sánh với nhau và tìm cách để đưa

ra m ột kết quả đúng

A lchem i là một bộ công cụ mới bởi vậy chưa được xây dựng khả năng tính toán dư thừa, việc xây dựng một module cung cấp khả năng cho Alchemi là cần thiết

Việc phát triển m odule tính toán dư thừa có thể dựa trên kỹ thuật Homgeneous Redundancy (đã được Boinc m ột dự án tính toán lưới khác sử dụng)

1.2 Kỹ thuật Homogeneous Redundancy (HR):

Khái niệm:

Kỹ thuật H om ogeneous Redundancy là tính toán trên cùng một mẫu công việc (input - output - file thực thi giống nhau) trên những máy tính có khả năng tương đương nhau (ví dụ khả năng tính dấu phẩy động)

M ô tả:

H R chia các m áy tham gia thành nhiều lớp tương đương nhau về mặt tính toán (hai máy tính sẽ thuộc cùng một lớp nếu chúng trả về kết quà giống nhau trên cùng một công việc) M ột mẫu công việc sẽ chỉ được gửi đi tới các máy thuộc cùng một lớp

Có 3 tùy chọn khi phân lớp:

0 : T ất cả các m áy đều thuộc chung một lớp

1 : Phân lớp rố ràng nhất với 80 lớp (4 hệ điều hành và 20 loại CPU)

2 : Phân lớp đơn giản với 4 lớp phân theo hệ điều hành: Windows, Linux, Mac- PPC và M ac-Intel

1.3 Xây dựng ntoduỉ tính toán dư thừa

Để phát triển module tính toán dư thừa cho Alchemi, trước tiên phải tìm hiểu cách hoạt động của bộ điều phối công việc (Scheduler) của Alchemi và các tiến trình gửi và nhận công việc giữa ba thành phần trong Alchemi là: ứ n g dụng (A pplication), Bộ quản lý (Manager), Bộ xử lý (Executor, hay một ứng dụng độclập)

H o ạ t đ ộ n g củ a A lch em ỉ:

Trong kiến trúc của Alchemi, Alchemi.Core là thư viện khung của toàn bộ chương trình Thư viện Core bao gồm các lớp định nghĩa các giao diện để thực thi

Trang 22

IM anager, IExecutor, IOwner và một số các lớp quan trọng khác như Gnode (là lớp

trừu tượng (abtract) đại diện cho một nút hay thành phần), lớp GConnection (đùng

đê tạo kêt nôi), hay các lớp OwnEndPoint, RemoteEndPoint (đại diện cho chính

máy tính nội bộ hay m áy tính ờ x a )

Việc nhận và gửi công việc, hay lập lịch cho công việc được xử lý tất cả trên

M anager qua một lớp đại diện cho bộ Scheduler cùa M anager, mặc định trong mã nguôn của A lchem i là lóp DefaultScheduler (kế thừa giao diện IScheduler - giao diện định nghĩa các hàm cơ bản của việc lập lịch) Bộ lập lịch mặc định

D efaultScheduler sẽ tìm trong cơ sờ dữ liệu công việc có mức ưu tiên cao nhất và gửi đi khi có máy tính sẵn sàng nhận công việc

Công việc sau khi được xử lý bởi các Executor hay một ứng dụng động lập được gửi trả về M anager qua hàm E xecutorT hreadFinished(id) thuộc giao diện Imanager Hiện tại, ngay khi kết quà được gửi về, Alchemi mặc định coi đó là kết quả đúng và lập tức cập nhật vào cơ sờ dữ liệu

Tiến trình gửi nhận công việc có thể hình dung theo sơ đồ dưới (Hình 8)

Hình 8: Hoạt động của Alchemi

H oạt động của A lchem i sau khi thêm module tính dư thừa:

Hoạt động của việc gửi nhận công việc như trẽn có thê xảy ra những trường hợp như đã giới thiệu ở phần đầu Công việc phát triển thêm module tính toán dư

Trang 23

- Xây dựng m ột bộ lập lịch mới (HRScheduler) thực thi giao diện Ischeduler.

- Xây dựng bộ chuẩn hóa (MValidator)

- X ây dựng lớp M ValidatorCollection quản lý các bộ đồng hóa

Thuộc tính Redundancy được thêm vào trong lớp Manager Thuộc tính Redundancy xác định sô lần một công việc được tính dư thừa, cũng như số kết quả trả về để so sánh đưa ra kết quả chính xác

Alchem i cung cấp một giao diện chuẩn cho các bộ lập lịch là IScheduler, để tạo một bộ lập lịch mới cần thiết phải thực thi giao diện IScheduler Trong giao diện IScheduler, hàm GetNextAvailableThread() sử đụng để điều phối công việc, mục đích trả lại định danh của Thread trong cơ sở dữ liệu cần xử lý, công việc điều phổi công việc để thêm module tính toán dư thừa sẽ viết lại hàm này Bộ lập lịch mới (HRScheduler) sẽ có nhiệm vụ phân bố một công việc nhiều lần, số lẩn phụ thuộc vào tham sỏ Redundancy Trong Alchemi, dữ liệu công việc sẽ chỉ được lưu trong một kho chứa duy nhất, việc trao đổi công việc sẽ thông qua định danh của công việc đó Vì vậy việc tăng số lần của một công việc không ảnh hưởng tới việc lưu trữ trong cơ sở dữ liệu, bởi bộ lập lịch chi gửi thuộc tính định danh (id) cùa công việc

đó Việc phân bố m ột công việc nhiều lần cho các tài nguyên khác nhau sẽ dẫn tới việc tăng thời gian tính toán và phải sừ dụng nhiều tài nguyên cho một công việc

Đẻ tối ưu hóa công việc này, chúng tôi sử dụng thuật toán lập lịch dựa trên kỹ thuật tổi ưu hóa của nhóm bầy Với cách làm này module tính toán dư thừa thật sự đã phát huy được ưu điểm của nó

Lớp M V alidator đại diện cho bộ chuẩn hóa được xây dựng, nó bao gồm các thuộc tính xác định các Thread cần chuẩn hóa ( thuộc tính Threads), và các hàm chuẩn hóa ( hàm Com pareTw oThread() so sánh hai Thread, và IsFinished() xác định công việc đã được chuẩn hóa chưa) Bộ chuẩn hóa (lớp M Validator) có nhiệm vụ thu thập các kết quả tính được từ một công việc, so sánh các kết quả với nhau và đưa ra kết luận N ếu các kết quả so sánh không có sự sai lệch nào bộ chuẩn hóa sẽ báo công việc kết thúc, ngược lại coi như công việc đó chưa được tính và sẽ được tính lại Việc so sánh các kết quả của bộ chuẩn hóa được tiến hành bằng cách so sánh từng byte một, vì vậy chỉ cần có một byte khác nhau giữa hai kết quả sẽ dẫn đến việc tính lại toàn bộ công việc đó Trước khi nhận một kết quả đã xử lý và cập nhật cơ sở dữ liệu qua hàm Executor_ThreadFinished(), các kết quả sẽ được đưa vào một bộ Validator K ết quả sẽ chỉ được cập nhật trong cơ sờ dữ liệu khi hàm IsFinishedQ của lớp M V alidator trà lại kết quả đúng

Trang 24

Mỗi công việc sẽ có riêng một bộ chuẩn hóa nhằm đảm bảo tính đúng đắn của kết quả công việc đó Lớp MvalidatorCollection làm nhiệm vụ lưu trữ, quản lý các

bộ chuẩn hóa đó.

Trang 25

Hình 9: Mô hình gừi và nhận cồng việc trong Alchemi sau khi ỉhêrn Modul

tính toán dư thừa

1.4 Xây dựng module xác nhận tỉnh đúng đẳn của kết quả

Đe xác định tính đúng đắn của một kết quả, thông thường ta phải tính lại toàn

bộ với dữ liệu ban đầu rồi so sánh với kết quả đã nhận Công việc này đòi hỏi phải tính toán lại hoàn toàn công việc, do vậy tốn tài nguyên cùa hệ thống Để có thể kiểm tra tính đúng đắn của kết quả một cách nhanh hơn, ta có thể gắn thêm một phần dữ liệu khác gửi kèm theo dữ liệu của công việc Dữ liệu gửi thêm yêu cầu phải nhỏ và hàm tính toán dựa trên dữ liệu thêm vào cũng phải nhanh để không tốn tài nguyên hệ thống cũng như băng thông mạng Việc đàm bảo tính đúng đắn của cả kết quả gửi về sẽ được đảm bảo qua kết quả tính toán của dữ liệu gửi kèm theo Dữ liệu và hàm để tỉnh sẽ độc lập với người sử dụng Người sử dụng sẽ không hề biết

có sạ có mặt của dữ liệu thêm vào

M odule đảm bảo tính đúng đắn của kết quả:

V iệc thực thi m odule đảm bảo tính toàn vẹn như sau: Phần dữ liệu thêm vào mỗi một công việc gửi đi trong tà M anager sẽ được thêm vào hai bytes ngẫu nhiên Hàm tính toán đơn thuần chỉ là hàm cộng hai byte dữ liệu thêm với nhau Công việc gửi đến bộ xử lý, bộ xử lý được viết lại để tính giá trị kết quả và gắn vào kết quả gửi trả về

Trang 26

Qui trình tạo và phê chuẩn dữ liệu được mô tả ở hai hình vẽ dưới:

Hình 10: Qui trình tạo dữ liệu trên Manager

Hình 11: Qui trình tạo dữ liệu trên Executor

Trang 27

II Thực thi chưorng trình sau khi đã thêm các module pbát triển thêm:

Việc thực thi các tính năng mới phát triển bên trên là hoàn toàn đơn giản Alchemi đã được cung cấp thêm một giao diện mới cho việc tùy chọn thực thi các tính năng trên

Có m ột combo box trên giao diện tab Option cho phép lựa chọn số lượng công việc gửi đi cho cùng m ột mẫu công việc Và một check box cho phép lựa chọn có sử dụng chức năng đảm bảo tính đủng đắn của dữ liệu hay không

• Log Messages

I Manage! Stopped

Hình 12: Giao diện Tab Option mới của M anager

Trang 28

Phần III XÂY D ự N G ỨNG DỤNG RAYTRACING D ự A TRÊN

để tạo ảnh bàng cách lấy những điểm được chiếu trên vật thể lên tấm ảnh Ngày này chúng ta gọi phương pháp này là “hình chiếu của hình ba chiều lên ảnh hai chiều”[4]

Hình 33: M inh họa việc tạo ảnh thòi kỳ Phục hưng

Raytracing cũng đã được sử dụng trong những thiết kế cho các ống kính lens của máy ảnh, óng nhòm, hay máy quay phim

1.2 Tổng quan và khái niệm:

Trong tất cả các kỹ thuật tạo ảnh (render) trong đồ họa được sử dụng ngày

Ngày đăng: 18/03/2015, 16:25

HÌNH ẢNH LIÊN QUAN

Hình  8:  Hoạt  động  của  Alchemi - 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
nh 8: Hoạt động của Alchemi (Trang 22)
Hình  9:  Mô  hình  gừi  và  nhận  cồng việc trong Alchemi  sau  khi  ỉhêrn  Modul - 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
nh 9: Mô hình gừi và nhận cồng việc trong Alchemi sau khi ỉhêrn Modul (Trang 25)
Hình  11:  Qui trình tạo dữ liệu trên Executor - 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
nh 11: Qui trình tạo dữ liệu trên Executor (Trang 26)
Hình  10:  Qui  trình  tạo  dữ liệu  trên  Manager - 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
nh 10: Qui trình tạo dữ liệu trên Manager (Trang 26)
Hình  12:  Giao  diện  Tab  Option  mới  của  M anager - 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
nh 12: Giao diện Tab Option mới của M anager (Trang 27)
Hình  33:  M inh  họa việc tạo  ảnh  thòi  kỳ Phục  hưng - 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
nh 33: M inh họa việc tạo ảnh thòi kỳ Phục hưng (Trang 28)
Hình  55:  Cảnh  giới  thiệu  bộ  phim  Cars - 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
nh 55: Cảnh giới thiệu bộ phim Cars (Trang 31)
Hình  16:  M ột cảnh  trong trò  chơi  Quake  sử dụng Raytracing - 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
nh 16: M ột cảnh trong trò chơi Quake sử dụng Raytracing (Trang 32)
Hình  17:  Hoạt  họa các  kbổi  câ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
nh 17: Hoạt họa các kbổi câu (Trang 39)
Hình  18:  Hoạt  họa  các  khối  cầu  2 - 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
nh 18: Hoạt họa các khối cầu 2 (Trang 40)
Hình  19:  Hoạt  họa  bánh  xe quay - 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
nh 19: Hoạt họa bánh xe quay (Trang 41)
Hình  20:  Hoạt  họa  ấm  trà  (không texture) - 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
nh 20: Hoạt họa ấm trà (không texture) (Trang 42)
Hình  21:  Hoạt  họa  ẩm  trà  (có  texture) - 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
nh 21: Hoạt họa ẩm trà (có texture) (Trang 43)
Hỡnh  22:  hoạt  họa  ấm  trà  quay  quaoh  trục  đung (cú te*.urEằ - 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
nh 22: hoạt họa ấm trà quay quaoh trục đung (cú te*.urEằ (Trang 44)
Bảng 1:  So sánh hiệu quả của các thuật toán  Tuy nhiên,  kết quả trong bảng 2 chỉ ra ràng thuật toán PSO có thời gian thực hiện là ít hơn so với - 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
Bảng 1 So sánh hiệu quả của các thuật toán Tuy nhiên, kết quả trong bảng 2 chỉ ra ràng thuật toán PSO có thời gian thực hiện là ít hơn so với (Trang 51)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w