Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 52 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
52
Dung lượng
838,98 KB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NÔI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Chí Cơng XÂY DỰNG ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRÊN NỀN TẢNG SỨC MẠNH CÁC MÁY TÍNH CÁ NHÂN KHỐ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin HÀ NỘI -2010 I ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Chí Cơng XÂY DỰNG ỨNG DỤNG TÍNH TỐN PHÂN TÁN TRÊN NỀN TẢNG SỨC MẠNH CÁC MÁY TÍNH CÁ NHÂN KHỐ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công Nghệ Thông Tin Cán hướng dẫn: ThS Đào Minh Thu HÀ NỘI - 2010 II Tóm tắt nội dung Tính tốn phân tán cơng nghệ thiết thực hiên Những hệ thống tính tốn phân tán giúp giải tốn khoa học lớn mà máy tính khơng thể giải Ngày có nhiều middleware phục vụ cho việc xây dựng hệ thống tính tốn phân tán Trong khóa luận trình bày số nghiên cứu tính tốn phân tán, nghiên cứu kiến trúc, cách thức hoạt động số hệ thống tính tốn phân tán phổ biến, giới thiệu số dự án tính tốn khoa học thực thi nhờ hệ thống tính tốn phân tán Khóa luận trình bày bước đầu xây dựng hệ thống tính tốn phân tán, với phần mềm bên phía người dùng tích hợp vào ứng dụng facebook Người dùng không cần cài đặt phần mềm client nào, mà cần có trình duyệt web tham gia vào dự án tính tốn Việc tạo điều kiện mở rộng dự án tính toán dễ dàng hơn, làm tăng hiệu suất hệ thống tính tốn phân tán I Mục lục Tóm tắt nội dung I Mục lục II Danh mục hình vẽ V Chương I : Giới thiệu 1.1 Đặt vấn đề 1.2 Nội dung khóa luận Chương II: Các hệ thống tính tốn phân tán .4 2.1 BOINC 2.1.1: Giới thiệu .4 2.1.2: Kiến trúc BOINC 2.1.3 Một số dự án thực BOINC .8 2.2: Condor 2.2.1 Giới thiệu .9 2.2.2 Kiến trúc 2.3: Globus Toolkit 13 2.3.1 Giới thiệu .13 2.3.2 Kiến trúc 13 2.4: So sánh 16 2.4.1 Độ phức tạp hệ thống 16 2.4.2 Độ phức tạp cho người phát triển ứng dụng 16 2.4.3 Độ phức tạp cho người dùng .17 Chương III: Kiến trúc hệ thống 18 3.1: Kiến trúc tổng thể .18 3.2: Các thành phần 19 3.2.1: Server Task 20 II 3.2.1.1: Nhiệm vụ .20 3.2.1.2: Chức 21 3.2.1.3: Cấu hình 21 3.2.2: Server Application .23 3.2.2.1: Nhiệm vụ .23 3.2.2.2: Chức 23 3.2.2.3: Cấu hình 23 3.2.3: Node Applet 24 3.2.3.1: Nhiệm vụ .24 3.2.3.2: Chức 24 3.2.3.3: Cấu hình 24 3.3: Ứng dụng tính tốn .25 3.3.1: Định nghĩa 25 3.3.2: JPPF API 25 3.4: Task 26 3.4.1: Định nghĩa Task 26 3.4.2: Input Data File .26 3.4.3: Result 27 Chương IV: Cài đặt hệ thống .28 4.1 Server Task 28 4.1.1 JPPFDriver 28 4.1.2 JPPFNode 30 4.1.3 Server Task Configuration 31 4.2 Server Application .33 4.2.1 JPPFClient 33 4.2.2 JPPFTask .35 4.2.3 Server Application Configuration .36 III 4.3 Node Applet .38 4.3.1 NodeRunner 38 4.3.2 JPPFClassLoader 39 4.3.3 Node Applet Configuration 40 4.4 Một số ứng dụng tính tốn 42 Chương V : Tổng kết 44 IV Danh mục hình vẽ Hình 2.1: Kiến trúc hệ thống BOINC 10 Hình 2.1: Kiến trúc hệ thống Condor 15 Hình 2.3: Kiến trúc hệ thống Globus Toolkit .17 Hình 3.1: Kiến trúc tổng thể hệ thống 22 Hình 3.2: Kiến trúc chi tiết hệ thống 24 Hình 3.3: Mơ hình kết nối TCP/IP hệ thống 26 Hình 4.1: Hình ảnh mơ tả phân chia task tới máy tính Node 47 Hình 4.2: Biểu đồ thời gian thực thi có máy tính 47 Hình 4.3: Biểu đồi thời gian thực thi có ba máy tính 48 V Chương I – Giới thiệu 1.1 Đặt vấn đề Khi khoa học phát triển đặt nhiều tốn với khối lượng tính tốn lớn, với lượng lớn liệu cần xử lý Trong nhiều ngành khoa học khác toán tồn muốn xử lý chúng Trong thiên văn học có điều mà ln muốn khám phá “liệu có văn minh ngồi trái đất khơng?”, câu hỏi lớn mà nhiều năm qua người chưa tìm lời giải đáp thỏa đáng Với khoa học kỹ thuật thu tín hiệu từ bên ngồi trái đất, xử lý tín hiệu để hy vọng tìm văn minh bên ngồi trái đất Nhưng tín hiệu thu ngồi trái đất nhiều, dùng máy tính có cơng suất tính tốn lớn phái nhiều thời gian để xử lý lượng tín hiệu này, lâu tìm câu trả lời cho câu hỏi Trong ngành cơng nghệ thơng tin có tốn quen thuộc tốn phá mã Một phương pháp phá mã đơn giản duyệt toàn bộ, ta thử tất trường hợp khóa tìm khóa Độ dài khóa định đến số lượng phép thử, ví dụ với hệ mã hóa DES sử dụng 56 bit làm khóa, tức có 256 = 72x1016 giá trị khóa Nếu sử dụng máy tính bình thường có tốc độ tính tốn giải mã /μs phải khoảng 1142 năm, thời gian lâu so với tuổi thọ thông tin Muốn phá mã nhanh dùng máy tính chun dụng (giá khoảng 250.000$) phá mã ngày Nhưng trường hợp sử dụng 56 bit làm khóa, sử dụng khóa với độ dài 128 bit hay 126 bit máy tính tỏ khơng hiệu Trong y học có nhiều dự án với khối lượng tính tốn lớn, dự án “Help Defeat Cancer [10]” dự án nghiên cứu khả chống bệnh ung thư Với dự án này, nhà nghiên cứu cần phân tích số lượng lớn mơ ung thư lúc, dùng máy tính thông thường khoảng 168 năm, lâu cần tìm phương pháp trị bệnh ung thư sớm tốt Trong nhiều ngành khoa học khác toán học, sinh học … có nhiều tốn lớn đặt ra, việc giải toàn giúp phát triển ngành khoa học phục vụ sống, Vì nhu cầu giải toán thiết thực Ngày mạng máy tính phát triển mạnh, mạng Internet với hàng triệu máy tính kết nối với Đối với người dùng bình thường cơng suất tính tốn máy tính thường khơng sử dụng hết Trong khoảng thời gian máy tính nhàn rỗi, khả tính tốn khơng tận dụng Vậy ta không sử dụng khả tính tốn để giải tốn phức tạp trên? Mỗi máy tính nhàn rỗi sử dụng để tính tốn phần nhỏ tốn, nhiều máy tính tham gia tính tốn tao lên hệ thống tính tốn mạnh mẽ Nếu kết nối hàng triệu máy tính Internet, tạo mạng lưới tính tốn khổng lồ, tốn lớn giải quết thời gian ngắn Để người tham gia tính tốn cho dự án đó, họ cần biết dự án đó, biết cách để sử dụng máy tính tham gia vào hệ thống tính tốn Vì ta cần quảng bá cho người dùng biết dụ án tính tốn, cung cấp cho họ công cụ để tham gia vào hệ thống tính tốn Mạng xã hội ngày phát triển, Facebook mạng xã hội có lượng người dùng lớn hiên Nó nơi lý tưởng để quảng bá thông tin dự án tính tốn Trên Facebook bạn giao lưu, liên lạc với bàn bè, với nhiều người tham gia Facebook Khi người dùng Facebook tham gia vào dự án tính tốn, họ giới thiệu cho bạn bè, người thân hay mà họ quen biết Facebook Những dự án tính tốn thường dự án có ích cho xã hội nên người sẵn lòng tham gia vào dự án tính tốn Một vấn đề khiến người ngại tham gia vào hệ thống tính tốn hệ thống tính tốn nay, thường bắt người dùng phải cài phần mền lên máy để tham gia vào việc tính tốn Bất kỳ máy tính muốn tham gia vào hệ thống tính tốn cần cài đặt phần mềm Vậy xây dựng hệ thống tính tốn phân tán, mà người dùng khơng cần cài đặt phần mền tham gia vao hệ thống giúp khả huy động lượng người dùng lớn, tình nguyện tham gia vào dự án tính tốn Web một cơng cụ hữu ích cho chúng ta, thực thay đổi sống Một trang web với chương trình applet thay cho phần mềm tham gia vào hệ thống tính tốn Khi người dùng truy cập vào trang web, chương trình applet chạy thực thi việc tính tốn Chúng ta vào web máy tính có kết nối mạng Internet, tham gia vào cơng việc tính tốn Tích hợp trang web vào ứng dụng Facebook tạo thành công cụ tuyệt vời để phát triển dự án tính tốn Theo thơng kê Nielsen (một công ty khảo sát thị trường) cho thấy Facebook địa gây tốn thời gian người dùng Web Người dùng Facebook bỏ thời gian lên mạng gấp lần so với người không tham gia mạng lưới giao tiếp xã hội Một ứng dụng Facebook sử dụng phần mềm tham gia vào hệ thống tính tốn phân tán, phướng án tốt để mở rộng hệ thống tính tốn phân tán, tăng số người tham gia vào hệ thống, từ tăng khả tính tốn 1.2 Nội dung khóa luận Trong khóa luận chúng tơi trình bày số nghiên cứu hệ thống tính tốn phân tán, Middleware phổ biến dùng hệ thống tính tốn phân tán Bước đầu triển khai hệ thống tính tốn phân tán, với ứng dụng Facebook sử dụng để người dùng tham gia vào hệ thống tính tốn Nội dung chi tiết khóa luận gồm chương: Chương I: Giới thiệu khóa luận, đặt vấn đề cần giải khóa luận Chương II: Giới thiệu số hệ thống tính tốn phân tán, kiến trúc hệ thống đưa so sánh Ba hệ thống giới thiệu BOINC, Condor, Globus hệ thống phổ biến Chương III: Trình bày kiến trúc hệ thống tính tốn phân tán sử dụng ứng dụng Facebook thay cho phần mềm Chương IV: Trình bày cách cài đặt chương trình, triển khai số ứng dụng tính tốn phân tán hệ thống kết Chương V: Tổng kết, nhận xét hệ thống, thành đạt kế hoạch phát triển dự án executeManage để thực thi task gọi phương thức processResults thực thi gửi trả kết server stopNode(): Phương thức dừng node giải phóng tài nguyên sử dụng 4.1.3 Server Task Configuration Thơng tin cấu hình server lưu file cấu hình Cấu hình thơng tin mạng Cấu hình cổng lắng nghe kết nối từ Server Application, Node 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 gửi quảng bá thơng tin mạng (địa host số cổng) thông qua chế UDP multicast Nhờ chế Node Server Application tự tìm Server Task hoạt động mạng Để Server Task tự động quảng bá thơng tin mạng ta cần gán thuộc tính jppf.discovery.enabled 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 broadcasts, in milliseconds jppf.discovery.broadcast.interval = 1000 31 Server Task kết nối tới Server Task khác tạo thành mạng kiểu mạng ngang hàng Có loại kết nối server A server B + A B khơng có kết nối + A kết nối tới B ( A hoạt động Node kết nối tới B) + B kết nối tới A ( B hoạt động Node kết nối tới A) + A B kết nối với Có hai cách để định nghĩa kết nối từ server tới server khác mạng Tự động tìm kiếm server khác mạng để kết nối # Enable or disable auto-discovery of other peer servers (defaults to false) jppf.peer.dicovery.enabled = true Với cách này, Server Task tự động tìm kiếm Server Task khác hoạt động mạng để thực kết nối Cấu hình 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 32 Với cách cấu hình tay ta định Server Task kết nối với Server Task Giá trị “jppf.peer.server_1.server.host” cần phải trùng với giá trị “class.server.host” file cấu hình server_1 giá trị “node.peer.server_1.port” cần phải trùng với giá trị “node.server.port” file cấu hình server_1 Cấu hình thuộc tính cân tải jppf.load.balancing.algorithm = JPPF cung cấp bốn thuật toán cân tải: + manual: bunle chứa cố định số task, tức node chia cho số lượng task + autotuned: sử dụng thuật toán Monte Carlo + proportional: tính thời gian trung bình để thực thi task dựa vào việc tham gia node, từ gửi lượng task tương ứng với thời gian thực thi trung bình tới node + rl: thuật tốn dựa kỹ thuật trí thơng minh nhân tạo gọi reinforcement learning 4.2 Server Application Tạo kết nối tới Server Task, gửi task tới Server Task nhận kết trả để xử lý Những lớp Server Application 4.2.1 JPPFClient Lớp JPPFClient cung cấp API cho việc kết nối tới Server Task, gửi task câu lệnh điều khiển 33 JPPFClient - String uuid - JPPFClient() - void initPools() - List submit() - void close() Những thuộc tính uuid: định danh JPPF, định danh để xác định ứng dụng kết nối tới Server Task Những phương thức initPools(): phương thức đọc thơng tin file cấu hình gọi phương thức newconnection để tạo kết nối tới Server Task submit(): phương thức thực việc gửi Task tới Server Task, phương thức có đối số: tasklist, dataProvider, policy, priority + tasklist: danh sách task cần submit + dataProvider: cung cấp khả chia sẻ liêu task, đối số null + policy: chế thực thi task, đối số định task có thực thi node khơng + priority: quyền ưu tiên, xác định quyền ưu tiên thực thi task close(): phương thức thực dừng Server Application giải phóng tài nguyên sử dụng 34 4.2.2 JPPFTask Là lớp trừu tượng cho tất task gửi tới server để thực thi, lớp mô tả việc chia sẻ liệu task, mô tả ngoại lệ việc thực thi task, mô tả kết việc thực 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() Những thuộc tính id: định danh task position: vị trí task theo thời gian gửi tới server, vị trí hàng đợi thực thi task result: kết thực thi task exption: ngoại lệ việc thực thi task dataProvider: chế chia sẻ liệu task Những phương thức getId(): trả id task setId(): thiêt lập id cho task getResult(): trả kết thực thi task 35 setResult(): thiết lập kết task, phương thức người phát triển ứng dụng tính tồn dùng để định nghĩa kết task theo ứng dụng tính tốn getExeption(): trả ngoại lệ việc thực thi task setExeption(): thiết lập ngoại lệ việc thực thi task getDataProvider(): trả chế chia sẻ liệu task setDataProvider(): thiết lập chế chia sẻ liệu gữa task getPosition(): trả vị trí task hàng đợt thực thi task setPosition(): thiết lập vị trí task hàng đợi thực thi task Ngồi JPPFTask cịn định nghĩa số phương thức khác onCancel(), onRestart(), onTimeout() để xử lý kiện xẩy task 4.2.3 Server Application Configuration Server Application kết nối tới nhiều Server Task, file cấu hình liệt kê tên địa Server Task mà kết nối tới # space-separated list of drivers this may connect to # defaults to “default-driver” jppf.drivers = driver-1 driver-2 Cấu hình thơng tin mạng Với Server Task ta định nghĩa thuộc tính địa host số cổng # 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 36 Thứ tự ưu tiên Server Task # assigned driver priority driver-1.priority = 10 Giá trị định thứ tự ưu tiên Server Task, Server Applicaton ln sử dụng kết nối tới Server Task có độ ưu tiên cao nhất, kết nối tới Server Task có độ ưu tiên cao bị ngắt, tạo kết nối tới Server Task có độ ưu tiên Recovery and Failover # number of seconds before the first reconnection attempt reconnect.initial.delay = # 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 = Chúng ta cấu hình chế khơi phục kết nối Server Application Server Task gặp cố, với thông tin cấu trên, Server Application thực việc khôi phục lại kêt nối sau 1s kết nối bị ngắt, cố gắng kết tạo kết nối 60s, sau 60 mà không tạo kết nối chờ 1s sau để tiếp tục thử lại việc tạo kết nối 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 = 37 Với việc cấu hình cho phép Server Application tham gia vào việc tính tốn node Mặc định giá trị false 4.3 Node Applet Chạy máy tính tham gia vào lưới tính tốn, thực thi Task trả kết cho Server Task Những lớp Node Applet 4.3.1 NodeRunner Là applet, thực thi việc chạy Node, tạo kết nối tới Server Task, sử dụng chế classloader tải lớp JPPFNode để thực thi task gửi kết trả Server Task NodeRunner - JPPFClassLoader classLoader - SocketWrapper nodeSocket - MonitoredNode node - void init() - void runMain() - MonitoredNode createNode() - JPPFClassLoader getJPPFClassLoader() - void shutdown() Những thuộc tính classLoader: có kiểu JPPFClassLoader, classloader dùng để load lớp cần java chạy node nodeSocket: có kiểu SocketWrapper, socket kết nối tới Server Task node: có kiểu MonitoredNode đối tượng tạo nhờ chế classloader NodeRunner dùng chế classloader tải lớp JPPFNode Server Task để tạo đối tượng kiểu MonitoredNode Những phương thức 38 init(): phương thức tạo applet runMain(): phương thức thực thi việc chạy node, phương thức gọi tới hàm createNode để tạo node chạy createNode(): sử dụng chế classloader tải lớp JPPFNode Server Task để tạo node có kiểu MonitoredNode getJPPFClassLoader(): phương thức trả classloader dùng việc thực thi NodeRunner shutdown(): phương thức dừng chạy Node 4.3.2 JPPFClassLoader Một ClassLoader cho phép tải lớp từ xa trình thực thi JPPFClassLoader - SocketWrapper socketClient - List uuidPath - String requestUuid - void init() - void initSocketClient() - Class findClass() - JPPFResourceWrapper loadResourceData() - JPPFResourceWrapper loadRemoteData() Những thuộc tính socket: socket kết nối tới remote host, để tải lớp uuidPath: danh sách id ứng dụng gửi lên Server Task requestUuid: id bundle task mà node thực Những phương thức Init(): tạo socket kết nối tới remote host 39 initSocket(): thiết lập thông tin cho socket theo thông tin file cấu hình findClass(): phương thức thực tải class theo tên class định, gặp lỗi gọi phương thức System ClassLoader, phương thức gọi tới phương thức loadResoureData() để lấy thống tin class cần tải, dùng phương thức defineClass() để môt tả class tải theo thông tin lấy nhờ phương thức loadResoureData() phương thức gọi tới phương thức loadRemoteData() để đọc thông tin class định thông qua socket Phương thức trả đối tượng JPPFResourceWrapper, đối tượng tóm lược thông tin class định loadResourceData(): 4.3.3 Node Applet Configuration Cấu hình mạng # 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 Thơng tin cấu hình định nghĩa địa cổng Server Task mà node kết nối tới 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 40 # 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 Nếu giá trị jppf.discovery.enabled gán true, node tự động tìm kiếm Server Task có mạng để kết nối Recovery and failover # number of seconds before the first reconnection attempt reconnect.initial.delay = # 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 = Cũng giống Server Application, thơng tin cấu hình mơ tả chế thực khôi phục kết nối bị ngắt Security policy Chính bảo mật giới hạn việc node làm máy tính mà chạy Để kích hoạt sách ta cần rõ đường dẫn tới file định nghĩa sách bảo # Path to the security file, relative to the current directory or classpath jppf.policy.file = jppf.policy Nếu giá trị khơng định nghĩa, sách bảo mật bị vơ hiệu hóa 41 4.4 Một số ứng dụng tính tốn Chúng tơi xây dựng thử nghiệm tốn giải mã DES hệ thống tính tốn Bài tốn đặt có rõ mã hóa rõ đó, cần tìn khóa dùng để mã hóa bả rõ Để giải tốn sử dụng phương thức duyệt toàn bộ, duyệt giá trị khóa, dùng khóa để giải mã mã hóa, sau so sánh với rõ để tìm khóa Bài tốn cần tính tốn hệ thống tín tốn phân tán để tăng suất tính tốn, tốn cần chia làm nhiều phần nhỏ, phần nhỏ task, task định nghĩa việc thử 100 khóa, kết trả cho server false 100 khóa sai, có khóa kết trả true giá trị khóa Do điều kiện vật chất không cho phép, cho chạy thử ứng dụng máy, chạy thử 5000 task, kết cho thấy hệ thống chia task cho máy thực thi Hình 4.1 Mơ tả phân chia task tới máy tính Node Thống kê thời gian thức thi cho thấy, chạy với máy tính thời gian thực thi nhanh máy tính Hình 4.2 biểu đồ thời gian thực thi có máy tính, đường màu đỏ cho thấy thời gian thực thi trung bình khoảng 51ms 42 Hình 4.2 Biểu đồ thời gian thực thi có máy tính Hình 4.3 biểu đồ thời gian thực thi có máy tính, ta thấy thời gian thực thi trung bình khoảng 30ms Hình 4.3 Biểu đồ thời gian thực thi có ba máy tính 43 Chương V – Tổng kết Dựa kiến thức tìm hiểu tính tốn phân tán việc phát triển ứng dụng facebook Chúng tơi phân tích nắm bắt kiến trúc hệ thống tính tốn phân tán, cách thức hoạt động triển khai hệ thống tính tốn phân tán Bên cạnh chúng tơi nắm bắt quy trình triển khai ứng dụng facebook Từ kết nghiên cứu đó, chúng tơi bước đầu xây dựng hệ thống tính toán phân tán kết hợp với ứng dụng facebook Hệ thống có sử dụng ứng dụng mã nguồn mở tính tốn lưới làm tảng để phát triển ứng dụng JPPF [12] Chúng tơi cải tiến ứng dụng tính tốn lưới để triển khai môi trường web, giúp cho việc tham gia người dùng dễ dàng Chúng tơi xây dựng vài tốn tính tốn dựa hệ thống tính tốn phân tán này, để kiếm thử q trình hoạt đống Và hệ thống thực tốn mơi trường lưới tính tốn Do điều kiện vật chất thời gian hạn hẹp nên hệ thống triển khai quy mô nhỏ, tin với việc phát triển mạng máy tính mạng xã hội nay, hệ thống dễ dàng mở rộng phát triển Việc phát triển ứng dụng tính tốn phân tán cịn quan tâm nhiều tương lai, giải pháp hữu hiệu để giải nhứng toán khoa học lớn Trong tương lai xây dựng hệ thống với quy mô rộng lớn Cải tiến thuật tốn chương trình để chương trình vận hành tốt hơn, xác hơn, sử dụng tài nguyên máy tính lưới tính tốn phù hợp nhằm tăng hiệu hệ thống Về ứng dụng, cải tiến hệ thống API giúp cho người phát triển tốn tính tốn dễ dàng triển khai ứng dụng Về ứng dụng facebook, cải tiến giao diện người dùng, giúp người dùng dễ dàng tham gia vào dự án tính tốn, biến trở thành cầu nối người dùng dự án tính tốn Từ tạo điều kiện mở rộng dự án tính tốn, tăng hiệu thực thi Sẽ tốt người chung chung sức hồn thành dự án có ích cho toàn xã hội 44 Tài liệu tham khảo Tiếng 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/paper.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/ Tiếng việt [13] PGS.TS Vũ Đức Thi, PGS.TS Trần Văn Lăng, PGS.TS Nguyễn Thanh Thuỷ, GS.TSKH Phạm Kỳ Anh, PGS.TS Lê Anh Dũng, Tính tốn lưới số vấn đề nghiên cứu, phát triển tính tốn lưới Việt Nam, Hội thảo quốc gia lần thứ XI: Một số vấn đề chọn lọc CNTT - TT Huế, 12 – 13/6/2008 45 ... file) gửi kết trả lại cho máy tính Execution Machine Exeution Machine chạy máy tính tham gia vào lưới tính tốn, deamon Startd thực thi job mà Submit Machine gửi tới, chạy gửi tới Central Manager... việc 2.2.2 Kiến trúc Hệ thống Condor [1] gồm thành phần chính: Central Manager, Submit Machine, Execution Machine (Hinh 2.2) Central Manager Central Manger có nhiệm vụ thu thập nguồn tài nguyên,... nối hệ thống Condor Nó có trách nhiệm quản lý quyền ưu tiên người dùng hệ thống Submit Machine Submit Machine cho phép người dùng gửi job tới hàng đợi ảo máy cục (scheduler) Scheduler đàm phán