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

69 673 0
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

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn i ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VÕ QUANG HUY XỬ LÝ SONG SONG ÁP DỤNG ĐỐI VỚI MỘT SỐ BÀI TOÁN TRONG LÝ THUYẾT ĐỒ THỊ Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 TÓM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Thái Nguyên - 2013 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ii LỜI CẢM ƠN Trong quá trình học tập và nghiên cứu tại lớp Cao học khóa 9 chuyên ngành Khoa học máy tính tại Trường Đại học Công nghệ thông tin và Truyền thông - Đại học Thái Nguyên, Tôi đã nhận được rất nhiều sự giúp đỡ nhiệt tình của các thầy, cô giáo trong Trường Đại học Công nghệ thông tin và Truyền thông; Viện công nghệ thông tin thuộc Viện khoa học và Công nghệ Việt Nam. Các thầy, cô luôn giúp đỡ, tạo điều kiện cho tôi trong quá 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ể các thầy, cô giáo trong Trường Đại học Công nghệ thông tin và Truyền thông; Viện công nghệ thông tin thuộc Viện khoa học và 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 và tận tình hướng dẫn tôi hoàn thành nội dung bản luận văn này. Tôi xin cảm ơn các bạn đồng nghiệp và người thân đã động viên, giúp đỡ tôi trong quá trình nghiên cứu và thực hiện luận văn. Trong một khoảng thời gian ngắn, với kiến thức của bản thân còn hạn chế nên luận văn không tránh khỏi những thiếu sót về mặt khoa học, tôi rất mong nhận được những đóng góp ý kiến của các Thầy cô giáo cùng bạn bè để bản luận văn được hoàn chỉnh hơn. Xin trân trọng cảm ơn! Thái Nguyên, ngày tháng năm 2013 Học viên V Quang Huy Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn iii MỤC LỤC LỜI CẢM ƠN i MỤC LỤC iii DANH MỤC CÁC HÌNH VẼ v LỜI NÓI ĐẦU 1 Chƣơng 1: MỘT SỐ KIẾN THỨC CƠ BẢN VỀ XỬ LÝ SONG SONG 2 1.1 Khái niệm cơ bản về xử lý song song 2 1.2 Các mô hình máy tính song song 5 1.2.1. Mô hình SISD: Đơn luồng lệnh, đơn luồng dữ liệu 5 1.2.2. Mô hình SIMD: Đơn luồng lệnh, đa luồng dữ liệu 6 1.2.3. Mô hình MISD: Đa luồng lệnh, đơn luồng dữ liệu 7 1.2.4. Mô hình MIMD: Đa luồng lệnh, đa luồng dữ liệu 7 1.3 Khái niệm về thuật toán song song 9 1.3.1 Định nghĩa 9 1.3.2 Các cách tiếp cận trong thiết kế 10 1.4 Đánh giá các chương trình song song 10 1.5. Phân tích và đánh giá thuật toán song song 12 1.6. Khái niệm chương trình dịch, hệ điều hành 15 1.7. Một số ngôn ngữ lập trình song song 17 1.7.1. Lập trình song song với OCCAM 17 1.7.2. Lập trình song song với PVM 21 Chƣơng 2: CÁC THUẬT TOÁN TỐI ƢU TRÊN MÔ HÌNH ĐỒ THỊ 25 2.1 Một số khái niệm đồ thị 25 2.1.1 Mô hình đồ thị 25 2.1.2. Các khái niệm cơ bản 27 2.1.3 Đường đi, chu trình. Đồ thị liên thông 29 2.1.4 Cây và cây khung của đồ thị 29 2.2 Mô hình các bài toán tối ưu 29 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn iv 2.2.1 Bài toán cây khung nhỏ nhất 29 2.2.2 Bài toán xác định đường đi ngắn nhất 34 2.2.3 Bài toán tô màu đồ thị 38 Chƣơng 3:THIẾT KẾ CÁC THUẬT TOÁN SONG SONG TRÊN ĐỒ THỊ 47 3.1. Một số thuật toán sắp xếp song song 47 3.1.1 Thuật toán sắp xếp đánh số 47 3.1.2 Thuật toán sắp xếp so sánh và đổi chỗ 48 3.1.3 Thuật toán sắp xếp MergeSort 51 3.2. Song song hóa một số thuật toán tối ưu trên đồ thị 54 3.2.1 Song song hóa thuật toán Kruskal 54 3.2.2 Song song hóa thuật toán Prim 56 3.2.3. Song song hóa thuật toán Floyd 59 3.2.4 Song song hóa thuật toán tô màu đồ thị 61 PHẦN KẾT LUẬN 63 TÀI LIỆU THAM KHẢO 64 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn v DANH MỤC CÁC HÌNH VẼ Hình 1.1. Mô tả kiến trúc Von Neumann 2 Hình 1.2. Mô hình của kiến trúc SISD 6 Hình 1.3. Mô hình của kiến trúc SIMD 6 Hình 1.4. Mô hình của kiến trúc MISD 7 Hình 1.5. Mô hình của kiến trúc MIMD 8 Hình 1.6. Các mẫu hình kiến trúc xử lý song song 8 Hình 1.7. Mô hình tính toán của PVM 22 Hình 1.8. Một kiến trúc của PVM 22 Hình 2.1. Sơ đồ mạng máy tính với đa kênh thông báo 26 Hình 2.2. Mạng máy với các kênh thoại một chiều 26 Hình 2.3. Đồ Thị có hướng G 28 Hình 2.4. 28 Hình 2.5. 28 Hình 2.6. 28 Hình 3.1. Quá trình phân rã và hòa nhập trong Mergesort 52 Hình 3.2. Thuật toán tô màu đồ thị song song trên PRAM 62 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 1 LỜI NÓI ĐẦU Trong thực tế, có rất nhiều lĩnh vực như 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 đều dẫn đến các bài toán xử lý một khối lượng dữ liệu rất lớn dẫn tới yêu cầu cần phải có những hệ thống máy tính thật mạnh mới thực hiện được những yêu cầu của thực tế. Hầu hết những bài toán này, những máy tính xử lý tuần tự kiểu von Neumann là 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 là một hướng nghiên cứu đang được quan tâm trong lĩnh vực toán học và Công nghệ thông tin. Một trong những bài toán nổi bật là các bài toán tối ưu trên mô hình lý thuyết đồ thị. Với mục đích nghiên cứu vấn đề thiết kế các thuật toán song song dựa trên các thuật toán tuần tự, luận văn đặt vấn đề nghiên cứu về lý thuyết xử lý song song và ứng dụng trên một số bài toán trong mô hình đồ thị. Cấu trúc của luận văn gồm phần mở đầu và 3 chương nội dung như sau Phần mở đầu giới thiệu về hướng nghiên cứu và các mục đích nghiên cứu Chương 1: luận văn trình bày các khái niệm về vấn đề xử lý song song, mô hình máy tính song song, thuật toán song song cùng một số ngôn ngữ song song. Đây là các khái niệm quan trọng làm cơ sở cho các vấn đề được đưa ra trong các chương tiếp sau. Chương 2: luận văn đưa ra các khái niệm cơ bản về lý thuyết đồ thị, mô hình các bài toán tối ưu và mô tả các thuật toán tuần tự kinh điển giải các bài toán tương ứng, đánh giá độ phức tạp của các thuật toán tuần tự. Chương 3: Trên cơ sở các thuật toán đã trình bày trong chương 2 kết hợp với lý thuyết xử lý song song, luận văn đưa ra một số hướng thiết kế các thuật toán song song giải các bài toán tối ưu trên mô hình đồ thị, đánh giá độ phức tạp của các thuật toán tương ứng. Kèm theo luận văn là các phần mềm thử nghiệm các thuật toán tuần tự được viết bằng ngôn ngữ C++. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 2 Chƣơng 1 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ XỬ LÝ SONG SONG 1.1 Khái niệm cơ bản về xử lý song song Trong những thập niên 60, nền tảng để thiết kế máy tính đều dựa trên mô hình của John Von Neumann (Xem 0), với một đơn vị xử lý được nối với một vùng lưu trữ làm bộ nhớ và tại một thời điểm chỉ có một lệnh được thực thi. Hình 1.1. Mô tả kiến trúc Von Neumann Với những bài toán yêu cầu về khả năng tính toán và lưu trữ lớn thì mô hình kiến trúc này còn hạn chế. Để tăng cường sức mạnh tính toán giải quyết các bài toán lớn có độ tính toán cao, người ta đưa ra kiến trúc mới, với ý tưởng kết hợp nhiều bộ xử lý vào trong một máy tính, mà hay gọi là xử lý song song (Multiprocessor) hoặc kết hợp sức mạnh tính toán của nhiều máy tính dựa trên kết nối mạng (gọi là máy tính song song - multicomputer). Trong thời đại thông tin bùng nổ, con người càng ngày càng trở nên bận rộn thì nhu cầu của xử lý song song ngày càng được nâng cao nhằm xử lý được một lượng dữ liệu lớn nhất trong thời gian nhanh nhất có thể. Xử lý song song ngày càng được quan tâm trên thế giới vì 2 lý do chính sau đây: - Đạt được hiệu năng cao hơn trong khi tiết kiệm được thời gian và tiền bạc. Về lý thuyết, càng đầu tư nhiều tài nguyên cho một nhiệm vụ nào đó thì càng rút ngắn được thời gian thực hiện nhiệm vụ đó, đồng thời tiết kiệm được càng nhiều chi Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 3 phí. Hơn nữa, nhiều hệ thống xử lý song song có thể được xây dựng từ những thành phần rẻ tiền và phổ biến. - Khả năng xử lý các bài toán lớn. Nhiều bài toán trong thực tế đòi hỏi tài nguyên tính toán lớn đến mức không một máy tính đơn lẻ nào có thể đáp ứng nổi. Nhiều lĩnh vực mới như đồ 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ý một khối lượng dữ liệu rất lớn do đó cần phải có những hệ thống máy tính thật mạnh mới thực hiện được những yêu cầu của thực tế. Những vấn đề về 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 và mô phỏng những hệ thống lớn, v.v. đều đòi hỏi phải xử lý dữ liệu với tốc độc rất cao, với khối lượng dữ liệu rất lớn. Hầu hết những bài toán này, những máy tính xử lý tuần tự kiểu von Neumann là không đáp ứng yêu cầu. Mặc dù tốc độ xử lý của các BXL tăng nhiều trong những năm qua, nhưng do giới hạn về vật lý nên khả năng tính toán của chúng không thể tăng mãi được. Điều này dẫn tới là muốn tăng được khả năng tính toán của các hệ thống máy tính thì đích cuối cùng là phải khai thác được khả năng xử lý song song của chúng. Xét về mặt công nghệ, việc xây dựng, quản trị và ứng dụng một hệ thống xử lý song song cũng không phải dễ dàng. Thông thường, chi phí phải trả cho việc quản trị một hệ thống xử lý song song trong 1 năm còn cao hơn nhiều so với chi phí bỏ ra để mua cả hệ thống. Ví dụ, một cluster có tốc độ tính toán 1 TeraFlops có chi phí vào khoảng 100 nghìn USD, gần bằng chi phí phải trả cho một người quản trị hệ thống trong một năm. Nghiên cứu về xử lý song song vì vậy không chỉ mang ý nghĩa khoa học, mà còn có ý nghĩa thực tiễn rất lớn. Việc nghiên cứu về xử lý song song, từ lý thuyết cho đến ứng dụng, không chỉ giúp chúng ta nắm được nền tảng công nghệ, mà còn giúp chúng ta nhìn thấy tiềm năng to lớn của xử lý song song trong công nghệ nói riêng và các lĩnh vực kinh tế quốc dân nói chung. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 4 Định nghĩa: Xử lý song song là quá trình xử lý gồm nhiều tiến trình được kích hoạt đồng thời và cùng tham gia giải quyết một vấn đề, nói chung là thực hiện trên những hệ thống đa bộ xử lý. Sự khác nhau giữa song song với tuần tự: + Trong tính toán tuần tự với một BXL thì mỗi thời điểm chỉ thực hiện được một phép toán. + Trong tính toán song song thì một số BXL cùng kết hợp với nhau để giải quyết cùng một vấn đề cho nên giảm được thời gian xử lý vì mỗi thời điểm có thể có nhiều phép toán được thực hiện đồng thời. Ba yếu tố chính dẫn đến việc xử lý song song: 1. Hiện nay giá thành của phần cứng (CPU) giảm mạnh, tạo điều kiện để xây dựng những hệ thống có nhiều BXL với giá thành hợp lý. 2. Sự phát triển của công nghệ mạch tích hợp VLSI cho phép tạo ra những hệ phức hợp có hàng triệu transistor trên một chip. 3. Tốc độ xử lý của các BXL theo kiểu von Neumann đã dần tiến tới giới hạn, không thể cải tiến thêm được do vậy dẫn tới đòi hỏi phải thực hiện 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 và ngôn ngữ lập trình, v.v. Các máy tính song song có thể phân thành nhiều loại dựa vào các đặc trưng của các kiến trúc và thể thực thao tác khác nhau. Cụ thể là có thể dựa vào các chỉ tiêu về kiểu và số lượng các BXL, sự kết nối giữa chúng, dựa vào sơ đồ truyền thông và các thao tác vào/ra, v.v. Phần lớn các hệ điều hành ngày nay đều đã hỗ trợ đa xử lý / đa nhiệm và cho phép nghiên cứu, khai thác các phương pháp lập trình song song. Vấn đề là chúng ta phải có nhiều BXL (các đơn vị tính toán độc lập) cùng hoạt động. Nhưng điều quan Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 5 trọng là chúng phải tham gia "cùng giải một bài toán". Nói cách khác, những tiến trình thực hiện trên mỗi BXL phải kết hợp, trao đổi với nhau để giải quyết một bà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 là tuyển tập các BXL, thường là cùng một loại, kết nối với nhau theo một cách nào đó để có thể hợp tác với nhau trong hoạt động và trao đổi dữ liệu được với nhau. Dựa vào các đặc tính về số lượng BXL, số chương trình thực hiện, cấu trúc bộ nhớ, v.v., Michael Flynn (1966) đã đưa ra cách phân loại nổi tiếng được nhiều người chấp nhận. 1. Mô hình SISD (Single Instruction, Single Data Stream - Đơn dòng lệnh, đơn dòng dữ liệu). Đây thực chất chính là kiến trúc Von Neumann. 2. SIMD (Single Instruction, Multiple Data Stream - Đơn dòng lệnh, đa dòng dữ liệu). Kiến trúc này bao gồm các bộ xử lý kiểu vectơ cũng như các bộ xử lý song song cực lớn (MPP). 3. Mô hình MISD (Multiple Instruction, Single Data Stream - Đa dòng lệnh, đơn dòng dữ liệu). 4. Mô hình MIMD (Multiple Instruction, Multiple Data Stream - Đa dòng lệnh, đa dòng dữ liệu). Kiến trúc này bao gồm các hệ đa vi xử lý truyền thống cũng như các mạng máy trạm. Sau đây chúng ta nghiên cứu chi tiết các mô hình trên: 1.2.1. Mô hình SISD: Đơn luồng lệnh, đơn luồng dữ liệu Máy tính loại SISD chỉ có một CPU, ở mỗi thời điểm thực hiện một chỉ lệnh và chỉ đọc, ghi một mục dữ liệu. Tất cả các máy tính SISD chỉ có một thanh ghi register được gọi là bộ đếm chương trình (program counter) được sử dụng để nạp địa chỉ của lệnh tiếp theo khi xử lý tuần tự và kết quả là thực hiện theo một thứ tự xác định của các câu lệnh. Hình 1.2 mô tả hoạt động của máy tính theo mô hình SISD. [...]... 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 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 Số hóa bởi... 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... 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 tế thì các máy tính đều 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ể... 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 các mục đích chính của xử lý song song là nghiên cứu và xây dựng những thuật toán thích hợp để cài đặt trên các máy tính song song, nghĩa là phát triển các thuật toán song song Câu hỏi tự nhiên là việc thiết kế một thuật toán song song... tính song song và số lượng các bộ xử lý được phép sử dụng trong hệ thống Độ phức tạp thời gian là thước đo quan trọng nhất đánh giá mức độ hiệu quả của thuật toán song song Chúng ta giả thiết rằng mô hình tính toán có p bộ xử lý Nghĩa là mức độ song song là có giới hạn Ngược lại, mứ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. .. 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á... 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ư... của thuật toán song song được xác định bởi số các phép toán cơ sở và số các bước truyền tải dữ liệu giữa các bộ xử lý với nhau Từ đó suy ra, độ phức tạp thời gian của thuật toán song song không chỉ phụ thuộc vào mô hình tính toán mà còn phụ thuộc vào số bộ xử 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... 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ý é ù êp ú ê ú e thì sẽ có độ phức tạp thời gian là O ( ê ú+ T ) Đị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 ù bộ xử lý có thể cài đặt với ê ú, 1 £ p £ p bộ xử lý thì sẽ có độ phức tạp thời gian là êp ú ê ú O( p * T ) Định nghĩa 2 chỉ ra rằng khi số bộ xử lý được... 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: Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 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ý Brent) Định nghĩa 2: Một thuật toán song song có độ . thuật toán đã trình bày trong chương 2 kết hợp với lý thuyết xử lý song song, luận văn đưa ra một số hướng thiết kế các thuật toán song song giải các bài toán tối ưu trên mô hình đồ thị, đánh. kế các thuật toán song song dựa trên các thuật toán tuần tự, luận văn đặt vấn đề nghiên cứu về lý thuyết xử lý song song và ứng dụng trên một số bài toán trong mô hình đồ thị. Cấu trúc của. TRUYỀN THÔNG VÕ QUANG HUY XỬ LÝ SONG SONG ÁP DỤNG ĐỐI VỚI MỘT SỐ BÀI TOÁN TRONG LÝ THUYẾT ĐỒ THỊ Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 TÓM TẮT LUẬN VĂN THẠC

Ngày đăng: 20/11/2014, 19:53

Từ khóa liên quan

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

Tài liệu liên quan