Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 68 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
68
Dung lượng
1 MB
Nội dung
i LỜI CẢM ƠN Trong trình học tập nghiên cứu lớp Cao học khóa chuyên ngành Khoa học máy tính Trường Đại học Công nghệ thông tin Truyền thông - Đại học Thái Nguyên, Tôi nhận nhiều giúp đỡ nhiệt tình thầy, cô giáo Trường Đại học Công nghệ thông tin Truyền thông; Viện công nghệ thông tin thuộc Viện khoa học Công nghệ Việt Nam Các thầy, cô giúp đỡ, tạo điều kiện cho trình học tập Tôi xin bày tỏ lời cảm ơn chân thành tới tập thể thầy, cô giáo Trường Đại học Công nghệ thông tin Truyền thông; Viện công nghệ thông tin thuộc Viện khoa học Công nghệ Việt Nam Đặc biệt Tôi xin gửi lời cảm ơn sâu sắc tới thầy giáo TS Vũ Vinh Quang định hướng tận tình hướng dẫn hoàn thành nội dung luận văn Tôi xin cảm ơn bạn đồng nghiệp người thân động viên, giúp đỡ trình nghiên cứu thực luận văn Trong khoảng thời gian ngắn, với kiến thức thân hạn chế nên luận văn không tránh khỏi thiếu sót mặt khoa học, mong nhận đóng góp ý kiến Thầy cô giáo bạn bè để luận văn hoàn chỉnh Xin trân trọng cảm ơn! Thái Nguyên, ngày tháng Học viên Võ Quang Huy năm 2013 ii MỤC LỤC Võ Quang Huy i 1.3.2 Các cách tiếp cận thiết kế 10 1.5 Phân tích đánh giá thuật toán song song .12 1.7.2 Lập trình song song với PVM .21 Hình 2.1 Sơ đồ mạng máy tính với đa kênh thông báo 26 3.1 Một số thuật toán xếp song song 47 3.1.1 Thuật toán xếp đánh số 47 Thuật toán cải tiến sử dụng để xác định vị trí tức việc so sánh với phần tử khác dãy thực song song Trong trường hợp này, độ phức tạp thuật toán .49 3.1.2 Thuật toán xếp so sánh đổi chỗ 49 Bảng 3.1 Sắp xếp theo nguyên tắc hình ống sử dụng xử lý .50 3.1.3 Thuật toán xếp MergeSort 51 iii DANH MỤC CÁC HÌNH VẼ Võ Quang Huy i 1.3.2 Các cách tiếp cận thiết kế 10 1.5 Phân tích đánh giá thuật toán song song .12 1.7.2 Lập trình song song với PVM .21 Hình 2.1 Sơ đồ mạng máy tính với đa kênh thông báo 26 3.1 Một số thuật toán xếp song song 47 3.1.1 Thuật toán xếp đánh số 47 Thuật toán cải tiến sử dụng để xác định vị trí tức việc so sánh với phần tử khác dãy thực song song Trong trường hợp này, độ phức tạp thuật toán .49 3.1.2 Thuật toán xếp so sánh đổi chỗ 49 Bảng 3.1 Sắp xếp theo nguyên tắc hình ống sử dụng xử lý .50 3.1.3 Thuật toán xếp MergeSort 51 LỜI NÓI ĐẦU Trong thực tế, có nhiều lĩnh vực xử lý đồ họa, trí tuệ nhận tạo, lý thuyết đồ thị, lý thuyết nhận dạng, dự báo thời tiết dẫn đến toán xử lý khối lượng liệu lớn dẫn tới yêu cầu cần phải có hệ thống máy tính thật mạnh thực yêu cầu thực tế Hầu hết toán này, máy tính xử lý kiểu von Neumann không đáp ứng yêu cầu Trong thời gian gần đây, vấn đề nghiên cứu xử lý song song hướng nghiên cứu quan tâm lĩnh vực toán học Công nghệ thông tin Một toán bật toán tối ưu mô hình lý thuyết đồ thị Với mục đích nghiên cứu vấn đề thiết kế thuật toán song song dựa thuật toán tuần tự, luận văn đặt vấn đề nghiên cứu lý thuyết xử lý song song ứng dụng số toán mô hình đồ thị Cấu trúc luận văn gồm phần mở đầu chương nội dung sau Phần mở đầu giới thiệu hướng nghiên cứu mục đích nghiên cứu Chương 1: luận văn trình bày khái niệm vấn đề xử lý song song, mô hình máy tính song song, thuật toán song song số ngôn ngữ song song Đây khái niệm quan trọng làm sở cho vấn đề đưa chương tiếp sau Chương 2: luận văn đưa khái niệm lý thuyết đồ thị, mô hình toán tối ưu mô tả thuật toán kinh điển giải toán tương ứng, đánh giá độ phức tạp thuật toán Chương 3: Trên sở thuật toán trình bày chương kết hợp với lý thuyết xử lý song song, luận văn đưa số hướng thiết kế thuật toán song song giải toán tối ưu mô hình đồ thị, đánh giá độ phức tạp thuật toán tương ứng Kèm theo luận văn phần mềm thử nghiệm thuật toán viết ngôn ngữ C++ Chương MỘT SỐ KIẾN THỨC CƠ BẢN VỀ XỬ LÝ SONG SONG 1.1 Khái niệm xử lý song song Trong thập niên 60, tảng để thiết kế máy tính dựa mô hình John Von Neumann (Xem ), với đơn vị xử lý nối với vùng lưu trữ làm nhớ thời điểm có lệnh thực thi Hình 1.1 Mô tả kiến trúc Von Neumann Với toán yêu cầu khả tính toán lưu trữ lớn mô hình kiến trúc hạn chế Để tăng cường sức mạnh tính toán giải toán lớn có độ tính toán cao, người ta đưa kiến trúc mới, với ý tưởng kết hợp nhiều xử lý vào máy tính, mà hay gọi xử lý song song (Multiprocessor) kết hợp sức mạnh tính toán nhiều máy tính dựa kết nối mạng (gọi máy tính song song - multicomputer) Trong thời đại thông tin bùng nổ, người ngày trở nên bận rộn nhu cầu xử lý song song ngày nâng cao nhằm xử lý lượng liệu lớn thời gian nhanh Xử lý song song ngày quan tâm giới lý sau đây: - Đạt hiệu cao tiết kiệm thời gian tiền bạc Về lý thuyết, đầu tư nhiều tài nguyên cho nhiệm vụ rút ngắn thời gian thực nhiệm vụ đó, đồng thời tiết kiệm nhiều chi phí Hơn nữa, nhiều hệ thống xử lý song song xây dựng từ thành phần rẻ tiền phổ biến - Khả xử lý toán lớn Nhiều toán thực tế đòi hỏi tài nguyên tính toán lớn đến mức không máy tính đơn lẻ đáp ứng Nhiều lĩnh vực đồ họa máy tính, trí tuệ nhận tạo, phân tích số, v.v đòi hỏi phải xử lý khối lượng liệu lớn cần phải có hệ thống máy tính thật mạnh thực yêu cầu thực tế Những vấn đề xử lý ngôn ngữ tự nhiên, nhận dạng, xử lý ảnh ba chiều (3-D), dự báo thời tiết, mô hình mô hệ thống lớn, v.v đòi hỏi phải xử lý liệu với tốc độc cao, với khối lượng liệu lớn Hầu hết toán này, máy tính xử lý kiểu von Neumann không đáp ứng yêu cầu Mặc dù tốc độ xử lý BXL tăng nhiều năm qua, giới hạn vật lý nên khả tính toán chúng tăng Điều dẫn tới muốn tăng khả tính toán hệ thống máy tính đích cuối phải khai thác khả xử lý song song chúng Xét mặt công nghệ, việc xây dựng, quản trị ứng dụng hệ thống xử lý song song dễ dàng Thông thường, chi phí phải trả cho việc quản trị hệ thống xử lý song song năm cao nhiều so với chi phí bỏ để mua hệ thống Ví dụ, cluster có tốc độ tính toán TeraFlops có chi phí vào khoảng 100 nghìn USD, gần chi phí phải trả cho người quản trị hệ thống năm Nghiên cứu xử lý song song không mang ý nghĩa khoa học, mà có ý nghĩa thực tiễn lớn Việc nghiên cứu xử lý song song, từ lý thuyết ứng dụng, không giúp nắm tảng công nghệ, mà giúp nhìn thấy tiềm to lớn xử lý song song công nghệ nói riêng lĩnh vực kinh tế quốc dân nói chung Định nghĩa: Xử lý song song 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ý Sự khác song song với tuần tự: + Trong tính toán với BXL thời điểm thực phép toán + Trong tính toán song song số BXL kết hợp với để giải vấn đề giảm thời gian xử lý thời điểm có nhiều phép toán thực đồng thời Ba yếu tố dẫn đến việc xử lý song song: Hiện giá thành phần cứng (CPU) giảm mạnh, tạo điều kiện để xây dựng hệ thống có nhiều BXL với giá thành hợp lý Sự phát triển công nghệ mạch tích hợp VLSI cho phép tạo hệ phức hợp có hàng triệu transistor chip Tốc độ xử lý BXL theo kiểu von Neumann dần tiến tới giới hạn, cải tiến thêm dẫn tới đòi hỏi phải thực xử lý song song Vấn đề xử lý song song liên quan trực tiếp đến kiến trúc máy tính, phần mềm hệ thống (hệ điều hành), thuật toán ngôn ngữ lập trình, v.v Các máy tính song song phân thành nhiều loại dựa vào đặc trưng kiến trúc thể thực thao tác khác Cụ thể dựa vào tiêu kiểu số lượng BXL, kết nối chúng, dựa vào sơ đồ truyền thông thao tác vào/ra, v.v Phần lớn hệ điều hành ngày hỗ trợ đa xử lý / đa nhiệm cho phép nghiên cứu, khai thác phương pháp lập trình song song Vấn đề phải có nhiều BXL (các đơn vị tính toán độc lập) hoạt động Nhưng điều quan trọng chúng phải tham gia "cùng giải toán" Nói cách khác, tiến trình thực BXL phải kết hợp, trao đổi với để giải toán cho trước 1.2 Các mô hình máy tính song song Định nghĩa: Một máy tính song song tuyển tập BXL, thường loại, kết nối với theo cách để hợp tác với hoạt động trao đổi liệu với Dựa vào đặc tính số lượng BXL, số chương trình thực hiện, cấu trúc nhớ, v.v., Michael Flynn (1966) đưa cách phân loại tiếng nhiều người chấp nhận Mô hình SISD (Single Instruction, Single Data Stream - Đơn dòng lệnh, đơn dòng liệu) Đây thực chất kiến trúc Von Neumann SIMD (Single Instruction, Multiple Data Stream - Đơn dòng lệnh, đa dòng liệu) Kiến trúc bao gồm xử lý kiểu vectơ xử lý song song cực lớn (MPP) Mô hình MISD (Multiple Instruction, Single Data Stream - Đa dòng lệnh, đơn dòng liệu) Mô hình MIMD (Multiple Instruction, Multiple Data Stream - Đa dòng lệnh, đa dòng liệu) Kiến trúc bao gồm hệ đa vi xử lý truyền thống mạng máy trạm Sau nghiên cứu chi tiết mô hình trên: 1.2.1 Mô hình 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 register gọi đếm chương trình (program counter) 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 1.2 mô tả hoạt động máy tính theo mô hình SISD Tín hiệu điều khiển Đơn vị điều khiển BXL số học Luồng kết Luồng lệnh Luồng liệu h Hình 1.2 Mô hình kiến trúc SISD Mô hình SISD gọi SPSD, đơn chương trình đơn luồng liệu Đây mô hình máy tính truyền thống kiểu von Neumann 1.2.2 Mô hình 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ý (nhiều đơn vị) 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 toá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 vector, gán phần tử vector cho phần tử xử lý để tính toán đồng thời Máy tính vector BXL mảng mô hình chủ yếu thuộc loại Hình 1-3 mô tả hoạt động máy tính theo mô hình SIMD, gọi SPMD Đơn vị điều khiển (CU) Tín hiệu điều khiển Tín hiệu điều khiển Phần tử xử lý Phần tử xử lý Phần tử xử lý n Hình 1.3 Mô hình kiến trúc SIMD Mô hình SIMD gọi SPMD, đơn chương trình đa luồng liệu Đây mô hình máy tính phổ biến có thị trường như: ILLIAC IV, DAP Connection Machine CM-2 1.2.3 Mô hình 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 yê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 vector 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 hoàn nên gọi hệ tâm thu CU Luồng lệnh Phần tử xử lý CU Luồng lệnh Phần tử xử lý CU n Luồng lệnh n Luồng liệu Phần tử xử lý n Hình 1.4 Mô hình kiến trúc MISD 1.2.4 Mô hình MIMD: Đa luồng lệnh, đa luồng liệu Máy tính loại MIMD 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 (global) cần, giảm thiểu trao đổi BXL hệ 51 Pi, i = 1, 3, 5, …, n-3 Pi, i = 2, 4, …, n-2 send(&A, Pi+1); recv(&A, Pi-1); recv(&B, Pi+1); send(&B, Pi-1); if(A > B) A = B; if(A > B) B = A; b/ Các pha chẵn Pi, i = 2, 4, …, n-2 Pi, i = 1, 3, 5, …, n-3 recv(&A, Pi+1); send(&A, Pi-1); send(&B, Pi+1); recv(&B, Pi-1); if(A > B) B = A; if(A > B) A = B; Hiển nhiên thuật toán có độ phức tạp O(n) 3.1.3 Thuật toán xếp MergeSort Bài toán trộn: Cho dãy a1,a2, ,an b1,b2, ,bm xếp tăng dần, yêu cầu trộn dãy thành dãy kí hiệu c1,c2, ,cn+m xếp tăng dần Việc giải toán trộn thực thủ tục sau Procedure Merge(A,B,C); Var i,j,k:integer; Begin i:=1;j:=1; For k:=1 to n+m If A[i]