MỘT SỐ PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN CƠ BẢN TRONG TÍNH TOÁN SONG SONG VÀ ỨNG DỤNG (LUẬN VĂN THẠC SĨ)

54 576 0
MỘT SỐ PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN CƠ BẢN TRONG TÍNH TOÁN SONG SONG VÀ ỨNG DỤNG (LUẬN VĂN THẠC SĨ)

Đ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

MỘT SỐ PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN CƠ BẢN TRONG TÍNH TOÁN SONG SONG VÀ ỨNG DỤNG (LUẬN VĂN THẠC SĨ)MỘT SỐ PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN CƠ BẢN TRONG TÍNH TOÁN SONG SONG VÀ ỨNG DỤNG (LUẬN VĂN THẠC SĨ)MỘT SỐ PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN CƠ BẢN TRONG TÍNH TOÁN SONG SONG VÀ ỨNG DỤNG (LUẬN VĂN THẠC SĨ)MỘT SỐ PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN CƠ BẢN TRONG TÍNH TOÁN SONG SONG VÀ ỨNG DỤNG (LUẬN VĂN THẠC SĨ)MỘT SỐ PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN CƠ BẢN TRONG TÍNH TOÁN SONG SONG VÀ ỨNG DỤNG (LUẬN VĂN THẠC SĨ)MỘT SỐ PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN CƠ BẢN TRONG TÍNH TOÁN SONG SONG VÀ ỨNG DỤNG (LUẬN VĂN THẠC SĨ)MỘT SỐ PHƯƠNG PHÁP THIẾT KẾ THUẬT TOÁN CƠ BẢN TRONG TÍNH TOÁN SONG SONG VÀ ỨNG DỤNG (LUẬN VĂN THẠC SĨ)

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN Ngô Thị Minh Nguyệt MỘT SỐ PHƢƠNG PHÁP THIẾT KẾ THUẬT TOÁN CƠ BẢN TRONG TÍNH TOÁN SONG SONG VÀ ỨNG DỤNG Chuyên ngành: Bảo đảm toán học cho máy tính hệ thống tính toán Mã số: 62 46 01 10 LUẬN VĂN THẠC SĨ KHOA HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS NGUYỄN HỮU ĐIỂN Hà Nội - Năm 2014 MỤC LỤC Trang Trang phụ bìa Mục lục Danh mục ký hiệu Danh mục bảng Danh mục hình vẽ Danh mục thuật toán MỞ ĐẦU Chƣơng – TÍNH TOÁN SONG SONG 1.1 Tổng quan xử lý song song 1.2 Các mô hình lập trình song song 11 1.3 1.4 1.2.1 Mô hình chia sẻ nhớ 11 1.2.2 Mô hình luồng 11 1.2.3 Mô hình truyền thông điệp 12 1.2.4 Mô hình phân hoạch liệu 13 Thiết kế đánh giá thuật toán song song 13 1.3.1 Định nghĩa thuật toán song song 13 1.3.2 Các nguyên lý thiết kế thuật toán song song 14 1.3.3 Các cách tiếp cận thiết kế thuật toán song song 15 1.3.4 Phân tích đánh giá thuật toán song song 15 Mô hình lập trình truyền thông điệp – MPI song song 19 1.4.1 Giới thiệu mô hình truyền thông điệp 19 1.4.2 Lập trình truyền thông điệp - MPI 20 1.4.3 Cấu trúc chương trình MPI 23 Chƣơng – SONG SONG HÓA THUẬT TOÁN TÌM XÂU CON CHUNG DÀI NHẤT 24 2.1 Đặt vấn đề 24 2.2 Bài toán tìm xâu chung dài 25 2.3 Thuật toán quy hoạch động giải toán tìm xâu chung dài hai xâu 26 2.4 Phương pháp phần tử trội toán xâu chung dài 30 2.5 Phương pháp song song toán xâu chung dài 35 2.6 Kết luận chương 42 Chƣơng – KẾT QUẢ THỰC NGHIỆM 43 3.1 Bộ liệu 43 3.2 Môi trường chạy 44 3.3 Kết chạy thực nghiệm 45 KẾT LUẬN 52 TÀI LIỆU THAM KHẢO 53 PHỤ LỤC Error! Bookmark not defined MỞ ĐẦU Nhân loại ngày chứng kiến phát triển mạnh mẽ ngành Công nghệ thông tin, ngành mũi nhọn nhiều quốc gia giới Sự phát triển vượt bậc kết tất yếu phát triển thiết bị phần cứng phần mềm tiện ích Từ máy tính đơn giản, tốc độ xử lý chậm, sử dụng số lĩnh vực kỹ thuật định, ngày chúng có khả tính toán tốc độ xử lý vượt trội trở thành công cụ thiếu lĩnh vực đời sống Những máy tính đời đầu tiên, hạn chế tốc độ xử lý chế vào liệu nên việc lập trình khó khăn Điều làm cho máy tính khả sử dụng dễ dàng phổ cập, ứng dụng số lĩnh vực khoa học đặc biệt Ngày nay, với phát triển mạnh mẽ thiết bị lưu trữ, nhớ, tốc độ xử lý thiết bị ngoại vi,… máy tính trở nên thân thiện với người sử dụng, tốc độ tính toán nhanh nhiều Nhờ mà nhiều toán lớn có khả thực thi nhiều ứng dụng đưa Tuy nhiên, thực tế nhiều vấn đề lớn với số lượng cần tính toán khổng lồ mà máy tính thông thường giải Vào thập kỷ 70, nhà khoa học đưa ý tưởng cấu trúc song song nhằm kết hợp sức mạnh nhiều xử lý máy tính, kết hợp nhiều máy tính với thông qua mạng máy tính tạo thành máy song song ảo Ngoài việc tính nhanh, máy tính song song có độ an toàn cao máy tính đơn, vài xử lý hỏng máy tính song song hoạt động máy tính đơn không làm điều Hiện giới có máy tính song song chứa đến hàng nghìn xử lý Để khai thác tiềm sức mạnh máy tính song song, với việc thiết kế kiến trúc song song ta phải nghiên cứu vấn đề quan trọng khác hệ điều hành hỗ trợ xử lý song song, ngôn ngữ lập trình thuật toán song song Việc nghiên cứu thiết kế máy tính song song, thuật toán song song ngôn ngữ lập trình hỗ trợ lập trình song song bắt đầu quan tâm từ năm 70, ứng dụng chúng lan rộng khắp lĩnh vực đời sống đánh giá khả rủi ro tài chính: dùng để mô hình hoá xu hướng thị trường… Hỗ trợ định phân tích thị trường, dự báo thời tiết… Trí tuệ nhân tạo thiết kế robot… Xử lý ảnh ứng dụng công nghệ nhận dạng… Điều khiển tự động… Trong toán có liên quan tới xếp đóng vai trò quan trọng, hay gặp lời giải toán tìm kiếm, tra cứu, … Do việc nghiên cứu thuật toán xếp bản, đặc biệt thuật toán song song toán xếp cần thiết Trong phạm vi luận văn trình bày ba phần chính, Chƣơng trình bày tổng quan xử lý song song, thuật toán song song giới thiệu lập trình song song với MPI , Chƣơng trình bày phương pháp thiết kế thuật toán tìm dãy chung dài tính toán song song; Chƣơng trình bày số kết thực nghiệm liệu cho chương trình song song tìm dãy chung dài nhât Với thời gian tiếp cận vấn đề lượng thông tin hạn chế, luận văn nhiều thiếu sót Tôi mong nhận góp ý thầy, cô anh/chị để tiếp tục phát triển đề tài nghiên cứu đạt kết Chƣơng – TÍNH TOÁN SONG SONG 1.1 Tổng quan 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 (Hình 1.10), 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 [14] Bộ nhớ Câu lệnh Ghi liệu Đọc liệu Bộ xử lý 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, hay gọi xử lý song song 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 (máy tính song song) Kể từ lúc này, để khai thác sức mạnh tiềm tàng mô hình máy tính nhiều xử lý song song, mô hình mạng máy tính xử lý song song việc xây dựng thiết kế giải thuật song song điều quan trọng Giải thuật song song phân rã công việc phần tử xử lý khác 1.1.1 Một số khái niệm xử lý song song Định ngh a xử lý song song Tính toán song song hay xử lý song song: trình xử lý thông tin nhiều đơn vị liệu xử lý đồng thời hay nhiều xử lý để giải toán [1] Máy tính song song tập hợp xử lý kết nối với theo kiến trúc xác định để hợp tác hoạt động trao đổi liệu [1] Phân biệt xử lý song song xử lý Trong tính toán với xử lý thời điểm thực phép toán Trong tính toán song song nhiều xử lý kết hợp với để giải toán giảm thời gian xử lý thời điểm thực đồng thời nhiều phép toán Mục đích xử lý song song Thực tính toán nhanh sở sử dụng nhiều xử lý đồng thời Cùng với tốc độ xử lý nhanh, việc xử lý song song giải toán phức tạp yêu cầu khối lượng tính toán lớn 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), giải thuật ngôn ngữ lập trình, … Độ phức tạp Độ phức tạp tính toán song song không phụ thuộc vào kích cỡ liệu đầu vào mà phụ thuộc vào kiến trúc máy tính song song số lượng xử lý phép sử dụng hệ thống Cài đặt giải thuật song song Để cài đặt giải thuật song song máy tính song song, phải sử dụng ngôn ngữ lập trình song song như: OpenMP với C/C++, MPI với C/C++, v.v 1.1.2 Phân loại kiến trúc máy tinh song song 1.1.2.1 Phân loại theo kiến trúc máy tính Flynn Một phân loại hay nhắc tới Flynn – 1966 [6] Michael Flynn phân kiến trúc máy tính thành bốn loại dựa vào phân phối luông liệu (data stream ) phân phối luồng lệnh (instruction stream) xử lý  Mô hình SISD (đơn luồng lệnh, đơn luồng liệu) Đây kiến trúc Von Neuman , máy tính SISD có CPU, dòng lệnh thực cách Hệ thống SISD (hình 1.2: thời điểm thực lệnh mục liệu) Hình 1.2: Mô hình máy SISD  Mô hình SIMD (Đơn luồng lệnh, đa 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ý, xử lý thực phép toán mục liệu khác Hình 1.3: Mô hình máy tính SIMD  Mô hình MISD (Đa luồng lệnh, đơn liệu) Máy tính MISD thực nhiều nhiều lệnh mục liệu, - Các máy tính yêu cầu đơn vị xử lý (PU) nhận lệnh khác để thực mục liệu - Các máy tính có luồng liệu chuyển theo dãy CPU liên tiếp gọi kiến trúc hình ống xử lýtheo vector thông qua dãy bước, bước thực chức sau chuyển kết quảcho PU thực bước  Mô hình MIMD (đa luồng lệnh, đa luồng liệu) Máy tính loại MIMD gọi đa xử lý, xử lý thực luồng lệ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 xử lý hệ thống Hình 1.4: Mô hình máy MIMD Đây kiến trúc phức tạp nhất, mô hình hỗ trợ xử lý song song cao nhất, chúng thực thi lệnh khác nhiều dòng liệu khác thời điểm Theo Flynn: có hai họ kiến trúc quan trọng cho máy tính song song: SIMD MIMD Những kiến trúc khác xếp theo hai mẫu Mục tiêu xử lý song song khai thác đến mức tối đa khả sử dụng thiết bị phần cứng nhằm giải nhanh toán đặt thực tế 1.1.2.2  Phân loại theo mô hình nhớ Mô hình nhớ chia sẻ Đặc điểm máy tính song song loại nút tính toán truy nhập vào nhớ dùng chung nhó toàn cục Nhiều xử lý hoạt động độc lập sử dụng chung nhớ, thay đổi nội dung ngăn nhớ xử lý biết Ưu điểm mô hình cung cấp vúng nhớ toàn cục dễ dàng cho việc lập trình mặt sử dụng nhớ đồng thời việc trao đổi thông tin modul tính toán tương đối nhanh chóng dễ dàng Hình 1.5: Máy tính chia sẻ nhớ Nhược điểm mô hình cân đối CPU nhớ Việc tăng CPU làm tăng thêm lưu lượng đường dẫn từ nhớ tới CPU  Mô hình nhớ phân tán Mô hình yêu cầu mạng truyền thông để kết nối nhớ vi xử lý Mỗi CPU gắn với nhớ riêng thao tác CPU nhớ không CPU khác biết tới Ưu điểm mô hình kích thước nhớ cân với số lượng xử lý Hình 1.6: Máy tính nhớ phân tán (0,1) (1,0) Cứ tiếp tục vậy, bước có khối độc lập (2,0), (1,1) (0,2); bước (3,0), (2,1), (1,2), (0,3); bước (3,1), (2,2), (1,3); bước (3,2) (2,3) bước (3,3) Tuy toán phân tích số hoán vị toán NP-Hard, nhiên số xâu ký tự so sánh không lớn ([...]... Có ba phương pháp tiếp cận để thiết kế thuật toán song song: - Song song hoá những thuật toán tuần tự, biến đổi những cấu trúc tuần tự để tận dụng khả năng song song tự nhiên của tất cả các thành phần trong hệ thống xử lý - Thiết kế thuật toán song song mới trên cơ sở thuật toán song song đã có - Thiết kế thuật toán song song hoàn toàn mới thích ứng với những cấu trúc song song 1.3.4 Phân tích và đánh... toán song song ta còn phải chú ý đến kiến trúc của hệ thống tính toán Khi chuyển một thuật toán tuần tự sang thuật toán song song hoặc chuyển một thuật toán song song thích hợp với kiến trúc đang có Cần xác định được kiến trúc tính toán nào sẽ phù hợp với bài toán và 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 14 1.3.3 Các cách tiếp cận trong thiết kế thuật toán song song... tích và đánh giá thuật toán song song Trong thuật toán tuần tự chúng ta chỉ quan tâm tới độ phức tạp về thời gian và không gian, nhưng trong thuật toán song song thường có thêm một số đại lượng đo lường khác Độ phức tạp thời gian của thuật toán song song không chỉ đơn giản là việc đếm số câu lệnh cơ bản như trong thuật toán tuần tự mà thay vào đó nó phụ thuộc vào các phép toán cơ bản này có thể được... phức tạp về số bộ xử lý cũng là một đại lượng quan trọng trong phân tích thuật toán song song Thiết kế thuật toán song song hiệu quả bao gồm việc lựa chọn cấu trúc dữ liệu phù hợp, phân bố bộ xử lý và cuối cùng là thực hiện thuật toán Ba đại lượng này tác động lẫn nhau như một tổ chức tính toán Đánh giá thuật toán song song Độ phức tạp tính toán của thuật toán song song không chỉ phụ thuộc vào kích cỡ... Thiết kế và đánh giá thuật toán song song 1.3.1 Định ngh a thuật toán song song Thuật toán song song là một tập hợp các tiến trình (process) hay các tác vụ (task) có thể thực thi đồng thời và có thể trao đổi dữ liệu với nhau để kết hợp giải quyết vấn đề đặt ra [6] Những thuật toán, trong đó có một số thao tác có thể thực hiện đồng thời được gọi là thuật toán song song 13 1.3.2 Các nguyên lý thiết kế. .. Chi phí cho một thuật toán song song được xác định bằng tích của thời gian tính toán song song và số bộ xử lý được sử dụng Chi phí này phản ánh tổng số thời gian mà một bộ xử lý dùng để giải quyết bài toán Một thuật toán song song sử dụng p bộ vi xử lý để giải quyết bài toán đặt ra trong OT  đơn vị thời gian, sử dụng p bộ xử lý trong t p đơn vị thời gian, khi đó chi phí cho thuật toán song song C p... học và nghiên cứu protein Các ứng dụng chủ tập trung vào việc sử dụng thông tin kết hợp với tính toán trong việc tìm hiểu vai trò kết hợp giữa DNA, RNA và protein trong một cơ thể sống Bài toán tìm dãy con chung dài nhất của nhiều chuỗi được ứng dụng nhiều trong các lĩnh vực sinh học và di truyền học tính toán Đã có nhiều phương pháp có hiệu quả cho bài toán này với phương pháp quy hoạch động song song... kế thuật toán song song Khi muốn thực hiện việc xử lý song song ta phải xét cả kiến trúc máy tính và các thuật toán song song Để thiết kế được các thuật toán song song cần phải thực hiện - Phân chia dữ liệu cho các tác vụ - Chỉ ra cách truy cập và chia sẻ dữ liệu - Phân các tác vụ cho các tiến trình (bộ xử lý) - Các tiến trình được đồng bộ ra sao Khi thiết kế một thuật toán song song có thể sử dụng. .. Hệ số tăng tốc cũng là yếu tố đáng chú ý khi đánh giá thuật toán song song được song song hóa từ một thuật toán tuần tự Hệ số tăng tốc là tỉ lệ giữa thời gian thực hiện của thuật toán tuần tự ts và thời gian thực hiện của thuật toán song song t p với p bộ xử lý Sp  ts tp , 1  Sp  p (1.4) 17 Giả sử các bộ xử lý trong hệ thống song song hoàn toàn giống với bộ xử lý sử dụng trong tính toán tuần tự và. .. thời gian 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ử ... giá thuật toán song song 13 1.3.1 Định nghĩa thuật toán song song 13 1.3.2 Các nguyên lý thiết kế thuật toán song song 14 1.3.3 Các cách tiếp cận thiết kế thuật toán song song... tính toán phù hợp với toán toán loại xử lý hiệu kiến trúc song song cho trước 14 1.3.3 Các cách tiếp cận thiết kế thuật toán song song Có ba phương pháp tiếp cận để thiết kế thuật toán song song:... - 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 sở thuật toán song song có - Thiết kế thuật

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

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan