Ứng dụng công nghệ MYSQL và lập trình SOCKET TCP nhằm song song hóa một số kỹ thuật toán trên đồ thị

70 5 0
Ứng dụng công nghệ MYSQL và lập trình SOCKET TCP nhằm song song hóa một số kỹ thuật toán trên đồ thị

Đ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

Trang ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KHOA TIN - - NGUYỄN MẬU TUỆ NGHIÊN CỨU THUẬT TỐN SONG SONG KHĨA LUẬN TỐT NGHIỆP Luận văn tốt nghiệp Trang MỤC LỤC MỞ ĐẦU .5 Bối cảnh thực tế Mục tiêu nghiên cứu Phương pháp nghiên cứu Đối tượng nghiên cứu Phạm vi nghiên cứu Nội dung nghiên cứu 7 Cấu trúc báo cáo CHƯƠNG - LÝ THUYẾT XỬ LÝ SONG SONG 1.1 Kiến trúc loại máy tính song song 1.1.1 Kiến trúc máy tính 1.1.2 Phân loại máy tính song song 1.1.3 Mơ hình trừu tượng máy tính song song 11 1.2 Một số mơ hình lập trình song song thơng dụng 12 1.2.1 Mơ hình chia khơng gian nhớ 12 1.2.2 Mô hình truyền thơng điệp 12 1.2.3 Cấu trúc chương trình truyền thơng điệp 13 Luận văn tốt nghiệp Trang 1.3 Thuật toán song song 14 1.3.1 Nguyên lý thiết kế thuật toán song song 14 1.3.2 Ba cách tiếp cận để thiết kế thuật toán song song 15 1.3.3 Cách thức xây dựng chương trình song song 15 CHƯƠNG - JDBC TRUY VẤN MYSQL VÀ LẬP TRÌNH SOCKET TCP 17 2.1 JDBC 17 2.1.1 Một số đặc điểm JDBC 18 2.1.2 Kiến trúc JDBC 18 2.1.3 Các lớp chủ yếu chịu trách nhiệm thiết lập kết nối 23 2.1.4 Các Bước Cơ Bản Khi Làm Việc Với JDBC 24 2.2 Lập trình Socket TCP 28 2.2.1 Định nghĩa 28 2.2.2 Mơ hình clients/server sử dụng socket chế độ hướng kết nối TCP 29 2.2.3 Lập trình Socket TCP Java 31 CHƯƠNG - SONG SONG HĨA MỘT SỐ THUẬT TỐN TRÊN ĐỒ THỊ .34 3.1 THUẬT TOÁN DIJKSTRA 34 3.1.1 Phát biểu toán 34 3.1.2 Xây dựng thuật tốn tìm đường ngắn đồ thị 34 3.1.3 Song song hoá thuật tốn tìm đường ngắn đồ thị 35 3.1.4 Kết nghiên cứu 38 3.2 THUẬT TOÁN PRIM 42 3.2.1 Phát biểu toán 42 3.2.2 Xây dựng thuật tốn tìm khung nhỏ 43 3.2.3 Song song hoá thuật tốn tìm khung nhỏ 44 3.2.4 Kết nghiên cứu 47 KẾT LUẬN 51 TÀI LIỆU THAM KHẢO 52 PHỤ LỤC 53 6.1 Chương trình mơ thuật tốn Dijkstra 53 6.2 Chương trình mơ thuật tốn Dijkstra song song 55 Luận văn tốt nghiệp Trang 6.2.1 Server 55 6.2.2 Client 61 6.3 Chương trình mơ thuật tốn Prim 64 6.4 Chương trình mơ thuật toán Prim song song 65 6.4.1 Server 65 6.4.2 Client 68 Luận văn tốt nghiệp Trang MỞ ĐẦU Bối cảnh thực tế Ngày nay, máy tính sử dụng hầu hết lĩnh vực góp phần quan trọng vào việc thúc đẩy phát triển kinh tế, xã hội, khoa học kỹ thuật, Đặc biệt, lĩnh vực tính tốn, máy tính cơng cụ khơng thể thiếu giải tốn địi hỏi khối lượng tính tốn lớn, độ xác cao thời gian thực Với tốn lớn, việc tính toán xử lý vi xử lý hoặc máy tính khơng thể đáp ứng yêu cầu đặt ra, ví dụ: điều khiển tàu vũ trụ, xử lý thông tin gen, điều khiển lị phản ứng hạt nhân, Vì vậy, nhu cầu thực tính tốn song song để tính tốn, giải vấn đề lúc nhiều máy tính khác trở nên cấp thiết nhà khoa học tập trung nghiên cứu Trong ứng dụng thực tế, tốn tìm đường ngắn hai đỉnh đồ thị liên thơng có ý nghĩa to lớn Ví dụ: Bài tốn chọn hành trình tiết kiệm (theo tiêu chuẩn khoảng cách, thời gian hoặc chi phí) mạng giao thơng đường bộ, đường thuỷ hoặc đường khơng; Bài tốn chọn phương pháp tiết kiệm để đưa hệ thống động lực từ trạng thái xuất phát đến trạng thái đích; Bài tốn lập lịch thi cơng cơng đoạn cơng trình thi cơng lớn; Bài tốn lựa chọn đường truyền tin với chi phí nhỏ mạng thơng tin, … Bài tốn trở nên phức tạp số lượng đối tượng cần xét duyệt tăng lên hàng triệu lần, địi hỏi khối lượng tính tốn lớn việc ứng dụng cơng nghệ tính tốn song song để tăng tốc thời gian xử lý Mục tiêu nghiên cứu Tổng quát: Song song hóa số thuật toán đồ thị Cụ thể:  Nghiên cứu tính tốn song song  Nghiên cứu lập trình JBDC lập trình socket TCP  Xây dựng thuật tốn Dijkstra, Prim tìm tiến trình cần song song hóa  Thực nghiệm thuật tốn Dijkstra, Prim Luận văn tốt nghiệp Trang Phương pháp nghiên cứu Xử lý song song q trình xử lý gồm nhiều tiến trình kích hoạt đồng thời tham gia giải vấn đề, nói chung thực hệ thống đa xử lý Một mục đích xử lý song song nghiên cứu xây dựng thuật tốn thích hợp để cài đặt máy tính song song, nghĩa phát triển thuật tốn song song phương pháp song song hóa thuật toán Để thấy rõ ý nghĩa xử lý song song, chúng tơi chọn tốn cụ thể có thuật tốn tuần tự, sau triển khai giải toán thuật toán song song so sánh hiệu hai phương pháp Trong phạm vi đề tài, chọn tốn tìm đường ngắn đồ thị tốn tìm khung nhỏ có trọng số làm ứng dụng để xử lý song song Bài tốn tìm đường ngắn số tốn tối ưu đồ thị tìm ứng dụng rộng rãi thực tế ứng dụng thú vị lý thuyết tổ hợp Bài toán giải nhà khoa học máy tính người Hà Lan Edsger Dijkstra, thuật tốn Dijkstra (xây dựng vào năm 1956 xuất vào năm 1959) - thuật toán giải toán đường ngắn nguồn đơn đồ thị có hướng khơng có cạnh mang trọng số âm; Bài tốn tìm khung nhỏ ứng dụng toán xây dựng hệ thống đường sắt, tốn nối mạng máy tính Hiện có thuật tốn tìm thấy internet Trong q trình xây dựng thuật tốn, tơi ý đến hai vấn đề, cài đặt nguyên thuật toán, đồng thời, nghiên cứu tìm tiến trình cần xử lý song song Tôi tập trung nghiên cứu lý thuyết tính tốn song song, phương pháp xây dựng giải thuật song song, phương pháp chuyển đổi giải thuật sang giải thuật song song ứng dụng nghiên cứu để cài đặt giải thuật xây dựng chương trình cho tốn tìm đường ngắn dựa vào giải thuật Dijkstra tốn tìm khung nhỏ dựa vào giải thuật Prim Kết mong muốn chương trình xử lý đồ thị với dung lượng lớn, hoạt động nhiều BXL khác Luận văn tốt nghiệp Trang Đối tượng nghiên cứu Thuật tốn Dijkstra tìm đường ngắn đồ thị có hướng đơn nguồn Thuật tốn Prim tìm khung nhỏ đồ thị vơ hướng Thuật toán song song cách xây dựng thuật toán song song dựa thuật toán Phạm vi nghiên cứu Không gian: nghiên cứu biến đổi cấu trúc để tận dụng khả song song tự nhiên tất thành phần hệ thống xử lý Thời gian: từ 31/01/2012 đến 26/05/2012 Nội dung nghiên cứu Nghiên cứu thuật tốn tìm đường ngắn thuật tốn tìm khung nhỏ Dựa sở vận dụng thuật toán Dijkstra, Prim lý thuyết thuật toán song song, đề tài nghiên cứu để tìm tiến trình cần xử lý song song Từ đó, xây dựng thuật tốn song song phân chia cơng việc cho xử lý nhằm giảm thời gian xử lý Cấu trúc báo cáo Báo cáo tổ chức thành chương Chương mở đầu giới thiệu lý chọn đề tài, mục đích, phương pháp nghiên cứu để giải vấn đề Chương trình bày kỹ thuật xử lý song song: bao gồm kiến trúc máy tính phân loại máy tính song song, giới thiệu mơ hình lập trình song song thơng dụng, ngun lý thiết kế thuật toán song song, cách thức xây dựng chương trình song song Chương trình bày kỹ thuật JDBC lập trình Socket TCP Java sử dụng chương trình mơ thuật tốn Chương phân tích thuật tốn Dijkstra Prim nhằm song song hóa Thiết kế chương trình demo kết đạt Luận văn tốt nghiệp Trang CHƯƠNG - LÝ THUYẾT XỬ LÝ SONG SONG 1.1 Kiến trúc loại máy tính song song 1.1.1 Kiến trúc máy tính Kiến trúc máy tính nghiên cứu cách tổ chức để liên kết thành phần hệ thống máy tính Máy tính xây dựng từ khối sở: + Bộ nhớ: để lưu trữ liệu + Các đơn vị logic số học (ALU): thực phép toán + Các phần tử xử lý: điều khiển CU truyền liệu vào/ra + Đường truyền liệu Sự khác máy tính liên kết khối với 1.1.2 Phân loại máy tính song song Dựa vào đặc tính số lượng BXL, số luồng liệu/ chương trình thực hiện, Michael Flynn đưa cách phân loại theo hình nhiều người chấp nhận Hình Phân loại hệ thống máy tính theo Flynn(1966) SISD: (Đơn luồng lệnh, đơn luồng liệu) Máy tính loại SISD có CPU, thời điểm thực lệnh đọc, ghi mục liệu Tất máy tính SISD có ghi gọi đếm chương trình sử dụng để nạp địa lệnh xử lý kết thực theo thứ tự xác định câu lệnh (hình 2) Luận văn tốt nghiệp Trang Hình Kiến trúc SISD SIMD: (Đơn luồng lệnh, đa luồng liệu) Máy tính loại SIMD có đơn vị điều khiển để điều khiển nhiều đơn vị xử lý thực theo luồng câu lệnh CPU phát sinh tín hiệu điều khiển tới tất phần tử xử lý, BXL thực phép toán mục liệu khác nhau, nghĩa BXL có luồng liệu riêng Đây kiểu tính tốn lặp lại đơn vị số học CPU, cho phép đơn vị khác thực toán hạng khác nhau, thực lệnh Máy tính SIMD hỗ trợ xử lý kiểu véc tơ, gán phần tử véc tơ cho phần tử xử lý để tính tốn đồng thời Máy tính véc tơ BXL mảng mơ hình chủ yếu thuộc loại (hình 3) Hình Kiến trúc SIMD Luận văn tốt nghiệp Trang 10 MISD: (Đa luồng lệnh, đơn luồng liệu) Máy tính loại MISD ngược lại với SIMD Máy tính MISD thực nhiều chương trình (nhiều lệnh) mục liệu, nên gọi MPSD (đa chương trình, đơn luồng liệu) Kiến trúc kiểu chia thành hai nhóm: - Lớp máy tính u cầu đơn vị xử lý (PU) khác nhận lệnh khác để thực mục liệu Đây kiến trúc khó chưa có loại máy tính sản xuất theo loại - Lớp máy tính có luồng liệu chuyển theo dãy CPU liên tiếp Đây loại kiến trúc hình ống thực xử lý theo véc tơ thông qua dãy bước, bước thực chức sau chuyển kết cho PU thực bước Hoạt động máy tính theo kiến trúc loại giống hệ tuần hồn nên cịn gọi hệ tâm thu (hình 4) Hình Kiến trúc MISD MIMD: (Đa luồng lệnh, đa luồng liệu) Máy tính loại MIMD cịn gọi đa BXL, BXL thực luồng lệnh (chương trình) khác luồng liệu riêng Hầu hết hệ thống MIMD có nhớ riêng truy cập vào nhớ chung cần, giảm thiểu trao đổi BXL hệ thống Đây kiến trúc phức tạp nhất, mơ hình hỗ trợ xử lý song song cao có nhiều máy tính sản xuất theo kiến trúc (hình 5) Luận văn tốt nghiệp Trang 56 Luận văn tốt nghiệp Trang 57 Luận văn tốt nghiệp Trang 58 Luận văn tốt nghiệp Trang 59 Luận văn tốt nghiệp Trang 60 Luận văn tốt nghiệp Trang 61 6.2.2 Client Hàm/ Lớp Funclion ListenProcessSend() Funclion int[] MinNode(String test) Function String UpdateMinFindTrue(int a, int w) Class BackgroundClient Class Message Luận văn tốt nghiệp Chức Kết nối, lắng nghe trả lời yêu cầu từ server Lấy liệu, phân rã, chuyển liệu đến client Trả message gửi cho server Điều khiển giao diện chương trình Nhận gửi thơng điệp Trang 62 Luận văn tốt nghiệp Trang 63 Luận văn tốt nghiệp Trang 64 6.3 Chương trình mơ thuật toán Prim Hàm/ Lớp Chức Funclion init(Connect conn) Lấy liệu từ database, khởi tạo giá trị ban đầu Funclion Boolean Deplay(int a) Trả true tìm thấy khung nhỏ Class Connect Tạo đối tượng kết nối sở liệu Class BackgroundConnect Điều khiển giao diện chương trình Luận văn tốt nghiệp Trang 65 6.4 Chương trình mơ thuật tốn Prim song song 6.4.1 Server Hàm/ Lớp Chức Funclion boolean Process(String str) Chờ client kết nối, trả true đủ số client yêu cầu Funclion init(Connect conn) Lấy liệu, phân rã, chuyển liệu đến client Function Deplay(int a) Trả true tìm thấy khung nhỏ Class BackgroundServer Điều khiển giao diện chương trình Class Message Nhận gửi thơng điệp Class AddDatabase Tạo sở liệu tự động Luận văn tốt nghiệp Trang 66 Luận văn tốt nghiệp Trang 67 Luận văn tốt nghiệp Trang 68 6.4.2 Client Hàm/ Lớp Funclion ListenProcessSend() Funclion int[] MinNode(String test) Function String UpdateMinFindTrue(int a) Class BackgroundClient Class Message Luận văn tốt nghiệp Chức Kết nối, lắng nghe trả lời yêu cầu từ server Lấy liệu, phân rã, chuyển liệu đến client Trả message gửi cho server Điều khiển giao diện chương trình Nhận gửi thông điệp Trang 69 Luận văn tốt nghiệp Trang 70 Luận văn tốt nghiệp ... quát: Song song hóa số thuật tốn đồ thị Cụ thể:  Nghiên cứu tính tốn song song  Nghiên cứu lập trình JBDC lập trình socket TCP  Xây dựng thuật toán Dijkstra, Prim tìm tiến trình cần song song hóa. .. chương trình song song Chương trình bày kỹ thuật JDBC lập trình Socket TCP Java sử dụng chương trình mơ thuật tốn Chương phân tích thuật tốn Dijkstra Prim nhằm song song hóa Thiết kế chương trình. .. tối đa lập trình song song, điều làm cho cơng việc viết chương trình song song mở rộng cách hiệu 1.3 Thuật toán song song 1.3.1 Nguyên lý thiết kế thuật toán song song Thuật toán song song tập

Ngày đăng: 08/05/2021, 21:05

Từ khóa liên quan

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

Tài liệu liên quan