Song song hoá thuật toán Bames hut với OpenMP

61 396 0
Song song hoá thuật toán Bames hut với OpenMP

Đ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

Song song hoá là một giải pháp quan trọng được áp dụng khi giải quyết các vấn đề đòi hỏi phải tính toán lớn

Song song hóa thuật toán Barnes-Hut với OpenMP Lê Thị Lan Phương i TÓM TẮT KHÓA LUẬN Song song hóa là một giải pháp quan trọng được áp dụng khi giải quyết các vấn đề đòi hỏi phải tính toán lớn thường gặp trong các lĩnh vực khoa học cơ bản…Bài toán N- body là một trong những bài toán cơ bản trong lĩnh vực vật lý học thiên thể, liên quan tới lực tương tác giữa các hạt với nhau trong không gian. Có rất nhiều hướng để giải quyết bài toán trên, trong đó có phương pháp sử dụng thuật toán Barnes-Hut. OpenMP là giao diện lậ p trình ứng dụng API, cung cấp cho người lập trình một giao diện mềm dẻo, có tính khả chuyển trong khi phát triển các ứng dụng song song trên các máy tính sử dụng kiến trúc bộ nhớ chia sẻ. Khóa luận này giới thiệu tổng quan về bài toán N-body, thuật toán Barnes-Hut và giao diện lập trình ứng dụng OpenMP. Trên cơ sở đó đánh giá hiệu năng thuật toán Barnes-Hut, tiến hành tìm hiểu, phân tích và đề xuất các phương thức song song hóa thuật toán Barnes-Hut với OpenMP. Song song hóa thuật toán Barnes-Hut với OpenMP Lê Thị Lan Phương ii LỜI CẢM ƠN Đầu tiên, em muốn gửi lời cảm ơn sâu sắc nhất tới TS. Nguyễn Hải Châu, người đã hướng dẫn và chỉ bảo em tận tình trong suốt thời gian làm khóa luận. Em xin chân thành cảm ơn thầy Phạm Kỳ Anh, giám đốc Trung tâm Tính toán hiệu năng cao – Trường Đại học KHTN – Đại học Quốc gia Hà Nội, người đã tạo điều kiện tốt nhất cho em thực hành và thử nghiệm thuật toán. Em c ũng xin gửi lời cảm ơn tới tất cả các thầy và các anh chị trong Trung tâm, những người đã giúp đỡ và trả lời mọi thắc mắc, tạo điều kiện cho em hoàn thành khóa luận. Em xin cảm ơn thầy Đoàn Minh Phương, giảng viên bộ môn Mạng và Truyền thông máy tính, khoa CNTT, trường Đại học Công nghệ, người đã giúp đỡ em thử nghiệm bài toán trên máy đa xử lý Intel. Cuối cùng, em xin gửi lời cả m ơn sâu sắc tới những người thân trong gia đình em, những người luôn quan tâm, động viên khích lệ em trong học tập và trong cuộc sống. Sinh viên thực hiện khóa luận Lê Thị Lan Phương Song song hóa thuật toán Barnes-Hut với OpenMP Lê Thị Lan Phương iii Danh sách hình vẽ Hình 1: Minh họa hệ N-body trong không gian 2 Hình 2: Biểu diễn lực tổng hợp tác dụng lên 1 hạt 4 Hình 3: Quan sát thiên hà Andromeda từ trái đất 6 Hình 4: Biểu diễn quá trình đệ quy thay thế một cụm bởi tâm điểm 7 Hình 5: Cây Quadtree với 4 mức 8 Hình 6: Cây Octree với 2 mức .8 Hình 7: Biểu diễn cây sau khi loại bỏ các ô trống .9 Hình 8: Các thành phần trong OpenMP 15 Hình 9: Kiến trúc bộ nhớ chia sẻ 16 Hình 10: Mô hình Fork-Join .19 Hình 11: Minh họa vùng được song song hóa 21 Hình 12: Hình minh họa chỉ thị Do/for 24 Hình 13: Hình minh họa chỉ thị sections 26 Hình 14: Hình minh họa chỉ thị single 28 Hình 15: Cấu trúc dữ liệu cây trong treecode (1) 36 Hình 16: Cấu trúc dữ liệu cây trong treecode (2) 39 Song song hóa thuật toán Barnes-Hut với OpenMP Lê Thị Lan Phương iv Bảng từ viết tắt Từ hoặc cụm từ Từ viết tắt Từ tiếng Anh Giao diện lập trình ứng dụng API Application Program Interface Các chỉ thị mở dành cho đa xử lý OpenMP Open Specifications for Multi Processing Luồng Thread Thread Hạt body Body Ô, Khối cell Cell Nút node Node Giao diện truyền thông điệp MPI Message Passing Interface Tâm khối Center of mass Song song hóa thuật toán Barnes-Hut với OpenMP Lê Thị Lan Phương v Mục lục TÓM TẮT KHÓA LUẬN . i LỜI CẢM ƠN . ii Danh sách hình vẽ iii Bảng từ viết tắt . iv Mục lục v MỞ ĐẦU 1 Chương 1: BÀI TOÁN N-BODY VÀ THUẬT TOÁN BARNES-HUT 2 1.1 Bài toán N-body 2 1.1.1 Giới thiệu bài toán N-body 2 1.1.2 Phương pháp nhằm tăng tốc bài toán N-body . 5 1.1.3 Cấu trúc cây Quadtree và Octree . 7 1.2 Thuật toán Barnes-Hut 9 1.2.1 Mô tả thuật toán Barnes-Hut . 10 Chương 2: GIỚI THIỆU VỀ OPENMP . 15 2.1 OpenMP (Open specifications for Multi Processing) . 15 2.2 Kiến trúc bộ nhớ chia sẻ 16 2.3 Mục tiêu của OpenMP . 17 2.4 Môi trường hỗ trợ OpenMP . 18 2.5 Mô hình lập trình OpenMP . 18 2.6 Một số chỉ thị cơ bản trong OpenMP 19 2.6.1 Các chỉ thị song song hóa 20 2.6.2 Chỉ thị khai báo miền song song . 20 2.6.3 Chỉ thị liên quan tới môi trường dữ liệu 21 2.6.4 Chỉ thị liên quan tới chia sẻ công việc 23 2.6.5 Chỉ thị đồng bộ hóa . 28 2.6.6 Thư viện và một số biến môi trường . 31 Song song hóa thuật tốn Barnes-Hut với OpenMP Lê Thị Lan Phương vi 2.7 Ví dụ về lập trình song song với OpenMP 33 2.7.1 omp_hello.c . 33 2.7.2 Cách biên dịch . 33 2.7.3 Kết quả 34 Chương 3: SONG SONG HĨA THUẬT TỐN BARNES-HUT 35 3.1 Treecode 35 3.1.1 Cấu trúc dữ liệu của cây 35 3.1.2 Các biến tồn cục 39 3.2 Thử nghiệm và đánh giá hiệu năng của treecode 40 3.2.1 Thử nghiệm chương trình treecode . 40 3.2.2 Đánh giá hiệu năng 42 3.3 Song song hóa treecode với OpenMP . 43 3.3.1 Mơi trường thực hiện song song . 43 3.3.2 Thực hiện song song 44 3.4 Kết quả thực nghiệm . 51 KẾT LUẬN . 53 TÀI LIỆU THAM KHẢO 54 Song song hóa thuật toán Barnes-Hut với OpenMP Lê Thị Lan Phương 1 MỞ ĐẦU Bài toán N-body là một trong những bài toán cơ bản của vật lý học thiên thể. Trước đây đã có rất nhiều hướng khác nhau khi giải quyết vấn đề liên quan tới lực tương tác giữa các hạt của hệ N hạt trong không gian. Trong đó có hai cách giải quyết cơ bản. Đó là tính trực tiếp lực giữa các cặp hạt với độ phức tạp là O (N 2 ) và cách tính thế năng lặp với độ phức tạp là O (N log N). Cách thứ nhất cho phép tính toán một cách gần chính xác lực tương tác. Song thời gian cần để thực hiện trong bài toán N-body là rất lớn, xấp xỉ O (N 2 ) với N là số hạt. Trong đó thời gian tính lực chiếm chủ yếu, khoảng 96 % thời gian thực hiện chương trình khi được thử nghiệm trên máy Intel 1 CPU. Cách thứ hai dường như giảm thiểu thời gian tính toán nhưng lại thiếu độ chính xác và thiếu tính tổng quát khi mô phỏng hệ N-body. Thuật toán Barnes-Hut và các cải tiến của nó đã được áp dụng để tính lực với độ phức tạp xấp xỉ O (N log N) và cho kết quả tương đối chính xác. Song song hóa thuật toán Barnes-Hut có ý nghĩa vô cùng quan trọng trong việc tăng tốc bài toán N-body. Song song hóa thuật toán Barnes-Hut trên kiến trúc máy tính có bộ nhớ phân tán bằng cách sử dụng giao diện lập trình ứng dụng MPI đã được nhiều tác giả nghiên cứu và đạt kết quả tốt. Tuy nhiên vấn đề song song hóa thuật toán này trên kiến trúc máy tính đa xử lý bộ nhớ chia sẻ chưa được nghiên cứu nhiều. OpenMP là một trong các giao diện lập trình ứng dụng dành cho các ứng dụ ng song song trên kiến trúc máy tính đa xử lý bộ nhớ chia sẻ. So với MPI, OpenMP có tính mềm dẻo, tính khả chuyển cao, và cho phép người lập trình có được một giao diện đơn giản khi xây dựng và phát triển các ứng dụng song song. Khóa luận này nghiên cứu tổng quan về bài toán N-body, tìm hiểu về thuật toán Barnes-Hut cũng như về giao diện lập trình OpenMP. Từ đó rút ra những nhận xét và đánh giá hiệu năng thuật toán và nghiên cứu vấn đề song song hóa thuật toán Barnes-Hut sử d ụng OpenMP trên mô hình bộ nhớ chia sẻ. Song song hóa thuật toán Barnes-Hut với OpenMP Lê Thị Lan Phương 2 Chương 1: BÀI TOÁN N-BODY VÀ THUẬT TOÁN BARNES-HUT 1.1 Bài toán N-body 1.1.1 Giới thiệu bài toán N-body Bài toán N-body về thực chất là bài toán liên quan tới tính lực tương tác giữa các hạt trong không gian. Các mô phỏng của bài toán N-body đóng vai trò quan trọng trong nhiều ứng dụng của vật lý học thiên thể, động lực học phân tử, và các phương pháp tính lưu lượng của gió xoáy (vortex flow methods)… Xét hệ N hạt trong không gian. Giữa các hạt có tương tác lực hấp dẫn. Vì có N hạt, nên mỗi hạt sẽ chịu tác dụng của N-1 lực khác nhau gây ra bởi các hạt còn lại, lực t ổng hợp của N-1 lực này sẽ làm thay đổi vận tốc và vị trí của hạt đó. Hình 1: Minh họa hệ N-body trong không gian Dưới đây là giải thuật cơ bản khi mô phỏng hệ N-body. while (t < t final ) { Song song hóa thuật toán Barnes-Hut với OpenMP Lê Thị Lan Phương 3 for i =1 to n do { tính lực f(i) tác dụng lên hạt i cập nhật vận tốc và vị trí của hạt i } t = t + ∆t } Trong đó lực f(i) tác dụng lên hạt i có thể được tính đơn giản như sau: for i = 1 to n f(i) = sum[ j=1, .,n, j!=i] f(i,j) /* f(i,j) la luc cua hat j tac dung len i*/ end for Lực tương tác của các hạt phụ thuộc vào khoảng cách giữa chúng. Bởi vậy, khi hạt chuyển động ta cần phải xác định lại lực tác dụng lên nó. Xét hạt chuyển động dưới tác dụng củ a lực hấp dẫn. Trong đó: • F là lực hấp dẫn gây ra bởi hai hạt a, b. • G: hằng số hấp dẫn. = (6.6742 ± 0.001) x 10 -11 N m 2 kg -2 • m a, m b: khối lượng của hạt a, b tương ứng. • d: khoảng cách giữa hai hạt Song song hóa thuật toán Barnes-Hut với OpenMP Lê Thị Lan Phương 4 Khi đó gia tốc của hạt là: Lực tổng hợp tác dụng lên hạt a là: F net Hình 2: Biểu diễn lực tổng hợp tác dụng lên 1 hạt Xét các thời điểm t 0 , t 1 , … với khoảng thời gian là δt. Dưới tác dụng của lực F net , vận tốc của hạt là: Khi đó vị trí của hạt theo trục x là: Trong không gian 3 chiều, khoảng cách giữa hai hạt a, b là: Lực hấp dẫn chiếu lên trục Ox là: Như vậy, bài toán N-body có thể đơn giản như sau: [...]... hành song song hóa thuật toán 1) Song song hóa với MPI - sử dụng bộ nhớ phân tán 2) Song song hóa với OpenMP - sử dụng bộ nhớ chia sẻ Trong khóa luận này, ta sẽ xem xét phương pháp song song hóa thuật toán Barnes -Hut với OpenMP Lê Thị Lan Phương 14 Song song hóa thuật toán Barnes -Hut với OpenMP Chương 2: GIỚI THIỆU VỀ OPENMP 2.1 OpenMP (Open specifications for Multi Processing) Lập trình song song trên... Qua thuật toán trên ta nhận thấy: quá trình duyệt cây để tính lực tác dụng lên hạt là độc lập đối với mỗi hạt Bởi vậy có thể tiến hành song song hóa quá trình này để nhằm tăng tốc bài toán N-body Lê Thị Lan Phương 13 Song song hóa thuật toán Barnes -Hut với OpenMP Hiện nay, đã có rất nhiều giải thuật nhằm song song hóa quá trình tính toán lực tác dụng trong hệ thống N-body Có hai hướng để tiến hành song. .. cải tiến mới này nhằm tăng độ chính xác, tăng tốc độ khi tiến hành song song hóa và có thể cải tiến để cài đặt trên các máy tính chuyên dụng GRAPE Lê Thị Lan Phương 9 Song song hóa thuật toán Barnes -Hut với OpenMP 1.2.1 Mô tả thuật toán Barnes -Hut Thuật toán Barnes -Hut sử dụng chiến thuật chia để trị nhằm tìm ra cụm các hạt trong bài toán N-body Giả sử tất cả các hạt nằm trong 1 hình khối 3 chiều Cây... trình với OpenMP (dùng trong ngôn ngữ C/C++) 2.6.1 Các chỉ thị song song hóa Các chỉ thị song song hóa được thêm vào mã nguồn có cấu trúc như sau Cấu trúc: #pragma omp directive_name [clauses] Chú ý: cuối các chỉ thị song song đều phải xuống dòng 2.6.2 Chỉ thị khai báo miền song song Chỉ thị này xác định vùng cần tiến hành song song hóa Khi một thread bắt gặp chỉ thị khai báo miền cần song song,... năng để thực hiện song song cho các chương trình tuần tự o Khả năng thực hiện song song hóa ở mức thô sơ, hoặc mức chi tiết • Tính khả chuyển: hỗ trợ Fortran, C, C++ Lê Thị Lan Phương 17 Song song hóa thuật toán Barnes -Hut với OpenMP 2.4 Môi trường hỗ trợ OpenMP Qua tìm hiểu, ta thấy OpenMP là một mô hình lập trình ứng dụng song song dựa trên nền tảng của kiến trúc bộ nhớ chia sẻ, có tính khả chuyển và... việc lưu trữ các lá rỗng Lê Thị Lan Phương 8 Song song hóa thuật toán Barnes -Hut với OpenMP như thế rất lãng phí Để khắc phục tình trạng trên, người ta chỉ tiến hành phân chia các ô vuông chỉ khi chúng có chứa nhiều hơn một hạt Ta có cấu trúc cây có dạng như sau Hình 7: Biểu diễn cây sau khi loại bỏ các ô trống 1.2 Thuật toán Barnes -Hut Thuật toán Barnes -Hut được giới thiệu lần đầu trong bài báo “A... thread được xác định thông qua biến môi trường hoặc qua lời gọi hàm thư viện Các thread này sẽ thực hiện đoạn mã nằm trong khai báo song song Lê Thị Lan Phương 20 Song song hóa thuật toán Barnes -Hut với OpenMP Vùng liên tục Vùng song song Hình 11: Minh họa vùng được song song hóa Cấu trúc: #pragma omp parallel [clause [clause]…] strutured block Trong đó clause có thể là: • private • shared.. .Song song hóa thuật toán Barnes -Hut với OpenMP for(t=0;t . năng thuật toán và nghiên cứu vấn đề song song hóa thuật toán Barnes -Hut sử d ụng OpenMP trên mô hình bộ nhớ chia sẻ. Song song hóa thuật toán. bài toán N-body. Song song hóa thuật toán Barnes -Hut với OpenMP Lê Thị Lan Phương 14 Hiện nay, đã có rất nhiều giải thuật nhằm song song

Ngày đăng: 10/04/2013, 13:50

Hình ảnh liên quan

Bảng từ viết tắt - Song song hoá thuật toán Bames hut với OpenMP

Bảng t.

ừ viết tắt Xem tại trang 4 của tài liệu.
Hình 1: Minh họa hệ N-body trong không gian - Song song hoá thuật toán Bames hut với OpenMP

Hình 1.

Minh họa hệ N-body trong không gian Xem tại trang 8 của tài liệu.
Hình 2: Biểu diễn lực tổng hợp tác dụng lên 1 hạt - Song song hoá thuật toán Bames hut với OpenMP

Hình 2.

Biểu diễn lực tổng hợp tác dụng lên 1 hạt Xem tại trang 10 của tài liệu.
Hình 4: Biểu diễn quá trình đệ quy thay thế một cụm bởi tâm điểm - Song song hoá thuật toán Bames hut với OpenMP

Hình 4.

Biểu diễn quá trình đệ quy thay thế một cụm bởi tâm điểm Xem tại trang 13 của tài liệu.
Dưới đây là hình mô tả một cây Octree với 2 mức chia. - Song song hoá thuật toán Bames hut với OpenMP

i.

đây là hình mô tả một cây Octree với 2 mức chia Xem tại trang 14 của tài liệu.
Hình 5: Cây Quadtree với 4 mức - Song song hoá thuật toán Bames hut với OpenMP

Hình 5.

Cây Quadtree với 4 mức Xem tại trang 14 của tài liệu.
Hình 7: Biểu diễn cây sau khi loại bỏ cá cô trống - Song song hoá thuật toán Bames hut với OpenMP

Hình 7.

Biểu diễn cây sau khi loại bỏ cá cô trống Xem tại trang 15 của tài liệu.
Hình 8: Các thành phần trong OpenMP - Song song hoá thuật toán Bames hut với OpenMP

Hình 8.

Các thành phần trong OpenMP Xem tại trang 21 của tài liệu.
Hình 9: Kiến trúc bộ nhớ chia sẻ - Song song hoá thuật toán Bames hut với OpenMP

Hình 9.

Kiến trúc bộ nhớ chia sẻ Xem tại trang 22 của tài liệu.
Hình 10: Mô hình Fork-Join - Song song hoá thuật toán Bames hut với OpenMP

Hình 10.

Mô hình Fork-Join Xem tại trang 25 của tài liệu.
Hình 11: Minh họa vùng được song song hóa - Song song hoá thuật toán Bames hut với OpenMP

Hình 11.

Minh họa vùng được song song hóa Xem tại trang 27 của tài liệu.
Hình 12: Hình minh họa chỉ thị Do/for - Song song hoá thuật toán Bames hut với OpenMP

Hình 12.

Hình minh họa chỉ thị Do/for Xem tại trang 30 của tài liệu.
Hình 13: Hình minh họa chỉ thị sections - Song song hoá thuật toán Bames hut với OpenMP

Hình 13.

Hình minh họa chỉ thị sections Xem tại trang 32 của tài liệu.
Hình 14: Hình minh họa chỉ thị single - Song song hoá thuật toán Bames hut với OpenMP

Hình 14.

Hình minh họa chỉ thị single Xem tại trang 34 của tài liệu.
Hình 16: Cấu trúc dữ liệu cây trong treecode (2) - Song song hoá thuật toán Bames hut với OpenMP

Hình 16.

Cấu trúc dữ liệu cây trong treecode (2) Xem tại trang 45 của tài liệu.
Phụ thuộc vào trình biên dịch và cấu hình máy Intel(R) Xeon(TM) với 4 CPU 2.40 GHz, chương trình treecode sau khi thử nghiệm song song với một số chỉ  th ị  c ủ a  OpenMP sẽ cho thời gian thực hiện các hàm như dưới đây:  - Song song hoá thuật toán Bames hut với OpenMP

h.

ụ thuộc vào trình biên dịch và cấu hình máy Intel(R) Xeon(TM) với 4 CPU 2.40 GHz, chương trình treecode sau khi thử nghiệm song song với một số chỉ th ị c ủ a OpenMP sẽ cho thời gian thực hiện các hàm như dưới đây: Xem tại trang 57 của tài liệu.
Như vậy, tùy thuộc vào từng trình biên dịch trên các máy tính có cấu hình khác nhau, kết quả thử nghiệm thu được trên máy đa xử lý Intel chỉ mang tính chất tươ ng  đố i - Song song hoá thuật toán Bames hut với OpenMP

h.

ư vậy, tùy thuộc vào từng trình biên dịch trên các máy tính có cấu hình khác nhau, kết quả thử nghiệm thu được trên máy đa xử lý Intel chỉ mang tính chất tươ ng đố i Xem tại trang 58 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan