thiết kế nhân ma trận thưa với véctơ trong tính toán song song và ứng dụng

102 1.5K 4
thiết kế nhân ma trận thưa với véctơ trong tính toán song song và ứng dụng

Đ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

1 đại học quốc gia hà nội tr-ờng đại học khoa học tự nhiên Ngô thị nhạn Thiết kế nhân ma trận th-a với véctơ trong tính toán song song và ứng dụng luận văn thạc sĩ khoa học Hà Nội - Năm 2011 2 đại học quốc gia hà nội tr-ờng đại học khoa học tự nhiên Ngô thị nhạn Thiết kế nhân ma trận th-a với véctơ 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 và hệ thống tính toán Mã số: 60 46 35 luận văn thạc sĩ khoa học ng-ời h-ớng dẫn khoa học: nguyễn hữu điển Hà Nội - Năm 2011 4 MỤC LỤC Trang Trang phụ bìa Mục lục Danh mục các ký hiệu Danh mục các bảng Danh mục các hình vẽ Danh mục các thuật toán MỞ ĐẦU 1 Chƣơng 1 - TỔNG QUAN VỀ XỬ LÝ SONG SONG 12 1.1 Hệ thống song song 12 1.1.1 Khái niệm xử lý song song 12 1.1.2 Kiến trúc xử lý song song 12 1.2 Các thành phần của máy tính song song 15 1.2.1 Bộ nhớ 15 1.2.2 Chương trình dịch và các hệ điều hành 17 1.3 Các mô hình lập trình song song 19 1.3.1 Mô hình chia sẻ bộ nhớ 19 1.3.2 Mô hình tuyến 20 1.3.3 Mô hình song song dữ liệu 20 1.3.4 Mô hình truyền thông điệp 21 1.4 Nguyên lý thiết kế thuật toán song song 22 1.4.1 Định nghĩa thuật toán song song 22 1.4.2 Các giai đoạn của thiết kế thuật toán song song 22 5 1.4.3 Đánh giá độ phức tạp của thuật toán song song 25 1.5 Lập trình song song với MPI 27 1.5.1 Giao diện truyền thông điệp - MPI 27 1.5.2 Giới thiệu gói CCP của Microsoft 31 1.5.3 Lập trình MPI với VS.NET 34 1.6 Kiến trúc cụm máy tính 35 Chƣơng 2 – THUẬT TOÁN SONG SONG NHÂN MA TRẬN THƢA VỚI VÉCTƠ 38 2.1 Ma trận thưa 38 2.1.1 Đặt vấn đề 38 2.1.2 Cấu trúc dữ liệu cho ma trận thưa 43 2.2 Nhân ma trận thưa với véc tơ song song 48 2.2.1 Thuật toán song song 48 2.2.2 Phân phối ma trận 53 2.2.3 Phân phối véc tơ 60 2.2.3.1 Cận dưới địa phương cho số truyền thông cực đại 62 2.2.3.2 Phân phối các véc tơ độc lập 71 2.2.3.3 Phân phối các véc tơ đồng thời 78 Chƣơng 3 – KẾT QUẢ THỰC NGHIỆM 83 3.1 Bộ dữ liệu 83 3.2 Kết quả 83 KẾT LUẬN 93 TÀI LIỆU THAM KHẢO 94 PHỤ LỤC 96 6 BẢNG THUẬT NGỮ VIẾT TẮT Thuật ngữ Tiếng Anh Nghĩa tiếng Việt CCS Compressed Column Storage Lưu trữ nén cột CRS Compressed Row Storage Lưu trữ nén dòng CPU Central Processing Unit Bộ xử lý trung tâm HPC High Performance Computing Tính toán/máy tính hiệu năng cao ICRS Incremental Compressed Row Storage Lưu trữ nén dòng có gia số JDS Jagged Diagonal Storage Lưu trữ đường chéo răng cưa MIMD Multi Instruction Stream, Multi Data Stream Đa luồng lệnh, đa luồng dữ liệu MISD Multi Instruction Stream, Single Data Stream Đa luồng lệnh, đơn luồng dữ liệu MPI Message Passing Interface Giao diện truyền thông điệp NUMA Non-Uniform Memory Access Truy cập bộ nhớ không đồng thời PRAM Parallel Random Access Machine Máy truy trập ngẫu nhiên song song SIMD Single Instruction Stream, Multi Data Stream Đơn luồng lệnh, đa luồng dữ liệu SISD Single Instruction Stream, Single Data Stream Đơn luồng lệnh, đơn luồng dữ liệu TCP Transmission Control Protocol Giao thức điều khiển truyền thông UDP User Datagram Protocol Giao thức gói người dùng UMA Uniform Memory Access Truy cập bộ nhớ đồng thời WS Workstation Máy trạm WSC Workstation Cluster Cụm máy trạm 7 DANH MỤC CÁC BẢNG Trang Bảng 3.1 Các file dữ liệu ma trận 83 Bảng 3.2 Thống kê cho ma trận bcsstk13 85 Bảng 3.3 Thống kê cho ma trận lp_cycle 86 Bảng 3.4 Thống kê cho ma trận onetone2 87 Bảng 3.5 Thống kê cho ma trận epb2 88 Bảng 3.7 Thống kê cho ma trận random20k 90 8 DANH MỤC HÌNH VẼ Trang Hình 1.1 Phân cấp hệ thống bộ nhớ 15 Hình 1.2 Mô hình tuyến 20 Hình 1.3 Các giai đoạn của quá trình thiết kế thuật toán 23 Hình 1.4 Luật Amdahl 27 Hình 1.5 Mô phỏng kiến trúc một cụm tính toán 32 Hình 1.6 Mô hình kiến trúc lập lịch 33 Hình 2.1 Mô phỏng động lực học bằng ma trận lực thưa 40 Hình 2.2 Minh hoạ nhân ma trận thưa với véc tơ song song 49 Hình 2.3 Minh hoạ truyền thông nhân ma trận thưa với véc tơ 51 Hình 2.4 Phân phối của ma trận impcol_b 58 Hình 3.1 Hình dạng thưa của ma trận bcsstk13 84 Hình 3.2 Hình dạng thưa của ma trận lp_cycle 85 Hình 3.3 Hình dạng thưa của ma trận onetone2 86 Hình 3.4 Hình dạng thưa của ma trận epb2 87 Hình 3.5 Hình dạng thưa của ma trận nasa2910 88 Hình 3.6 Phân phối LA cho random20k với P = 4 91 Hình 3.7 Phân phối LA cho lp_cycle với P = 4 92 9 DANH MỤC CÁC THUẬT TOÁN Trang Thuật toán 2.1 Thuật toán nhân ma trận thưa với véc tơ tuần tự 39 Thuật toán 2.2 Thuật toán tuần tự nhân ma trận thưa với véc tơ sử dụng CRS 45 Thuật toán 2.3 Thuật toán tuần tự nhân ma trận thưa với véc tơ sử dụng ICRS 46 Thuật toán 2.4 Nhân ma trận thưa với véc tơ song song 50 Thuật toán 2.5 Thuật toán Mondrian phân hoạch ma trận thưa 59 Thuật toán 2.6 Xây dựng cận dưới địa phương của bộ xử lý s 64 Thuật toán 2.7 Chuyển tập C  thành   1, ,0     CC 66 Thuật toán 2.8 Tạo cận dưới địa phương tổng quát cho bộ xử lý s 69 Thuật toán 2.9 Thuật toán biên địa phương (LA) 73 Thuật toán 2.10 Thuật toán phân phối véc tơ đồng thời (LA vu ) 80 10 MỞ ĐẦU Nhân loại ngày nay đang chứng kiến sự phát triển mạnh mẽ của ngành Công nghệ thông tin, một trong những ngành mũi nhọn của nhiều quốc gia trên thế giới. Sự phát triển vượt bậc của nó là kết quả tất yếu của sự phát triển các thiết bị phần cứng cũng như phần mềm tiện ích. Từ những máy tính đơn giản, tốc độ xử lý chậm, và chỉ được sử dụng trong một số lĩnh vực kỹ thuật nhất định, thì ngày nay chúng đã có khả năng tính toán và tốc độ xử lý vượt trội trở thành một công cụ không thể thiếu trong mọi lĩnh vực của đời sống. Những máy tính ra đời đầu tiên, do hạn chế về tốc độ xử lý và cơ chế vào ra dữ liệu nên việc lập trình rất khó khăn. Điều này làm cho máy tính không có khả năng sử dụng dễ dàng và phổ cập, nó chỉ được ứng dụng trong một số lĩnh vực khoa học đặc biệt. Ngày nay, cùng với sự phát triển mạnh mẽ của thiết bị lưu trữ, bộ nhớ, tốc độ xử lý và các thiết bị ngoại vi,… máy tính đã trở nên thân thiện hơn với người sử dụng, cũng như tốc độ tính toán nhanh hơn rất nhiều. Nhờ đó mà rất nhiều bài toán lớn đã có khả năng thực thi và nhiều ứng dụng được đưa ra. Tuy nhiên, một thực tế là còn rất nhiều vấn đề lớn với số lượng cần tính toán khổng lồ mà một máy tính thông thường không thể giải quyết được. Vào thập kỷ 70, các nhà khoa học đã đưa ra ý tưởng về cấu trúc song song nhằm kết hợp sức mạnh của nhiều bộ xử lý trên một máy tính, hoặc kết hợp nhiều máy tính với nhau 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, các máy tính song song có độ an toàn cao hơn máy tính đơn, khi một vài bộ xử lý hỏng thì máy tính song song vẫn có thể hoạt động được trong khi máy tính đơn thì không làm được điều đó. Hiện nay trên thế giới đã có những máy tính song song chứa đến hàng nghìn bộ xử lý. Để khai thác tiềm năng và sức mạnh của máy tính song song, cùng với việc thiết kế kiến trúc song song ta còn phải nghiên cứu những vấn đề quan trọng khác như hệ điều hành hỗ trợ xử lý song song, các ngôn ngữ lập trình và thuật toán song song. Việc nghiên cứu thiết kế các máy tính song song, và các thuật toán song song cũng như các ngôn ngữ lập trình hỗ trợ lập trình song song bắt đầu được quan tâm từ những 11 năm 70, cho đến nay các ứng dụng của chúng đã lan rộng khắp các lĩnh vực của đời sống như đánh giá khả năng rủi ro về tài chính: dùng để mô hình hoá các xu hướng trên thị trường… Hỗ trợ quyết định như phân tích thị trường, dự báo thời tiết… Trí tuệ nhân tạo như thiết kế robot… Xử lý ảnh ứng dụng trong công nghệ nhận dạng… Điều khiển tự động… Trong đó bài toán có liên quan tới ma trận thưa đóng một vai trò quan trọng, hay gặp trong các lời giải lặp của hệ phương trình tuyến tính, hệ phương trình giá trị riêng, … Do vậy việc nghiên cứu các thuật toán ma trận thưa, đặc biệt là các thuật toán song song trên ma trận thưa là rất cần thiết. Trong phạm vi luận văn này trình bày ba phần chính, Chƣơng 1 trình bày tổng quan về xử lý song song, thuật toán song song và giới thiệu lập trình song song với MPI sử dụng Visual của Microsoft; Chƣơng 2 trình bày về các thuật toán thiết kế cho nhân ma trận thưa với véc tơ song song; Chƣơng 3 trình bày một số kết quả thực nghiệm trên một số bộ dữ liệu cho chương trình nhân ma trận thưa với véc tơ song song. Với thời gian tiếp cận vấn đề và lượng thông tin còn hạn chế, luận văn còn nhiều thiếu sót. Tôi rất mong nhận được sự góp ý của các thầy, các cô và các anh/chị để có thể tiếp tục phát triển đề tài đã nghiên cứu và đạt được kết quả. [...]... đoạn của thiết kế thuật toán song song Có ba phương pháp thiết kế thuật toán song song: - Song song hoá những thuật toán tuần tự đã có - 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 Dù sử dụng phương pháp nào thì quá trình thiết kế cũng thường bao gồm các giai đoạn sau: Phân hoạch bài toán Mục... 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 tp với p bộ xử lý S p  ts t p , 1 Sp  p (1.4) 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à ts là thời gian thực hiện bài toán bằng tính toán tuần... của công việc, đối với một máy tính song song có một số loại kiến trúc phần cứng cơ bản sau:  Máy tính song song với bộ nhớ chia sẻ Trong máy tính song song với bộ nhớ chia sẻ, bộ nhớ là chung cho tất cả các bộ xử lý Bộ nhớ được phân thành các mô đun nhớ, mỗi mô đun này có kênh vào ra riêng Các mô đun nhớ này được nối với bộ xử lý trên mỗi CPU thông qua bus hoặc mạng kết nối nội bộ Trong mô hình này,... kiếm khả năng thực hiện song song của bài toán Phân hoạch là thao tác phân tích một tính toán thành nhiều tác vụ nhỏ Giai đoạn 22 thiết kế này thường độc lập với kiến trúc máy và đảm bảo thuật toán đặt ra có độ tương thích cao với các hệ máy tính song song Phân hoạch Bài toán Truyền thông Các tác vụ nhỏ rời rạc Tích hợp Ánh xạ Hình 1.3 Các giai đoạn của quá trình thiết kế thuật toán Một phương pháp phân... 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 tp đơn vị thời gian, khi đó chi phí cho thuật toán song song Cp: Cp  p  t p (1.3) Hệ số tăng tốc... trình trong việc phát triển các ứng dụng di động MPI Forum được lập ra với mục đích thiết lập một chuẩn cho việc triển khai mô hình truyền thông điệp Hiện nay, MPI là chuẩn cho mô hình truyền thông điệp 1.4 Nguyên lý thiết kế thuật toán song song 1.4.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 hay các tác vụ có thể thực thi đồng thời và có thể trao đổi dữ liệu với. .. tiện dụng đối với các hàm C/C++ Các ứng dụng C/C++ sử dụng MSMPI có thể sử dụng các MPIAPI macro Đối với các hàm Fortran, phiên bản 32-bit của Msmpi.dll sử dụng lời gọi hàm dạng cdecl Phiên bản 64-bit của các hàm này thì sử dụng lời gọi fastcall Kiến trúc cụm tính toán Cụm tính toán là một đơn vị có tổ chức bao gồm một tập hợp các nút, một hàng đợi, các ứng dụng và các tác vụ Một nút là một máy tính. .. để kết hợp giải quyết vấn đề đặt ra [13] Có thể có nhiều thuật toán song song khác nhau cùng giải quyết một bài toán, tùy thuộc vào cách dữ liệu được truy xuất, cách phân rã dữ liệu thành những tác vụ, cách ánh xạ các tác vụ này vào các bộ vi xử lý và cách đồng bộ các tiến trình Do đó, để có được một thuật toán song song hiệu quả, ta cần tận dụng các nguyên lý cho việc thiết kế thuật toán song song... phân hoạch kết hợp cả sự tính toán và dữ liệu trong bài toán Có hai phương pháp phân hoạch: 23  Phân hoạch theo miền: Phương pháp này tập trung vào dữ liệu liên kết với bài toán, sau đó mới xác định một sự tính toán thích hợp trên những dữ liệu đó  Phân hoạch theo chức năng: Phương pháp này phân hoạch sự tính toán thành những tác vụ tách rời, sau đó làm việc trên dữ liệu được kết hợp với bài toán Truyền... Lập trình song song với MPI Phần này giới thiệu một công cụ hỗ trợ lập trình song song, đó là MPI, với gói hỗ trợ tính toán song song MPI SDK của Microsoft 1.5.1 Giao diện truyền thông điệp - MPI Giới thiệu về MPI 27 Giao diện truyền thông điệp chuẩn MPI (MessagePassing Interface) là một giao diện chuẩn cho phép nhiều máy tính giao tiếp với nhau, được sử dụng trong các cụm máy tính và siêu máy tính MPI . tự nhân ma trận thưa với véc tơ sử dụng CRS 45 Thuật toán 2.3 Thuật toán tuần tự nhân ma trận thưa với véc tơ sử dụng ICRS 46 Thuật toán 2.4 Nhân ma trận thưa với véc tơ song song 50 Thuật toán. Ngô thị nhạn Thiết kế nhân ma trận th-a với véctơ 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 và hệ thống tính toán Mã số: 60 46 35 . song song, thuật toán song song và giới thiệu lập trình song song với MPI sử dụng Visual của Microsoft; Chƣơng 2 trình bày về các thuật toán thiết kế cho nhân ma trận thưa với véc tơ song song;

Ngày đăng: 08/01/2015, 08:31

Từ khóa liên quan

Mục lục

  • MỤC LỤC

  • DANH MỤC CÁC BẢNG

  • DANH MỤC HÌNH VẼ

  • DANH MỤC CÁC THUẬT TOÁN

  • MỞ ĐẦU

  • Chƣơng 1 - TỔNG QUAN VỀ XỬ LÝ SONG SONG

  • 1.1 Hệ thống song song

  • 1.1.1 Khái niệm xử lý song song

  • 1.1.2 Kiến trúc xử lý song song

  • 1.2 Các thành phần của máy tính song song

  • 1.2.1 Bộ nhớ

  • 1.2.2 Chƣơng trình dịch và các hệ điều hành

  • 1.3 Các mô hình lập trình song song

  • 1.3.1 Mô hình chia sẻ bộ nhớ

  • 1.3.2 Mô hình tuyến

  • 1.3.3 Mô hình song song dữ liệu

  • 1.3.4 Mô hình truyền thông điệp

  • 1.4 Nguyên lý thiết kế thuật toán song song

  • 1.4.1 Định nghĩa thuật toán song song

  • 1.4.2 Các giai đoạn của thiết kế thuật toán song song

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

Tài liệu liên quan