Xử lý song song áp dụng đối với một số bài toán trong lý thuyết đồ thị

68 422 3
Xử lý song song áp dụng đối với một số bài toán trong lý thuyết đồ 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

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, a 2, , 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][...]... nhất là m con Với m=2, ta có một cây nhị phân 2.2 Mô hình các bài toán tối ưu 30 2.2.1 Bài toán cây khung nhỏ nhất Bài toán cây khung nhỏ nhất của đồ thị là một trong số những bài toán tối ưu trên đồ thị tìm được ứng dụng trong nhiều lĩnh vực khác nhau trong đời sống Trong mục này chúng ta sẽ trình bày những thuật toán cơ bản để giải bài toán này Trước hết chúng ta phát biểu nội dung của bài toán Cho G... thuật toán song song mới phù hợp với kiến trúc song song 3 Xây dựng những thuật toán song song từ những thuật toán song song đã được xây dựng cho phù hợp với cấu hình tôpô và môi trường song song thực tế Như vậy, cách làm thông dụng là biến đổi các thuật toán tuần tự về song song, hay chuyển từ một dạng song song về dạng song song phù hợp hơn sao vẫn bảo toàn được tính tương đương trong tính toán Do... lý được sử dụng Nói chung, chương trình tính toán song song thường bắt đầu bằng việc nhập dữ liệu vào bộ nhớ và kích hoạt một phần tử xử lý Mỗi bước tính toán, phần tử xử lý này có thể đọc một số dữ liệu từ bộ nhớ, thực hiện một số phép toán cơ sở và ghi kết quả vào bộ nhớ riêng hoặc bộ nhớ chung Đồng thời mỗi bước tính toán, một phần tử xử lý có thể kích hoạt một hay một số phần tử xử lý khác Thực... độ song song không bị giới hạn khi số các bộ xử lý là không bị chặn Độ phức tạp thời gian của thuật toán song song sử dụng p bộ xử lý để giải một bài toán có kích cỡ n là hàm f(n,p) xác định thời gian cực đại trôi qua giữa thời điểm bắt đầu thực hiện thuật toán bởi một bộ xử lý và thời điểm kết thúc của các bộ xử lý đối với bộ dữ liệu vào bất kỳ Có hai loại thao tác khác nhau trong các thuật toán song. .. việc xử lý song song Ngay trong kiến trúc tuần tự chúng ta cũng có thể tận dụng đốc độ cực nhanh của các BXL để thực hiện xử lý song song theo nguyên lý chia sẻ thời gian và chia sẻ tài nguyên Tất nhiên đối với những kiến trúc máy tính song song thì mục đích chính là khai thác triệt để khả năng của kiến trúc song song để viết các chương trình song song 1.3 Khái niệm về thuật toán song song Một trong. .. hỏi: 1 Kiến trúc nào phù hợp cho bài toán? 2 Những bài toán loại nào sẽ xử lý hiệu quả trong kiến trúc song song cho trước? 1.4 Đánh giá các chương trình song song Sau đây chúng ta đưa ra cơ sở của phương pháp đánh giá độ phức tạp của thuật toán song song Thời gian thực hiện song song Để đánh giá được độ phức tạp tính toán của các thuật toán song song, ngoài số bước tính toán chúng ta còn cần đánh giá... có số bộ xử lý là hữu hạn, nên những thuật toán song song không bị giới hạn chỉ có nghĩa sử dụng khi chúng có thể chuyển đổi về thuật toán song song bị giới hạn Có ba cách định nghĩa khái niệm liên quan đến độ phức tạp của thuật toán song song: 14 Định nghĩa 1: Một thuật toán song song có độ phức tạp tính toán O (T ) với P bộ xử lý khi nó thực hiện nhiều nhất là O (T * P ) phép toán cơ sở (định lý. .. sở (định lý Brent) Định nghĩa 2: Một thuật toán song song có độ phức tạp tính toán O (T ) sử dụng rất nhiều bộ xử lý để thực hiện O (e ) phép toán cơ sở khi cài đặt với P bộ xử lý éù eú + T ) thì sẽ có độ phức tạp thời gian là O ( ê êú êp ú Định nghĩa 3: Một thuật toán song song có độ phức tạp tính toán O (T ) với P éù pú 1 £ p £ p bộ xử lý có thể cài đặt với ê bộ xử lý thì sẽ có độ phức tạp thời gian... rằng khi số bộ xử lý được sử dụng giảm xuống trong một phạm vi nhất định thì thuật toán tiếp tục làm việc nhưng thời gian thực hiện sẽ tăng lên Định nghĩa 3 khẳng định rằng có cách để cài đặt thuật toán song song khi số các bộ xử lý được sử dụng bị giảm xuống Mức độ hiệu quả của thuật toán được thể hiện ở mức độ song song của thuật toán Mức độ song song của thuật toán là số lượng cực đại các phép toán. .. lập có thể thực hiện đồng thời ở mỗi thời điểm thực hiện của thuật toán Ký hiệu P(W) là độ song song của thuật toán, thì thuật toán hiệu quả giải để giải bài toán có cỡ W là những thuật toán chỉ cần sử dụng nhiều nhất P(W) bộ xử lý Ngoài ra, để đánh giá được thuật toán song song chúng ta còn phải xét tới hệ số gia tốc của nó Hệ số gia tốc của thuật toán song song sử dụng p bộ xử lý được xác định như ... thời gian thực tính toán xử lý + T p thời gian thực tính toán p xử lý Với giả thiết xử lý xử lý song song 15 1.6 Khái niệm chương trình dịch, hệ điều hành Đối với hệ thống song song thành phần quan... toán song song: Thực song song hoá thuật toán tuần tự, 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ý Thiết kế thuật toán song song phù hợp với kiến trúc song. .. thuật toán song song xác định số phép toán sở số bước truyền tải liệu xử lý với Từ suy ra, độ phức tạp thời gian thuật toán song song không phụ thuộc vào mô hình tính toán mà phụ thuộc vào số xử lý

Ngày đăng: 12/12/2016, 16:32

Từ khóa liên quan

Mục lục

  • Hình 1.1. Mô tả kiến trúc Von Neumann

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

Tài liệu liên quan