Chuyên đối ma trận dữ liệu

Một phần của tài liệu Báo cáo tiểu luận Đề tài Đa xử lý và các cấp Độ phân cấp luồng song song (Trang 21 - 25)

Ma trận dữ liệu và gốc của ma trận thống nhất được phân vùng giữa các bộ xử lý theo các phần hàng liền kề, để mỗi phân vùng của bộ xử lý nằm trong bộ nhớ cục bộ riêng. Hàng đầu tiên của gốc của ma trận thông nhất được truy cập nhiều bởi tất cả các bộ xử lý và thường được sao chép,

21

như chúng tôi làm, trong bước đầu tiên của thuật toán vừa được hiển thị. Dữ liệu chuyên vị đảm bảo tính cục bộ tốt trong các bước FFT riêng lẻ, nếu không sẽ truy cập dữ liệu phi địa phương.

Thông tin liên lạc duy nhất là trong các giai đoạn chuyên vị, đòi hỏi tất cả các truyền thông số lượng lớn dữ liệu. Các cột con liền kề trong các hàng được chỉ định cho một bộ xử lý được nhóm

thành các khối, được chuyển vị và đặt vào vị trí thích hợp của ma trận đích. Mỗi bộ xử lý chuyên đổi một khối cục bộ và gửi một khối đến từng bộ xử lý khác trong hệ thống. Mặc dù không sử dụng lại các từ riêng lẻ trong chuyên đoạn, với bộ nhớ cache dài ngăn chặn chuyên vị đề tận dụng lợi thế của không gian địa phương được cung cấp bởi các khối dài trong ma trận nguồn.

e Nhan LU

LU la nhan tu hoa LU cua m6t ma trận dày đặc và là đại diện của nhiều tính toán đại số tuyến tính, chăng hạn như thừa số hóa QR, thừa số hóa Cholesky,và các phương pháp eigenvalue. Đối với ma trận có kích thước n * n thời gian chạy là n3 và độ song song tỉ lệ với n2. Việc phân tích thừa số LU day đặc có thê được thực hiện một cách hiệu quả bằng cách chặn thuật toán, sử dụng các kỹ thuật trong Chương 5, dẫn đến cho hành vi bộ nhớ cache hiệu quả cao và giao tiếp thấp.

Sau khi chặn thuật toán, phép tính chi phối là một phép nhân ma trận dày đặc xảy ra trong vòng trong cùng. Kích thước khối được chọn đủ nhỏ để giữ bộ nhớ đệm tỷ lệ bỏ lỡ thấp và đủ lớn để giảm thời gian dành cho các phần ít song song hơn của tính toán. Kích thước khối tương đối nhỏ (8 * 8 hoặc I6 * 16) có xu hướng đáp ứng cả hai tiêu chí.

Hai chi tiết rat quan trọng để giảm giao tiếp giữa các bộ xử lý. Ngày thứ nhất,các khối của ma trận được chí định cho các bộ xử lý bằng cách sử dụng xếp lớp 2D:nB*nB (trong đó mỗi khối là B *B) ma trận các khối được phân bồ bằng cách đặt một lưới có kích thước p*p trên ma trận các khối theo kiểu cắt cookie cho đến khi tat cả các khối được phân bổ cho một bộ xử lý. Thứ hai,

phép nhân ma trận dày đặc được thực hiện bởi bộ xử lý sở hữu khối đích. Với việc chặn và phân bồ này kế hoạch, thông tin liên lạc trong quá trình giảm vừa thường xuyên vừa có thê dự đoán được. Đối với các phép đo trong chương này, đầu vào là ma trận 512*512 và khối I6*16 được sử dụng.

Một cách tự nhiên để mã hóa nhân tử LU bị chặn của ma trận 2D trong một chia sẻ không gian

địa chỉ là sử dụng một mảng 2D đề biểu diễn ma trận. Bởi vì các khối là được phân bồ theo kiểu

phân tách lát gạch và một khối không liền nhau trong địa chỉ không gian trong một mảng 2D, rất khó phân bồ các khối trong bộ nhớ cục bộ của bộ xử lý sở hữu chúng. Giải pháp là đảm bảo rằng các khối được gán cho bộ xử lý được phân bô cục bộ và liền kề bằng cách sử dụng mảng 4D (với hai thứ nguyên đầu tiên chỉ định số khối trong lưới 2D các khối và hai tiếp theo chỉ định phần tử trong khối).

e Ứng dụng Barnes

Barnes là một triển khai của thuật toán n-body Barnes-Hut giải quyết một vấn đề trong quá trình tiễn hóa thiên hà. Các thuật toán N-body mô phỏng sự tương tác giữa các cột số lượng lớn các vật thê có lực tương tác giữa chúng. Trong trường hợp này, các thiên thê đại diện cho tập hợp các ngôi sao và lực là lực hấp dẫn. Giảm Thời gian tính toán cần thiết để mô hình hóa hoàn toàn tất cả các tương tác riêng lẻ giữa các cơ thể, chúng phát triên như n2, thuật toán n-body tận dụng lợi thế thực tế là các lực giảm theo khoảng cách. (Ví dụ: trọng lực giảm xuống như | / d2, trong đó d là khoảng cách giữa hai phần tử.) Thuật toán Barnes-Hut tận dụng đặc tính này bằng cách xử lý một tập hợp các phần tử là"Ở xa" từ vật thê khác như một điểm duy nhất ở tâm khối lượng của bộ sưu tập và có khối lượng bằng khối lượng của bộ sưu tập. Nếu cơ thê đủ xa so với bất kỳ trong bộ sưu tập, sau đó lỗi được đưa vào sẽ không đáng kẻ. Các bộ sưu tập được cầu trúc theo kiểu phân cấp, có thể được thê hiện trên cây. Thuật toán này mang lại thời gian chạy n log n với độ song song ty lệ với n.

Thuật toán Barnes-Hut sử dụng một octree (mỗi nút có tôi đa tám nút con)đề đại diện cho tam hình khối trong một phần không gian. Mỗi nút sau đó đại diện cho tập hợp các phần trong cây con bắt nguồn từ nút đó, mà chúng ta gọi là một ô. Bởi vì mật độ không gian khác nhau và lá đại diện cho các cơ thê riêng lẻ,độ sâu của cây khác nhau. Cây được đi ngang một lần trên mỗi thân để tính lưới lực tác dụng lên vật đó. Thuật toán tính toán lực cho một cơ thê bắt đầu ở gốc của cây.

Đối với mọi nút trong cây mà nó truy cập, thuật toán xác định xem khối lượng tâm của ô được đại diện bởi cây con bắt nguồn từ nút là "xa đủ xa ”khỏi cơ thể. Nếu vậy, toàn bộ cây con dưới nút đó được xấp xi bởi một điểm duy nhất tại tâm khối lượng của ô và lực ở tâm này của khối lượng tác động lên cơ thê được tính toán. Mặt khác, nếu khối tâm không đủ xa, ô phải được "mở” và từng cây con của nó được truy cập.Khoảng cách giữa phần thân và ô, cùng với dung sai lỗi,xác định ô nảo phải được mở. G1ai đoạn tính toán lực lượng nào chiếm ưu thế thời gian thực hiện. Chương này thực hiện các phép đo bằng cách sử dụng các cơ thê 16K; tiêu chí để xác định xem một ô có cần được mở hay không được đặt ở giữa phạm vi thường được sử dụng trong thực tế.

Đạt được hiệu suất song song hiệu quả trên Barnes-Hut là một thách thức vì sự phân bố của các cơ quan không dong đều và thay đôi theo thời gian, làm cho phân chia công việc giữa các bộ xử lý và duy trì vị trí tốt của tham khảo khó. Chúng tôi được giúp đỡ bởi hai thuộc tính: hệ thông phát triển chậm; và bởi vì lực hấp dẫn rơi xuống nhanh chóng, với xác suất cao, mỗi ô yêu cầu chạm vào một số lượng nhỏ các ô khác, hầu hết trong số đó đã được sử dụng trên bước thời gian cuối cùng. Cây có thể được phân vùng bằng cách cấp cho mỗi bộ xử lý một cây con.Nhiều quyền truy cập cần thiết dé tính toán lực lên một cơ thể trong cây con sẽ đến các cơ quan khác trong cây con. Vì khối lượng công việc được liên kết với một cây con khác nhau (các ô ở phần không gian dày đặc sẽ cần truy cập vào nhiều ô hơn), kích thước của cây con được phân bô cho một bộ xử lý dựa trên một số thước đo của công việc có phải làm (ví dụ: nó cần bao nhiêu ô khác đề truy cập), thay vì chỉ vào số lượng nút trong cây con. Bằng cách phân vùng biểu diễn octree, chúng tôi có thê có được cân bằng tải tốt và vị trí tham chiếu tốt, trong khi vẫn giữ chi phí phân vùng thấp.

23

Mặc dù sơ đồ phân vùng này dẫn đến kết quả tốt tham chiêu, các tham chiếu dữ liệu kết quả có xu hướng dành cho một lượng nhỏ dữ liệu và không có cấu trúc. Do đó, kế hoạch này đòi hỏi một sự triển khai hiệu qua giao tiếp bo nhé chia sẻ.

e Ung dung Đại dương

Dai dương mô phỏng ảnh hưởng của dòng xoáy và dòng ranh giới đối với dòng chảy quy mô lớn trong lòng đại dương. Nó sử dụng kỹ thuật đa lưới Gauss-Seidel màu đỏ-đen bị hạn chế để giải một tập hợp các phương trình đạo hàm riêng elip. Gauss-Seidel đỏ-đen là một kỹ thuật lặp lại tô màu các điểm trong lưới để cập nhật nhất quán từng điểm dựa trên các giá trị trước đó của các điểm lân cận. Multigrid Phương pháp giải phương trình sai phân hữu hạn bằng cách lặp lại sử dụng lưới phân cấp.Mỗi lưới trong hệ thông phân cấp có ít điểm hơn lưới bên dưới và là một giá trị gần đúng với lưới thấp hơn. Lưới mịn hơn làm tăng độ chính xác và do đó tốc độ hội tụ, đồng thời yêu cầu nhiều thời gian thực hiện hơn, vì nó có nhiều điểm dữ liệu hơn. Có đi chuyên lên hay

xuống trong hệ thống phân cấp của lưới được sử dụng cho lần lặp tiếp theo hay không được xác định bởi tốc độ thay đối của các giá trị dữ liệu. Ước tính của lỗi tại mỗi bước thời gian được sử dụng đề quyết định có ở lại cùng một lưới hay không, chuyên sang lưới thô hơn hoặc chuyên sang lưới mịn hơn. Khi sự lặp lại hội tụ ở mức tốt nhất cấp, một giải pháp đã đạt được. Mỗi lần lặp có n2 công việc cho một lưới nền và lượng song song nhu nhau.

Các mảng đại diện cho mỗi lưới được phân bố động và định kích thước cho Vấn đề cụ thé.

Toàn bộ lưu vực đại dương được phân chia thành các phân con hình vuông (như đóng càng tốt) được cấp phát trong phần không gian địa chỉ tương ứng với bộ nhớ cục bộ của các bộ xử lý riêng lẻ, được gán trách nhiệm cho mạng con. Đối với các phép đo trong chương này, chúng tôi sử dụng đầu vào có 130*130 điểm lưới. Có năm bước trong một lần lặp thời gian. Từ Dữ liệu được trao đôi giữa các bước, tất cả các bộ xử lý hiện tại sẽ đồng bộ hóa tại cuối mỗi bước trước khi chuyên sang bước tiếp theo. Giao tiếp xảy ra khi các điểm ranh giới của một lưới con được truy cập bởi lưới con liền kề theo kiểu gần nhất.

Tính toán / Giao tiếp cho các chương trình song song Một đặc điểm chính trong việc xác định hiệu suất của các chương trình song song là tỷ lệ giữa tính toán và giao tiếp. Nếu tỷ lệ này cao, điều đó có nghĩa là ứng dụng có rất nhiều tính toán cho mỗi dữ liệu được giao tiếp. Như chúng ta đã thay trong phan 6.1, giao tiếp là một phần tốn kém của tính toán song song: do đó tỷ lệ tính toán trên giao tiếp cao rất có lợi. Đang xử lý song song môi trường, chúng tôi quan tâm đến việc tỷ lệ tính toán trên giao tiếp thay đôi như thế nào khi chúng tôi tăng số lượng bộ xử lý, quy mô của vấn đề hoặc cả hai. Biết tỷ lệ thay đổi như thế nào khi chúng tôi tăng số lượng bộ xử lý làm sáng tỏ mức độ ứng dụng có thê được tăng tốc. Bởi vì chúng tôi thường quan tâm đến việc giải quyết các vấn đề lớn hơn, điều quan trọng là phải hiểu cách thay đối kích thước tập dữ liệu ảnh hưởng đến tý lệ này.

Đề hiểu điều gì xảy ra một cách định lượng với tỷ lệ tính toán trên truyền thông khi chúng tôi thêm bộ xử lý, hãy xem xét điều gì xảy ra riêng biệt với tính toán và giao tiếp khi chúng tôi thêm bộ xử lý hoặc tăng kích thước sự cố. Hình 6.6 cho thấy rằng khi chúng tôi thêm bộ xử lý, đối với các ứng dụng này, lượng tính toán trên mỗi bộ xử lý giảm tương ứng và lượng giao tiếp trên mỗi bộ xử lý giảm chậm hơn. Khi chúng ta tăng kích thước vấn đề, tính toán sẽ thay đôi theo độ phức tap O () của thuật toán. Liên lạc tỉ lệ phức tap hơn và phụ thuộc vào chỉ tiết của thuật toán; chúng tôi mô tả các hiện tượng cơ bản cho từng ứng dụng trong chú thích của hình 6.6.

Tỷ lệ tính toán tông thê trên giao tiếp được tính toán từ tốc độ tăng trưởng của cá nhân trong lĩnh vực tính toán và giao tiếp. Nhìn chung, tỷ lệ này tăng từ từ với sự gia tăng về kích thước tập dữ liệu và giảm khi chúng tôi thêm bộ xử lý. Đây Nhắc nhở chúng tôi rằng việc thực hiện một vẫn đề kích thước cô định với nhiều bộ xử lý hơn dẫn đến tăng tính kém hiệu quả vì lượng giao tiếp giữa các bộ xử lý ngày càng tăng. Nó cũng cho chúng ta biết chúng ta phải thay đối kích thước tập dữ liệu nhanh như thế nào khi chúng ta thêm bộ xử lý, để giữ cho phần thời gian giao tiếp cô

định. Sau Ví dụ minh họa sự cân bằng này.

VÍ DỤ:

Giả sử chúng ta biết rằng đối với một bộ đa xử lý nhất định, ứng dụng Ocean Dành 20%

thời gian thực thi dé đợi liên lạc khi chạy trên bốn bộ xử lý. Giả sử rằng chỉ phí của mỗi sự kiện truyền thông là độc lập với số lượng bộ xử lý, điều này nói chung là không đúng, vi chi phi truyền thông tăng theo số bộ xử lý. Chúng ta có thể nhanh hơn bao nhiêu mong đợi Ocean chạy trên một máy 32 bộ xử lý với cùng một vấn đề kích thước? Phân thời gian thực hiện được dành cho giao tiếp trong trường hợp này? Chúng ta nên chạy một vận đề lớn hơn bao nhiêu nếu chúng ta muốn phân thời gian dành cho giao tiếp giống nhau?

Một phần của tài liệu Báo cáo tiểu luận Đề tài Đa xử lý và các cấp Độ phân cấp luồng song song (Trang 21 - 25)

Tải bản đầy đủ (PDF)

(136 trang)