Ứng dụng tính toán phân tán trong xây dựng hệ thống render phân tán

78 21 0
Ứng dụng tính toán phân tán trong xây dựng hệ thống render phân tán

Đ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

Đặng Xuân Kỷ LUẬN VĂN CAO HỌC ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẶNG XN KỶ ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN Chuyên ngành: Công Nghệ Thông Tin Mã Số Ngành: 01.02.10 LUẬN VĂN THẠC SĨ TP Hồ Chí Minh, tháng 12 năm 2005 ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN i Đặng Xuân Kỷ LUẬN VĂN CAO HỌC TĨM TẮT Việc giải tốn lớn khoa học cơng nghệ địi hỏi sức mạnh tính tốn máy tính Vì việc tận dụng tài nguyên máy tính rảnh rỗi để giải toán lớn trở nên cần thiết mang lại giá trị kinh tế cao Hệ thống render phân tán xây dựng với mục đích Trong hệ thống này, nhiều phim xử lý lúc với nhiều độ ưu tiên khác tùy chọn đoạn phim phim yêu cầu xử lý thời điểm khơng biết trước Vì chế định thời theo dự án phát triển nhằm giải yêu cầu tận dụng hiệu tài ngun tính tốn Mặt khác, hệ thống render phân tán cho phép lựa chọn thay đổi chế định thời thực thi, cung cấp khả chịu lỗi Ngoài ra, người sử dụng truy cập hệ thống thơng qua cổng giao tiếp Web từ vị trí để thực thi công việc, giám sát công việc thực thi, giám sát hệ thống quản trị hệ thống Các thử nghiệm cho thấy hệ thống render phân tán đáp ứng yêu cầu đặt phát triển thành mơ hình tính tốn ứng dụng cho công ty họat động lĩnh vực phim ba chiều ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN ii Đặng Xuân Kỷ LUẬN VĂN CAO HỌC ABSTRACT The large-scale applications in areas of science and industry require more and more computing resources While there are many free and/or under load computers, a economic solution to fulfill the above requirement is to utilize these computing resources In the same idea, the Java Distributed Rendering System is developed to deal with problems in the field of (film) rendering This system allows many films to be rendered simultaneously with differennt priorities; The parts of a film are submitted at unknown points of time On the one hand, the project scheduling algorithm is presented to solve the requirements On the other hand, the different scheduling mechanisms can be chosen on the fly Moreover, users can access the system via a Web Portal, in where many operations are supported such as submitting jobs, monitoring running jobs, managing the system, etc The Java Distributed Rendering System has been run and the experiences show that it can be applied in companies working in the field of (film) rendering ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN iii Đặng Xuân Kỷ LUẬN VĂN CAO HỌC LỜI CẢM ƠN Em xin bày tỏ lòng cám ơn sâu sắc đến Thầy hướng dẫn TS Thọai Nam Những ý kiến Thầy giúp em cải tiến nhiều thực đề tài Cám ơn Thầy tận tình hướng dẫn em suốt thời gian thực Em xin cảm ơn Thầy TS Dương Tuấn Anh, Thầy TS Lê Trung Chơn, Thầy phịng Đào Tạo Sau Đại Học khuyến khích Thầy giúp em tiếp tục để hồn thành đề tài Em xin chân thành cảm ơn thầy cô khoa Công Nghệ Thông Tin trường Đại Học Bách Khoa TP.HCM kiến thức thầy truyền lại cho em năm học Đại Học Khoa Con xin ghi lên lòng biết ơn to lớn với bố mẹ với bao khó nhọc thành người Anh cám ơn người vợ hiền lo lắng cho anh để anh n tâm hồn thành cơng việc ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN iv Đặng Xuân Kỷ LUẬN VĂN CAO HỌC MỤC LỤC TÓM TẮT III ABSTRACT III LỜI CẢM ƠN IV MỤC LỤC V DANH SÁCH CÁC HÌNH VIII CHƯƠNG GIỚI THIỆU U I GIỚI THIỆU II Ý NGHĨA CỦA ĐỀ TÀI III KẾT LUẬN U CHƯƠNG ĐẶC TẢ VẤN ĐỀ & MỤC TIÊU ĐỀ TÀI I ĐẶC TẢ BÀI TOÁN II NHỮNG ĐỀ TÀI LIÊN QUAN .4 III MỤC TIÊU CỦA ĐỀ TÀI .7 CHƯƠNG MƠ HÌNH VÀ CÁC THÀNH PHẦN TRONG HỆ THỐNG I MƠ HÌNH II GIỚI THIỆU VỀ CÁC THÀNH PHẦN 10 Các cấp hệ thống 10 Các thành phần hệ thống 10 2.1 Bộ định thời 10 2.2 Hệ quản lý tài nguyên 10 2.3 Bộ phận thực thi công việc 11 2.4 Cổng giao tiếp 11 2.5 Hệ quản trị sở liệu 11 III TỔNG KẾT 11 CHƯƠNG CƠ CHẾ GIAO TIẾP & MƠ HÌNH NHĨM LÀM VIỆC 12 I CƠ CHẾ GIAO TIẾP 12 Mơ hình truyền nhận thông điệp qua socket 12 Mơ hình đối tượng phân tán 12 Nhận xét 13 Kết luận 13 II NHÓM LÀM VIỆC 13 Nhu cầu để xây dựng nhóm làm việc 13 1.1 Xác định tĩnh 14 1.2 Xác định động 14 ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN v Đặng Xuân Kỷ LUẬN VĂN CAO HỌC Đặc tả thông điệp nhóm làm việc 14 Nhận xét 15 CHƯƠNG XÂY DỰNG BỘ ĐỊNH THỜI 16 I CƠ CHẾ ĐỊNH THỜI CHO HỆ THỐNG 16 Định thời tĩnh 16 Định thời động 16 Các kỹ thuật xây dựng chế định thời động 16 3.1 Dùng kỹ thuật JNI 17 3.2 Dùng kỹ thuật Reflection Java 18 3.3 Ứng dụng kỹ thuật Reflection xây dựng danh sách thực thi 18 3.4 Kết luận 19 II CÁC MƠ HÌNH ĐỊNH THỜI 19 Mơ hình tập trung & Chiến lược định thời theo độ ưu tiên thời gian 19 Mơ hình phân tách & chiến lược định thời theo tập hợp 21 Mơ hình tổng hợp với chiến lược định thời theo dự án 24 Kết Luận 26 III GIÁM SÁT CÁC CÔNG VIỆC ĐANG THỰC THI 27 Các trạng thái công việc 27 Sơ đồ chuyển trạng thái công việc 27 Giám sát công việc từ thông tin phận thực thi công việc 29 Giám sát trạng thái từ thông tin cập nhật trạng thái tài nguyên 29 IV PHÁT HIỆN VÀ KHẮC PHỤC LỖI 29 Dịch vụ giám sát định thời 29 Tự động khôi phục trạng thái 30 Những trường hợp gây lỗi cho định thời 31 3.1 Máy chứa định thời bị chết 31 3.2 Dịch vụ định thời bị tự kết thúc 31 3.3 Đường cáp mạng đến định thời bị ngắt 31 CHƯƠNG XÂY DỰNG BỘ PHẬN THỰC THI CÔNG VIỆC .32 I TIẾP NHẬN CÔNG VIỆC 32 Tải CPU không vượt 50% 32 Khi chưa có cơng việc thực thi 32 Người dùng cho phép máy tham gia vào hệ thống 33 II THỰC THI CÔNG VIỆC 34 Khởi tạo môi trường cho công việc 34 Tạo tuyến trình thực thi 34 III GỞI TRẢ KẾT QUẢ 35 Thực gởi kết thực công việc 35 Gởi kết dựa vào file cấu hình đặc tả kết 35 IV PHÁT HIỆN VÀ KHẮC PHỤC LỖI 36 Phát lỗi đường truyền mạng xử lý lỗi 36 Khắc phục lỗi máy phận thực thi bị lỗi 37 Xử lý cơng việc khơng hồn tất 37 CHƯƠNG HỆ QUẢN LÝ TÀI NGUYÊN 38 I DỊCH VỤ TÀI NGUYÊN CỤC BỘ 39 ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN vi Đặng Xuân Kỷ LUẬN VĂN CAO HỌC Đăng ký tham gia hệ thống 39 Giám sát trạng thái tài nguyên 39 2.1 Các loại thông tin tài nguyên 39 2.2 Giám sát tải CPU 39 Cập nhật thông tin tài nguyên lên hệ thống 40 3.1 Cập nhật có yêu cầu 40 3.2 Cập nhật tự động 40 3.3 Nhận xét 40 II DỊCH VỤ TÀI NGUYÊN HỆ THỐNG 41 Quản lý tài nguyên 41 Cung cấp tài nguyên cho định thời 41 III KẾT LUẬN 42 CHƯƠNG CỔNG GIAO TIẾP .43 I ĐĂNG NHẬP MỘT LẦN 43 Giới thiệu 43 Xây dựng 43 Giới thiệu HttpSession 43 Nhận xét 44 II XÁC ĐỊNH CÁC THÀNH PHẦN CỦA HỆ THỐNG 44 Xác định định thời hành 44 III CÁC CHỨC NĂNG CỦA CỔNG GIAO TIẾP 45 Đăng nhập vào hệ thống 45 Sử dụng chức hệ thống 46 2.1 Gởi công việc lên định thời 47 2.2 Giám sát trạng thái công việc 48 2.3 Giám sát tài nguyên hệ thống 49 2.4 Quản trị hệ thống 50 CHƯƠNG HIỆU SUẤT HỆ THỐNG .52 I CÁC MÁY TÍNH ĐƯỢC DÙNG TRONG THỰC NGHIỆM 52 II CÁC PHÉP ĐO VÀ KẾT QUẢ 52 Phép đo để kiểm tra hiệu suất hệ thống 52 Phép đo để kiểm tra giải thuật định thời thực nhiều dự án khác hệ thống 56 CHƯƠNG 10 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 60 I KẾT LUẬN 60 II HƯỚNG PHÁT TRIỂN 61 PHỤ LỤC 62 I REMOTE METHOD INVOCATION (RMI) 62 II REFLECTION API 68 TÀI LIỆU THAM KHẢO 70 ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN vii Đặng Xuân Kỷ LUẬN VĂN CAO HỌC DANH SÁCH CÁC HÌNH Hình 3.1: Mơ hình thành phần hệ thống …………………………………………9 Hình 5.1: Chiến lược định thời với danh sách thực thi …………………………………17 Hình 5.2: Chiến lược định thời để so sánh hai cơng việc …………………………… 19 Hình 5.3: Mơ hình định thời tập trung ……………………………………………………….20 Hình 5.4: Mơ hình định thời phân tách ………………………………………………………21 Hình 5.5: Mơ hình định thời phân tách kết hợp với quan hệ tài nguyên ……… 23 Hình 5.6: Mơ hình định thời tổng hợp ……………………………………………………….25 Hình 5.7: Sơ đồ chuyển trạng thái cơng việc ……………………………………….28 Hình 5.8: Dịch vụ giám sát định thời …………………………………………………….30 Hình 6.1: Thực thi cơng việc …………………………………………………………………….34 Hình 6.2: Gởi kết trực tiếp …………………………………………………………………35 Hình 6.3: Dịch vụ giám sát thành phần cấp cục ……………………………….37 Hình 7.1: Mơ hình hệ quản lý tài nguyên ………………………………………………… 38 Hình 8.1: Sơ đồ thành phần cổng giao tiếp ……………………………………45 Hình 8.2: Giao diện đăng nhập …………………………………………………………………46 Hình 8.3: Giao diện gởi cơng việc lên hệ thống ………………………………………….48 Hình 8.4: Giao diện giám sát cơng việc …………………………………………………… 49 Hình 8.5: Giao diện giám sát trạng thái tài nguyên …………………………………….50 Hình 8.6: Giao diện quản trị hệ thống ……………………………………………………….51 Hình 9.1: Kết thực render hai cảnh có 500 1000 frame máy …………………………………………………………………………………………………………53 Hình 9.2: Kết thực render cảnh có 500 chia thành 10 cơng việc con……………………………………………………………………………………………………53 Hình 9.4: Kết q thực render dự án với 300 frame 3……55 ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN viii Đặng Xuân Kỷ LUẬN VĂN CAO HỌC CHƯƠNG GIỚI THIỆU I GIỚI THIỆU Ngày tính tốn phân tán (Distributed Computing) ứng dụng nhiều lĩnh vực khác hạ tầng mạng máy tính tốc độ cao phát triển nhanh chóng Bên cạnh việc tồn tài nguyên rảnh rỗi hay chưa sử dụng hết công xuất công ty tận dụng để xây dựng hệ thống tính tốn phân tán Các hệ thống giúp tối ưu việc sử dụng tài nguyên giảm chi phí cho họat động sản xuất Khơng nằm xu trên, hệ thống Render phân tán xây dựng cho công ty lĩnh vực phim 3D Hệ thống render phân tán xây dựng với mục đích tận dụng tài nguyên rảnh rỗi máy tính hệ thống mạng cục công ty Đồng thời kết hợp tài nguyên với hệ thống máy tính render chuyên dụng để tạo thành hệ thống tài nguyên thống giúp nâng cao suất thực công việc render Một vấn đề nảy sinh cho hệ thống việc giải tốn phân phối công việc thuộc dự án khác có nhiều dự án thực thi hệ thống Đây tốn định thời có độ ưu tiên Trong tốn ta phải kết thúc dự án có độ ưu tiên cao trước đồng thời phải tránh việc dự án có độ ưu tiến thấp bị trì hỗn Giải thuật định thời theo dự án (Project Based Scheduling) xây dựng hệ thống giải vấn đề Các công việc render sử dụng nhiều tài nguyên CPU nhớ thực Do thực render dễ gặp trường hợp công việc bị ngắt chưa thực xong Để khắc phục vấn đề này, đề tài trình bày phương pháp phát khắc phục lỗi (Fault Tolerance) hai cấp độ cấp máy định thời cấp máy làm việc Phát khắc phục lỗi giúp hệ thống thực thi công việc hiệu Chúng ta khảo sát chi tiết phương pháp chương chương Bên cạnh phần tảng hệ thống thực công việc quản lý thực thi công việc, đề tài xây dựng cổng giao tiếp (Web Portal) Cổng giao tiếp xây dựng nhằm giúp cho việc sử dụng quản trị hệ thống đơn giản dễ dàng Chúng ta khảo sát trình xây dựng cổng giao tiếp chương ỨNG DỤNG TÍNH TOÁN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN Đặng Xuân Kỷ LUẬN VĂN CAO HỌC II Ý NGHĨA CỦA ĐỀ TÀI Hệ thống Render phân tán đóng vai trị quan trọng cơng nghệ xây dựng phim họat hình ba chiều hiệu ứng kỹ thuật số ngày Với hệ thống Render phân tán, q trình xây dựng phim diễn nhanh chóng hiệu Quá trình xây dựng nên hình ảnh để tạo thành phim xây dựng qua nhiều giai đoạn : Tạo nhân vật (modeling), diễn nhân vật (animation), render cảnh diễn, xử lý hậu kỳ (composing).Trong cơng đoạn render cảnh diễn tiêu tốn nhiều thời gian Nếu để người diễn xuất thực máy họ khơng thể làm việc khác Thay vào cho thực công việc máy làm việc khác người diễn xuất làm việc khác Việc giúp tận dụng khả người lao động nâng cao suất sản xuất Hệ thống giúp trình render hiệu cao trình điều khiển hệ thống tập trung Việc điều khiển công việc render tập trung mối, người quản lý hệ thống tập trung yêu cầu thực yêu cầu Ngay khơng thể đến cơng ty người quản lý kiểm tra trạng thái cơng việc thơng qua hệ thống WEB Internet Đây ưu lớn hệ thống Với đặc điểm này, người quản lý không cần vào công ty ngày cuối tuần đảm bảo trình thực công việc diễn tốt đẹp Điều làm giảm nhiều thời gian cho việc hồn thành cơng việc Bên cạnh ý nghĩa hiệu hiệu suất công việc nâng lên, hệ thống cịn cải tiến mở rộng để thực công việc khác nhằm tận dụng tài nguyên mạng Bằng cách nâng cấp máy phục vụ, xây dựng thêm dịch vụ hệ thống cải tiến thành hệ đa dịch vụ chuyên dùng cho công ty phim họat hình chiều ỨNG DỤNG TÍNH TOÁN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN Đặng Xuân Kỷ LUẬN VĂN CAO HỌC b Tuy nhiên, thực tập liệu khác số lượng frame mà hiệu suất đạt lại có khác biệt lớn 2.1 so với 2.889 Điều giải thích máy thực thi cơng việc có cấu hình khác biệt nên dẫn đến thời gian thực thi công việc máy khác Trong lần render 500 frame thực máy RD11 tốn hết 2878 giây Trong lần render 1000 frame thực máy PC75 tốn hết 4129 giây Còn thực render trường hợp thực thi song song công việc công việc lớn khác biệt chúng khơng nhiều 996*2 – 1966 = 26 giây Đó lý dẫn đến khác biệt hiệu suất hệ thống lần thực nghiệm Phép đo để kiểm tra giải thuật định thời thực nhiều dự án khác hệ thống Thực nghiệm Thực render cho dự án khác tập liệu cảnh có 300 frame Dự án 1: BALL_300_1 có độ ưu tiên Dự án 2: BALL_300_2 có độ ưu tiên Dự án 3: BALL_300_5 có độ ưu tiên Ba dự án thực hệ thống gồm máy tính RD04, PC75, RD11, RD13 Trong máy RD04 đóng vai trị Scheduler, ba máy cịn lại đóng vai trị máy làm việc ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 56 Đặng Xuân Kỷ LUẬN VĂN CAO HỌC Hình 9.4: Kết quà thực render dự án với 300 frame máy ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 57 Đặng Xuân Kỷ LUẬN VĂN CAO HỌC Bảng kết Dự án Số hình render Thời gian render BALL_300_1 (DA1) 300 1823 BALL_300_2 (DA2) 300 1735 BALL_300_5 (DA5) 300 1114 Bảng 9.2 Kết đo thời gian thực thi dự án Số máy render 3 Đồ thị biểu diễn 2000 1500 1000 500 DA1 DA2 DA5 Nhận xét a Với dự án khác độ ưu tiên thời gian hồn tất công việc khác Chúng giảm dần độ ưu tiên tăng lên công việc hoàn toàn b Tuy nhiên so sánh độ tăng độ ưu tiên so với độ giảm thời gian thực cơng việc chúng khác Chúng ta thấy hệ số dự án theo độ ưu tiên theo thời gian thực là: Theo độ ưu tiên ta có: DA1 : DA2 : DA3 = : : Theo thời gian thực ta có: DA1 : DA2 : DA3 = 1823 : 1735 : 1114 = 1.636 : 1557 : Nếu nhìn vào số ta khơng thấy rõ vấn đề Thực chất thời gian thực dự án phụ thuộc nhiều vào chiến lược định thời mà ta dùng Chúng ta xem cách thức thực thi dự án sơ đồ Trong DAx.y công việc thứ y dự án DAx DA5.0 DA5.5 DA5.X DA5.X DA5.X DA5.X DA2.0 DA2.2 DA2.4 DA2.x DA2.X DA2.X DA1.0 DA1.1 DA1.2 DA1.3 DA1.4 DA1.5 DA5.1 DA5.X DA5.X DA5.X DA5.X DA5.X DA2.1 DA2.3 DA2.5 DA2.X DA2.X DA2.X DA5.2 DA5.X DA5.X DA5.X DA5.X DA5.X DA5.3 DA5.X DA5.X DA5.X DA5.X DA5.X DA5.4 DA5.X DA5.X DA5.X DA5.X DA5.X ỨNG DỤNG TÍNH TOÁN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 58 Đặng Xuân Kỷ LUẬN VĂN CAO HỌC Trong thực tế, ta cần chu kỳ để thực thi hồn tồn cơng việc ba dự án Tuy nhiên có chu kỳ mà có dự án khơng có cơng việc để thực thi Ta thấy rõ xếp lại công việc theo thứ tự thực thi chúng sau: DA5.0 DA2.2 DA2.0 DA1.1 DA1.0 DA2.3 DA5.1 DA2.4 DA2.1 DA1.2 DA5.2 DA2.5 DA5.3 DA1.3 DA5.4 DA1.4 DA5.5 DA1.5 Tuy nhiên trình bày theo cách thức ta không thấy khác biệt thời gian thực thi dự án Bằng mơ hình thực thi song song ta thấy kết thúc dự án cách rõ nét DA5.0 DA2.0 DA1.0 DA5.1 DA2.1 DA5.2 DA5.3 DA5.4 DA5.5 DA2.2 DA1.1 DA2.3 DA2.4 DA1.2 DA2.5 DA1.3 DA1.4 DA1.5 Qua mơ hình ta thấy, cách tương đối, thời gian kết thúc DA2 so với DA3 cách qua hai lần thực thi Thời gian kết thúc DA1 so với DA2 cách lần thực thi Do dự án kết thúc tầt tài ngun cịn lại dùng để thực thi dự án lại ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 59 Đặng Xuân Kỷ LUẬN VĂN CAO HỌC CHƯƠNG 10 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN I KẾT LUẬN Đề tài xây dựng hệ thống hồn chỉnh cho phép cơng việc render gởi lên hệ thống thực thi chúng tài nguyên rảnh rỗi hệ thống Hệ thống thử nghiệm với nhiều mơ hình định thời khác để tìm mơ hình tối ưu cho tốn render với dự án có độ ưu tiên khác Mơ hình định thời sử dụng cho hệ thống mơ hình tổng hợp với chiến lược định thời theo dự án Chiến lược định thời đạt hai yêu cầu hệ thống là: đảm bảo đặc tính tốn render liệu xử lý song song nên đạt hiệu suất cao u cầu cịn lại thời gian tính tốn cho dự án khác khác tùy theo độ ưu tiên dự án Tuy nhiên chiến lược định thời dùng việc định thời Đề tài xây dựng cho phép ta thay đổi chiến lược định thời hệ thống thực thi Đặc tính chế định thời động hệ thống Việc thay đổi chiến lược định thời cho ta linh họat việc sử dụng hệ thống Không phải lúc chiến lược định thời theo dự án hiệu với phí tổn việc xây dựng danh sách thực thi Đối với hệ thống tính tốn phân tán khả chịu lỗi đặc tính quan trọng việc thực thi cơng việc Khả chịu lỗi xây dựng đề tài xây dựng hai cấp cấp hệ thống cấp thực thi Trạng thái trung gian công việc lưu lại hệ thống sở liệu Thông tin trạng thái trung gian dùng để khôi phục công việc dễ dàng công việc bị chết định thời bị ngừng Khả chịu lỗi thể rõ nét qua việc xây dựng hai định thời phụ Một định thời bị ngừng định thời phụ tự động kích họat trở thành định thời hành cho hệ thống Khả tự động kích họat định thời thực nhờ mơ hình nhóm làm việc Mơ hình nhóm làm việc cung cấp khả cho phép thành phần có khả tự xác định Cổng giao tiếp với hệ thống xây dựng cung cấp phương tiện đơn giản hiệu để sử dụng chức hệ thống Người dùng sử dụng cổng giao tiếp vị trí máy mà khơng cần phải cài đặt ứng dụng máy Đây lợi ích to lớn cổng giao tiếp Web Các thử nghiệm cho thấy hệ thống render phân tán đáp ứng yêu cầu đặt phát triển thành mơ hình tính tốn ứng dụng cho công ty họat động lĩnh vực render phim ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 60 Đặng Xuân Kỷ LUẬN VĂN CAO HỌC II HƯỚNG PHÁT TRIỂN Phương pháp định thời theo dự án đáp ứng số yêu cầu đặt cho hệ thống Tuy nhiên phí tổn việc xây dựng danh sách thực thi làm giảm hiệu số trường hợp có dự án độ ưu tiên không khác Một phương pháp định thời cho phép tự động phát thay đổi giải thuật định thời dựa chế cho phép thay đổi giải thuật định thời hệ thống render phân tán hướng thực Bài toán render phim ứng dụng cụ thể mơ hình xử lý phân tán xây dựng đề tài Mơ hình cải tiến để xử dụng cho nhiều tốn khác Mơ hình xử lý hệ thống phân tán mở rộng để triển khai mơi trường tính tốn lưới Khi tính quản lý tập trung khơng cịn nên giải thuật định thời, quản lý tài nguyên, truyền liệu, … phải xem xét giải ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 61 Đặng Xuân Kỷ LUẬN VĂN CAO HỌC PHỤ LỤC I Remote Method Invocation (RMI) (Dựa tài liệu JAVA Lập Trình Mạng tác giả Nguyễn Phương Lan – Hoàng Đức Hải) Giới thiệu Thơng thường chương trình viết dạng thủ tục hay hàm gọi Mã lệnh hàm hay thủ tục nạp thẳng vào nhớ thực thi máy cục Đối với hàm (hoặc đối tượng) thư viện System.out.println() chẳng hạn ta thường khơng quan tâm đến cách thức mà hàm thư viện cài đặt Điều mà ta quan tâm đối số truyền vào kết trả Vậy có cách nạp nội dung hàm hay đối tượng máy gọi chúng từ máy khác hay khơng? Đây nội dung lập trình phân tán mã lệnh RMI - mang ý nghĩa triệu gọi phương thức từ xa – cách thức giao tiếp đối tượng Java có mã lệnh cài đặt (bao gồm phương thức thuộc tính) nằm máy khác triệu gọi lẫn Computer C Computer A C2 A1 C1 A2 C3 Computer B B1 Hình cho thấy mơ hình triệu gọi đối tượng phân tán Trên máy A đối tượng A1, A2 gọi phương thức gọi triệu gọi phương thức cục Tương tự tương tác C1 C2 cục Tuy nhiên, đối tượng Java triệu gọi phương thức đối tượng nằm máy khác dựa vào giao thức triệu gọi từ xa RMI (như A1 gọi C1, A2 gọi B1, C3 gọi B1) ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 62 Đặng Xuân Kỷ LUẬN VĂN CAO HỌC Việc gọi phương thức đối tượng từ xa thọat nhìn đơn giản thực tế lại phức tạp nhiều so với triệu gọi phương thức cục Các đối tượng hai máy khác họat động hai tiến trình (hay khơng gian địa chỉ) khác việc tham chiếu biến, địa đối tượng hoàn toàn khác Mặt khác, lời gọi phương thức cục thường trả kết lời gọi phương thức từ xa phải thơng qua kết nối mạng ln bị ngắt ngang mạng gặp cố Đối với lời gọi hàm máy cục bộ, tham số truyền cho hàm thường đặt vào ngăn xếp tham số truyền cho phương thức đối tượng xa phải đóng gói chuyển qua mạng để đến phương thức thực Cơ chế truyền quản lý biến liệu tiến trình hai máy khác thường gọi mashalling Vai trò lớp trung gian (STUB SKELETION) Để giải vấn đề trên, đối tượng Java hai máy khác không gọi trực tiếp mà thông qua lớp trung gian Lớp trung gian tồn hai phía: máy khách (nơi gọi phương thức đối tượng xa) máy chủ (nơi đối tượng thực cài đặt để thực thi mã lệnh phương thức) Phía máy khách lớp trung gian gọi stub, phía máy chủ lớp trung gian gọi skeletion Ta hình dung stub skeletion hai người môi giới giúp đối tượng xa giao dịch với Computer C Computer A C1 Skel A2 C1 Stub A1 C1 B1 Stub Computer B B1 Skel B1 Ví dụ ta có đối tượng C1 cài đặt máy C Trình biên dịch Java giúp ta tạo hai lớp trung gian C1_Stub C1_Skel Lớp C1_Stub đem ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 63 Đặng Xuân Kỷ LUẬN VĂN CAO HỌC máy A Khi A1 máy gọi C1, chuyển lời gọi đến C1_Stub C1_Stub chịu trách nhiệm đóng gói tham số, chuyển tham số qua mạng đến máy C Trên máy C, lớp C1_Skel nhận tham số chuyển chuyển vào vùng khơng gian địa tương ứng Kết có phương thức đối tượng C1 trả C1_Skel đóng gói trả ngược cho C1_Stub C1_Stub chuyển giao kết cuối lại cho A1 Bằng chế này, A1 ln nghĩ họat động trực tiếp với đối tượng C1 máy cục Hơn nhờ giúp đỡ lớp trung gian C1_Stub, kết nối mạng gặp cố C1_Stub biết cách thông báo lỗi đến đối tượng A1 Thực tế làm cách A1 tham chiếu đến C1, khơng có lớp C1 cài đặt máy A? C1_Stub máy A làm lớp trung gian chuyển tham số thực giao thức mạng, khơng phải hình ảnh đối tượng C1 Để làm điều này, đối tượng C1 cần cung cấp giao tiếp interface tương ứng với phương thức cho phép đối tượng A1 gọi máy A Cài đặt ứng dụng phân tán RMI Dưới ví dụ đơn giản giúp ta dễ dàng hình dung cách làm việc đối tượng RMI Chương trình hệ đối tượng phân tán sau: Calculator_Skel CaculatorClient Calculator_Stub Computer Computer Caculator Đối tượng Calculator chạy máy tính Computer2 gọi đối tượng CalculatorClient chạy máy tính Computer1 Chúng ta xây dựng lớp đối tượng Calculator với đặc tả interface sau: Mã nguồn: Calculator.java import java.rmi.*; public interface Calculator { public int addNumber(int x, int y) throws RemoteException; } Lớp giao tiếp Remote thực dùng để đánh dấu “nói chuyện” với đối tượng addNumber khai báo là interface rỗng, chức giao tiếp cho máy ảo Java biết đặc tính có khả xa Calculator mà Tiếp đến phương thức public ném biệt lệ RemoteException Tất ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 64 Đặng Xuân Kỷ LUẬN VĂN CAO HỌC phương thức muốn gọi từ xa phải ném ngoại lệ Từ lớp giao tiếp, đối tượng thực cài đặt sau: Mã nguồn: CalculatorImpl.java import java.rmi.*; public CalculatorImpl implements Calculator { public int addNumber(int x, int y) throws RemoteException { return (x + y); } } Biên dịch từ dòng lệnh: javac Calculator.java javac CalculatorImpl.java Như ta có đối tượng Calculator chứa phương thức addNumber() gọi từ máy khác Đối tượng Calculator bao gồm hai lớp CalculatorImpl.class chứa cài đặt đối tượng lớp Calculator.class chứa đặc tả để giao tiếp với đối tượng thực CalculatorImpl Vấn đề đặt làm để cài đặt đối tượng Calculator lên máy (máy Computer 2) gọi phương thức addNumber() từ máy khác (máy Computer 1)? Như nêu, không gọi phương thức addNumber() Calculator trực tiếp mà cần có thêm hai lớp giao dịch trung gian Stub Skeletion Dựa vào lớp cài đặt CalculatorImpl.class, trình biên dịch rmic.exe Java cung cấp cho ta hai lớp trung gian Tạo hai lớp trung gian: rmic CalculatorImpl Kết ta thu hai tập tin CalculatorImpl_Stub.class CalculatorImpl_Skel.class Bây ta phải viết chương trình để cài đặt đối tượng Calculator máy Ta gọi chương trình CalculatorServer ỨNG DỤNG TÍNH TOÁN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 65 Đặng Xuân Kỷ LUẬN VĂN CAO HỌC Mã nguồn: CalculatorServer.java import java.rmi.server.*; import java.rmi.*; public class CalculatorServer { public static void main(String [] args) { try { // Tạo đối tượng Calculator thực CalculatorImpl c = new CalculatorImpl(); // Thông báo diện cho máy ảo Java UnicastRemoteObject.exportObject(c); // Đăng ký đối tượng với quản lý rmi Naming.bind(“rmi://localhost/MyCalculator”, c); } catch(Exception e) { System.out.println(e); } } } Biên dịch chương trình: javac CalculatorServer.java Ta nhận thấy chương trình có phần đăng ký đối tượng Calculator với quản lý rmi Phương thức bind nhận hai đối số : đối số thứ chuỗi định vị URL Đối số thứ thân đối tượng cần đăng ký Chuỗi định vị có định dạng sau: rmi://hostname:port/ObjectName rmi : giao thức dùng để đăng ký hostname port : địa cổng máy chủ nơi đăng ký đối tượng rmi họat động ObjectName : tên gợi nhớ mà ta muốn đặt cho đối tượng Các chương trình máy khách dựa vào tên mà truy suất tham chiếu đến đối tượng cần dùng Vậy đăng ký đâu? Ta cần phải chạy chương trình rmiregistry.exe từ dịng lệnh để thực thi đăng ký đối tượng rmi Chương trình chạy dạng dịch vụ Nó có nhiệm vụ đón nhận kết nối chứa thơng tin đối tượng phương thức Naming.bind() gởi đến Mặc định rmiregistry lắng nghe kết nối gởi đến cổng 1099 Ta định số hiệu cổng khác cho rmiregistry Ví dụ: rmiregistry 2001 Chạy chương trình CalculatorServer từ dịng lệnh sau: java CalculatorServer ỨNG DỤNG TÍNH TOÁN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 66 Đặng Xuân Kỷ LUẬN VĂN CAO HỌC Sau tìm hiểu cách xây dựng chương trình phía máy khách có khả gọi sử dụng đối tượng Calculator máy chủ Mã nguồn chương trình sau: Mã nguồn: CalculatorClient.java import java.rmi.*; public class CalculatorClient { public static void main(String [] args) { try { // Tìm đối tượng cần truy suất theo tên Calculator c = (Calculator)Naming.lookup( “rmi://localhost/MyCalculator”); // Gọi phương thức đối tượng System.out.println(c.addNumber(1,2)); } catch(Exception e) { System.out.println(e); } } } Để truy tìm đối tượng xa, chương trình máy khách gọi phương thức tĩnh Naming.lookup() Phương thức yêu cầu đối số chuỗi định dạng cho biết địa máy chủ tên đăng ký đối tượng Calculator c = (Calculator)Naming.lookup( “rmi://localhost/MyCalculator”); Ta hình dung lớp Naming đóng vai trị dịch vụ tìm kiếm Đối tượng máy chủ nhờ dịch vụ Naming để đăng ký tên giao dịch phương thức Naming.bind() Tiếp đến khách hàng muốn quan hệ với đối tượng cần cung cấp tên đối tượng địa nơi đối tượng hữu cách gọi hàm Naming.lookup() Thực thi chương trình client sau: java CalculatorClient Kết trả là: Ví dụ trình bày cách thức xây dựng ứng dụng phân tán RMI Tuy nhiên kiến thức phần RMI Độc giả đọc thêm tài liệu chuyên RMI để hiểu sâu ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 67 Đặng Xuân Kỷ LUẬN VĂN CAO HỌC II Reflection API Các API reflection trình bày phản ánh (reflect) lớp, giao diện (interface), đối tượng máy ảo Java hành Bạn dùng hàm reflection bạn phát triển công cụ debugger, class browser, GUI builder Với hàm bạn có thể: - Xác định lớp đối tượng Lấy thông tin trường, phương thức, hàm dựng, v.v lớp Xác định khai báo phương thức thuộc giao diện Tạo thể (instance) lớp mà tên lớp thực thi - Gọi phương thức đối tượng, chí phương thức khơng biết thực thi - Tạo mảng mà kích thước kiểu thành phần thực thi, sau sửa đổi thành phần mảng Ví dụ sau trình bày ví dụ để xem xét nội dung class giao diện a Lấy đối tượng class (class object) - Nếu có thể lớp Class c = obj.getClass(); - Nếu biết tên class thời điểm dịch, ta lấy cách thêm class vào tên Class c = java.awt.Button.class; - Nếu tên class vào thời điểm biên dịch, ta dùng phương thức forName() Class c = Class.forName(“ten class”); b Lấy tên Class Ta dùng phương thức getName() để lấy tên Class Class c = o.getClass(); String name = c.getName(); c Xác định bổ từ class (modifier) Class c = o.getClass(); int m = c.getModifiers(); boolean bstatic = Modifier.isPublic(m); boolean bfinal = Modifier.isFinal(m); boolean babstract = Modifier.isAbstract(m); d Xác định field Class Field [] publicFields = c.getFields(); for(int i = ; i < publicFields.length ; i++) { System.out.println(“Name: “ + publicFields[i].getName()); Class type = publicFields[i].getType(); System.out.println(“Type: “ + type.getName()); ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 68 Đặng Xuân Kỷ LUẬN VĂN CAO HỌC } e Xác định thông tin phương thức Class c = o.getClass(); Method [] m = c.getMethods(); for(int i = ; i < m.length ; i++) { System.out.println(“Name: “ + m[i].getName()); System.out.println(“Return type: “ + m[i].getReturnType().getName()); Class [] paramTypes = m[i].getParameterTypes(); for(int j = ; j < paramTypes.length ; j++) { System.out.println(“Param: “+ paramTypes[i].getName()); } } Tham khảo chi tiết Reflection địa chỉ: http://java.sun.com/docs/books.tutorial/reflect/ ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 69 Đặng Xuân Kỷ LUẬN VĂN CAO HỌC TÀI LIỆU THAM KHẢO [1] Alias|wavefront, Learning Maya (page 33 – 47) [2] Bill Godfrey, A primer on distributed computing, www.bacchae.co.uk/docs/dist.html [3] Khoa CNTT Trường ĐH Bách Khoa, Lập trình mạng với giao thức TCP/IP [4] Nguyễn Phương Lan, Hồng Đức Hải, Java lập trình mạng (trang 81-290) [5] Elliote Rusty Harold, Java Network Programming 2nd Edition [6] Dale Green, The Reflection API, http://java.sun.com/docs/books/tutorial/reflect/ [7] Wes Bethel, J Dean Brederson, Hierarchical Parallelism in a Scene Graph, http://www.r3vis.com/Downloads/hpsg-2001.pdf [8] Thu D Nguyen, John Zahorjan, Image Layer Decomposition for Distributed Real-Time Rendering on Clusters, http://ipdps.cc.gatech.edu/2000/papers/NguyenThu.pdf [9] Macro Zens, Parallel Rendering, http://www.cgv.tugraz.at/PubArc/dipl/zens97_dipl.pdf ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 70 ... thay đổi chế định thời ỨNG DỤNG TÍNH TOÁN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN Đặng Xuân Kỷ LUẬN VĂN CAO HỌC III MỤC TIÊU CỦA ĐỀ TÀI Hệ thống render phân tán xây dựng đề tài nhằm giải... chờ ỨNG DỤNG TÍNH TOÁN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN 41 Đặng Xuân Kỷ LUẬN VĂN CAO HỌC III KẾT LUẬN Dịch vụ tài nguyên thành phần quan trọng hệ thống Render phân tán Hệ thống. .. tiếp xây dựng nhằm giúp cho việc sử dụng quản trị hệ thống đơn giản dễ dàng Chúng ta khảo sát trình xây dựng cổng giao tiếp chương ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRONG XÂY DỰNG HỆ THỐNG RENDER PHÂN TÁN

Ngày đăng: 16/04/2021, 04:19

Mục lục

  • TÓM TẮT

  • ABSTRACT

  • LỜI CẢM ƠN

  • MỤC LỤC

  • DANH SÁCH CÁC HÌNH

  • CHƯƠNG 1. GIỚI THIỆU

    • I. GIỚI THIỆU

    • II. Ý NGHĨA CỦA ĐỀ TÀI

    • III. KẾT LUẬN

    • CHƯƠNG 2. ĐẶC TẢ VẤN ĐỀ & MỤC TIÊU ĐỀ TÀI

      • I. ĐẶC TẢ BÀI TOÁN

      • II. NHỮNG ĐỀ TÀI LIÊN QUAN

      • III. MỤC TIÊU CỦA ĐỀ TÀI

      • CHƯƠNG 3. MÔ HÌNH VÀ CÁC THÀNH PHẦN TRONG HỆ THỐNG

        • I. MÔ HÌNH

          • 1. Các cấp trong hệ thống

          • 2. Các thành phần trong hệ thống

            • 2.1 Bộ định thời

            • 2.2 Hệ quản lý tài nguyên

            • 2.3 Bộ phận thực thi công việc

            • 2.4 Cổng giao tiếp

            • 2.5 Hệ quản trị cơ sở dữ liệu

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan