Báo cáo: Nhân ma trận song song

16 492 0
Báo cáo: Nhân ma trận song song

Đ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

Ma trận nhân là một trong những bài toán có thể áp dụng mô hình song song đa bộ xử lý, mục đích của bài báo cáo là tổng kết quá trình tìm hiểu và áp dụng kiến trúc song song SIMD vào giải bài toán Ma trận nhân. Nội dung bài báo cáo gồm 3 phần :  Phần 1 : Tổng quan về xử lý song song  Phần 2 : Giải bài toán ma trận nhân trên kiến trúc máy tính tuần tự SISD (Single Instruction Single Data – Đơn dòng lệnh Đơn dòng dữ liệu).  Phần 3 : Đưa bài toàn sang mô hình SIMD (Single Instruction Multiple Data – Đơn dòng lệnh Đa dòng dữ liệu), với 2 cách tổ chức các bộ xử lý là Lưới 2D nối vòng và Siêu khối.

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA CÔNG NGHỆ THƠNG TIN BÀI TẬP LỚN Mơn: XỬ LÝ SONG SONG NHÂN MA TRÂN SONG SONG Giáo viên hướng dẫn : Bùi Thị Thủy Sinh viên thực Nguyễn Đồng Thắng : Trần Thị Hà An Nguyễn Thị Mừng Hà Nội, 12/2012 Lời mở đầu Nhu cầu tính tốn ngày tăng cao phức tạp với toán lớn nhiều lĩnh vực khoa học (như hóa học lượng tử, vũ trụ, thiết kế vật liệu siêu dẫn, sinh học, dược học, cơng nghệ gen, khí hậu, môi trường ) hay thương mại dịch vụ (hệ thống ngân hàng, điện toán ) thách thức nhiều nhà khoa học Những máy tính thiết kế theo kiểu hiệu với việc phân rã toán lớn thành tốn con, phù hợp với kiến trúc máy tính đơn Song, nguồn thông tin đầu vào để xử lý ngày lớn, khiến máy tính khơng đáp ứng nhu cầu thực tế Đồng thời với việc tăng tốc độ phần cứng việc phát triển máy tính song song quan tâm Sự đời máy tính song song phần đáp ứng nhu cầu tính tốn người, hệ thống song song đa xử lý ngày phát triển mạnh mẽ Ma trận nhân tốn áp dụng mơ hình song song đa xử lý, mục đích báo cáo tổng kết trình tìm hiểu áp dụng kiến trúc song song SIMD vào giải toán Ma trận nhân Nội dung báo cáo gồm phần :  Phần : Tổng quan xử lý song song  Phần : Giải toán ma trận nhân kiến trúc máy tính SISD (Single Instruction Single Data – Đơn dòng lệnh Đơn dòng liệu)  Phần : Đưa tồn sang mơ hình SIMD (Single Instruction Multiple Data – Đơn dòng lệnh Đa dòng liệu), với cách tổ chức xử lý Lưới 2D nối vòng Siêu khối  Phần : Tổng kết Do nhiều hạn chế kiến thức kinh nghiệm, nên báo cáo nhiều thiếu xót, chúng em mong nhận góp ý từ bạn Chúng em xin chân thành cảm ơn! TỔNG QUAN VỀ XỬ LÝ SONG SONG Khái niệm xử lý song song: 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 đề, thực hệ thống đa xử lý Nhiều xử lý kết hợp với để giải vấn đề thế, thời điểm có nhiều phép tốn thực đồng thời, giúp giảm thời gian xử lý Vấn đề xử lý song song liên quan trực tiếp đến kiến trúc máy tính, hệ điều hành, thuật tốn, ngơn ngữ lập trình Chương trình dịch hệ điều hành: Chương trình viết ngơn ngữ bậc cao phải dịch sang ngơn ngữ máy, chương trình dịch chương trình thông dịch sử dụng để thực việc chuyển đổi Đối với hệ thống song song, thành phần đóng vai trò quan trọng Chương trình dịch song song Chương trình dịch làm giảm thời gian làm việc chương trình cách chia nhỏ công việc thành khối công việc con, khối xử lý đồng thời nhiều đơn vị xử lý Hệ điều hành chương trình làm nhiệm vụ phối hợp hoạt động máy tính, hệ điều hành song song thực chức sau:  Khởi động hệ thống  Phân đoạn, lập trình cho tiến trình  Trao đổi đồng hóa tiến trình  Quản lý điều hành hệ thống Nhiệm vụ hệ điều hành đa xử lý tích hợp tài nguyên tính tốn xử lý trao đổi với thông qua mạng liên kết để tạo thành hệ thống thống làm việc cách hiệu Lập trình song song: a) Giới thiệu chung: Trong mơi trường lập trình song song, cơng việc lập trình viên khơng viết chương trình, liệu phải cung cấp cơng cụ để đồng hóa điều khiển tương tác tiến trình Do đó, người lập trình cần tạp lập lịch cho tiến trình Có hai cách tiếp cận khai thác khả xử lý, hai cách bổ sung cho nhau, áp dụng cách khó đạt hiệu tốt:  Phát triển ngơn ngữ lập trình cho phép thể việc song song mức thuật tốn (Ví dụ: Fortran, C…)  Xây dựng chương trình dịch đủ mạnh để nhận dạng phân đoạn chương trình song song hóa b) Ngơn ngữ lập trình song song MPI (Message Passing Interface): Truyền thơng điệp mơ hình sử dụng rộng rãi hệ thống máy tính song song đặc biệt hệ thống có nhớ phân tán Những nỗ lực để chuyển đổi ứng dụng lớn sang mơ hình thực mười năm trước Mục tiêu MPI là phát triển chuẩn sử dụng rộng rãi đẻ viết chương trình truyền thơng điệp:  Thiết kế giao diện lập trình ứng dụng  Cho phép truyền thơng điệp hiệu quả, tránh chép từ nhớ sang nhớ, cho phép chồng lấp tính tốn truyền thơng  Sử dụng ngơn ngữ lập trình C Fortran cho thư viện  Cho phép thực thi sử dụng nhiều mơi trường  Đảm bảo an tồn cho tiến trình Sau ta tìm hiểu việc giải tốn ma trận nhân kiến trúc song song đa xử lý II MƠ HÌNH TUẦN TỰ SISD (Single Instruction Single Data) : Hình 1: Kiến trúc SISD Ý tưởng : Việc nhân hai ma trận kiến trúc dựa kiến thức tính tốn thơng thường Nhân ma trận Alxm ma trận Bmxn ma trận Clxn , với phần tử ma trận C tính theo công thức : m cij =  aikbkj k 0 Thuật toán : Input: A[0…(l-1)][0…(m-1)] B[0…(m-1)][0…(n-1)] Output: C[0…(l-1)][0…(n-1)] BEGIN for i = to (l-1) for j = to (n-1) begin t=0 for k = to (m-1) t = t + aik*bkj endfor cij = t end endfor endfor END Đánh giá: Trong mơ hình SISD có xử lý, để nhân hai ma trận cỡ n, phải thực n lệnh nhân n3 lệnh cộng, độ phức tạp giải thuật O(n 3) Như kích cỡ hai ma trận tăng, số lượng phép tính xử lý phải thực tăng theo hàm mũ, thời gian thực lâu nhiều Nhận thấy nhược điểm này, đồng thời thấy đặc điểm tính tốn tốn ma trận nhân lặp lại câu lệnh nhiều liệu khác nhau, ta có ý tưởng đưa toán sang giải kiến trúc song song, nhằm tăng hiệu xuất tính tốn, cụ thể kiến trúc song song SIMD MƠ HÌNH SONG SONG SIMD: Đây kiến trúc song song đồng bộ, cụ thể, có nhiều xử lý, xử lý có đường liệu riêng, xử lý điều khiển Khối điều khiển (Control Unit - CU) Khi CU phát lệnh đó, đồng loạt xử lý thực lệnh liệu xử lý sở hữu, kết thúc chu kỳ lệnh Hình 2: Kiến trúc song song SIMD Với toán nhân ma trận, ta xem xét hai cách tổ chức xử lý: Mạng lưới 2D nối vòng Siêu khối Kết nối xử lý theo mạng lưới 2D nối vòng: a) Ý tưởng: Để nhân hai ma trận Anxn Bnxn, ta sử dụng mảng n2 xử lý kết nối với theo mạng lưới 2D nối vòng Mỗi xử lý tương ứng với vị trí phần tử ma trận Hình 3: Mảng xử lý dùng nhân hai ma trận cỡ 3x3 Sau qúa trình dịch chuyển liệu tính tốn, phần tử c ij ma trận trận kết C lưu xử lý Pij tương ứng Quá trình thực chia làm hai giai đoạn sau : Giai đoạn 1: Các phần tử aij bij truyền vào xử lý Pij Lúc xử lý chứa cặp liệu, nhiên cặp liệu P ij (i = j) chắn nhân với nhau, ngồi khơng cặp liệu nhân với Hình : Nhân ma trận cấp 3, truyền liệu vào xử lý Để làm xuất cặp liệu nhân với nhau, ta tiến hành bước dịch chuyển đặc biệt Các phần tử ma trận A xét theo hàng, hàng thứ i dịch trái i vị trí Các phần tử ma trận B xét theo cột, cột thứ j dịch lên i vị trí Lúc xử lý chứa cặp liệu nhân với CU phát lệnh nhân, đồng loạt Pij tiến hành việc nhân cặp liệu Tuy nhiên lúc có n phép nhân thực hiện, chưa phải kết cuối Giai đoạn 2: Ta tiếp tục tiến hành dịch chuyển liệu, tính toán cộng kết Các phần tử ma trận A xét theo hàng, tất hàng dịch trái vị trí Các phần tử ma trận B xét theo cột, tất cột dịch lên vị trí Thực việc dịch chuyển (n-1) lần, lần ta lại cặp cần phải nhân Ví dụ nhân ma trận cấp 3, giai đoạn thực bước dịch chuyển Sự dịch chuyển liệu nhìn từ góc độ xử lý P4 Ở lần dịch chuyển trước chứa cặp liệu a12 b21 Lần 1: a12 dịch sang trái vị trí (P3), b 21 dịch lên vị trí (P1), P4 chứa cặp liệu dịch vào a10 b01 CU lại phát lệnh nhân cho xử lý thực Nhân xong, cộng gộp với kết nhân trước Lần 2: a10 dịch sang trái vị trí (P3), b 01 dịch lên vị trí (P1), P4 chứa cặp liệu dịch vào a11 b11 CU lại phát lệnh nhân cho xử lý thực Cuối ta ma trận C lưu mảng xử lý b) Thuật tốn : Biến tồn cục: n, k Biến cục bộ: a, b, c BEGIN (Giai đoạn 1: Định tuyến liệu) for k=0 to (n-2) for all Pij với ≤ i,j ≤ (n-1) if (i > k) then a = east(a) endif if (j > k) then b = south(b) endif endfor endfor for all Pij với ≤ i,j ≤ (n-1) c=axb endfor (Giai đoạn 2: Cộng kết quả) for k=0 to (n-2) for all Pij với ≤ i,j ≤ (n-1) a = east(a) b = south(b) c = c + a*b endfor endfor END c) Đánh giá: Mơ hình song song SIMD tổ chức xử lý theo mạng lưới 2D nối vòng, để nhân hai ma trận cỡ n, sử dụng n2 xử lý Sự song song diễn tiến hành phép nhân, n xử lý đồng thời thực 10 lệnh nhân CU phát ra, sau n 3/n2 = n lệnh nhân, xử lý tính kết cuối Độ phức tạp giải thuật O(n), giảm đáng kể thời gian thực Kết nối xử lý theo mạng hình siêu khối: a) Ý tưởng: Để nhân hai ma trận Anxn Bnxn, ta sử dụng n3=23q xử lý kết nối với theo mạng hình siêu khối Mạng siêu khối – hay gọi n-lập phương nhị phân, gồm có 2k nút tạo thành siêu khối k chiều Sử dụng k bit đánh tên nút theo quy tắc hai nút cạnh sai khác vị trí bit Hình 5: Siêu khối chiều – nút, dùng nhân ma trận cấp Ý tưởng đây, đưa tất n cặp số cần phải nhân vào n3 xử lý, sau CU phải phát lệnh nhân lần Ban đầu, phần tử aij bij truyền vào xử lý P(2qi + j) Sau qúa trình dịch chuyển liệu tính toán, phần tử cij ma trận trận kết C lưu xử lý P(2qi + j) tương ứng P(2qi + j) A B P000 (P0) a00 b00 P001 (P1) a01 b01 P010 (P2) a10 b10 P011 (P3) a11 b11 P100 (P4) 11 P101 (P5) P110 (P6) P111 (P7) Giai đoạn 1: Truyền giá trị hai ma trận vào xử lý lại Các xử lý chứa cặp liệu, nhiên chưa phải cặp liệu nhân với nhau, ta tiến hành việc định tuyến liệu, tức đưa cặp số phải nhân vào xử lý thích hợp Giai đoạn 2: Ta áp dụng giải thuật, định tuyến cho phần tử ma trận vị trí theo cặp nhân với Khi cặp số xử lý thích hợp, ta tiến hành việc nhân song song, n xử lý đồng thời nhân cặp liệu 12 Hinh: Định tuyến liệu, đưa cặp số xử lý thích hợp Hinh: CU phát lệnh nhân, xử lý tiến hành nhân song song Giai đoạn 3: Cộng kết b) Thuật toán: Tham số: q (Ma trận cỡ 2q) Biến toàn cục : k Biến cục : a,b,c,s,t BEGIN (Giai đoạn 1) for k = (3q-1) downto 2q for all Pm BIT(m,k) = t = BIT.COMPLEMENT(m,k) a = [t]a b = [t]b 13 endfor endfor (Định tuyến liệu) for k = (q-1) downto for all Pm BIT(m,k) ≠ BIT(m,2q+k) t = BIT.COMPLEMENT(m,k) a = [t]a endfor endfor for k = (2q-1) downto q for all Pm BIT(m,k) ≠ BIT(m,q+k) t = BIT.COMPLEMENT(m,k) b = [t]b endfor endfor (Giai đoạn 2) for all Pm c=axb endfor (Giai đoạn 3) for k=2q to (3q-1) for all Pm t = BIT.COMPLEMENT(m,k) s = [t]c c = c+s endfor endfor END Hàm BIT(m,k) có ý nghĩa trả giá trị bit thứ k biểu diễn nhị phân m Ví dụ: Biểu diễn nhị phân 1001  BIT(9,0) = 14 BIT(9,1) = BIT(9,2) = BIT(9,3) = Hàm BIT.COMPLEMENT(m,k) có ý nghĩa trả giá trị số nguyên, sau thực bù bit thứ k biểu diễn nhị phân m Ví dụ: BIT.COMPLEMENT(9,0) = (1000) BIT.COMPLEMENT(9,1) = 11 (1011) BIT.COMPLEMENT(9,2) = 13 (1101) BIT.COMPLEMENT(9,3) = (0001) c) Đánh giá: Mơ hình song song SIMD tổ chức xử lý theo mạng hình siêu khối, để nhân hai ma trận cỡ n, sử dụng n3 xử lý Sự song song diễn tiến hành phép nhân, n xử lý đồng thời thực lệnh nhân CU phát ra, sau n3/n3=1 lệnh nhân, xử lý tính kết cuối Độ phức tạp giải thuật O(log n), cần lệnh nhân toàn n3 cặp liệu nhân lại với TỔNG KẾT: Số phép nhân thực Số xử lý Số lệnh nhân CU phát Tuần tự SISD n3 n3 SIMD Lưới 2D n3 n2 n SIMD Siêu khối n3 n3 Sau trình tìm hiểu, ta thấy khác biệt mơ hình tính toán song song việc giải toán nhân ma trận, đồng thời thấy khác biệt hai cách tổ chức xử lý mơ hình song song Lưới 2D nối vòng Siêu khối Tuy rằng, mơ hình song song, việc thiết kế, kết nối, xử lý phức tạp mơ hình tuần tự, chi phí cho phần cứng tăng cao, nhiên hiệu công việc mang lại lớn Với khối lượng cơng việc, dùng mơ hình song song nhiều xử lý, rõ ràng tốc độ thực thi giải toán nhanh nhiều 15 ****************** HẾT 16 ... trình tìm hiểu áp dụng kiến trúc song song SIMD vào giải toán Ma trận nhân Nội dung báo cáo gồm phần :  Phần : Tổng quan xử lý song song  Phần : Giải toán ma trận nhân kiến trúc máy tính SISD (Single... Sự đời máy tính song song phần đáp ứng nhu cầu tính tốn người, hệ thống song song đa xử lý ngày phát triển mạnh mẽ Ma trận nhân toán áp dụng mơ hình song song đa xử lý, mục đích báo cáo tổng kết... Việc nhân hai ma trận kiến trúc dựa kiến thức tính tốn thơng thường Nhân ma trận Alxm ma trận Bmxn ma trận Clxn , với phần tử ma trận C tính theo công thức : m cij =  aikbkj k 0 Thuật toán :

Ngày đăng: 26/02/2019, 22:15

Từ khóa liên quan

Mục lục

  • Sinh viên thực hiện : Nguyễn Đồng Thắng

  • Trần Thị Hà An

  • Nguyễn Thị Mừng

  • TỔNG QUAN VỀ XỬ LÝ SONG SONG

    • 1. Khái niệm xử lý song song:

    • 2. Chương trình dịch và các hệ điều hành:

    • 3. Lập trình song song:

      • a) Giới thiệu chung:

      • b) Ngôn ngữ lập trình song song MPI (Message Passing Interface):

      • II. MÔ HÌNH TUẦN TỰ SISD (Single Instruction Single Data) :

        • 1. Ý tưởng :

        • 2. Thuật toán :

        • 3. Đánh giá:

        • MÔ HÌNH SONG SONG SIMD:

          • 1. Kết nối các bộ xử lý theo mạng lưới 2D nối vòng:

            • a) Ý tưởng:

            • b) Thuật toán :

            • c) Đánh giá:

            • 2. Kết nối các bộ xử lý theo mạng hình siêu khối:

              • a) Ý tưởng:

              • b) Thuật toán:

              • c) Đánh giá:

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

Tài liệu liên quan