Xây dựng chương trình thử nghiệm song song hóa thuật toán

Một phần của tài liệu Song song hoá bước biểu diễn cây bát phân trong thuật toán nhanh giải bài toán n body và tính toán thử nghiệm trên PC (Trang 61 - 65)

CHƯƠNG 3. SONG SONG HÓA CÂY BÁT PHÂN VÀ CÀI ĐẶT THỬ NGHIỆM

3.2. Xây dựng chương trình thử nghiệm song song hóa thuật toán

Việc cài đặt chương trình song song được thực hiện trên hệ thống Linux PC- Cluster (RedHat 7.2), với mỗi node là một BXL Pentium III 1,7G Mhz, bộ nhớ 128 MB.

3.2.2. Kết quả, đánh giá và so sánh

Chúng tôi đã thử nghiệm chương trình tạo cây bát phân song song và kêt quả về thời gian tạo khóa, sắp xếp khóa và tạo cây trung bình tại mỗi bước được thể hiện trong bảng sau:

Số body (k) Độ cao của cây Thời gian (s)

8 4 0.55121

16 4 0.6113

32 5 0.64501

64 5 0.73148

128 5 0.90751

256 6 1.31017

512 6 2.28404

1024 6 3.90311

2048 7 13.14275

Bảng 4 - Thời gian tạo cây bát phân song song (số BXL=4)

Hình 3.11 - Biểu đồ thời gian tạo cây bát phân song song (số BXL=4)

Số BXL Thời gian (s)

2 27.65866

3 17.85494

4 13.14275

5 12.92865

Bảng 5 - Thời gian tạo cây bát phân song song (theo BXL, N = 2048)

Hình 3.12 - Biểu đồ thời gian tạo cây bát phân song song (theo BXL, N = 2048)

Độ chính xác TG tạo cây (s) Tổng TG 1 bước (s) Tỷ lệ (%)

1.5x10-1 2.809959 223.590696 1.25

2x10-5 2.811293 2821.932653 0.09

Bảng 6 - Tỷ lệ thời gian tạo cây tuần tự và tổng thời gian trong một bước

Với các chương trình song song, thời gian tính toán nhanh hơn nhiều so với chương trình tuần tự do công việc tính toán được san sẻ cho từng BXL. Tuy có mất thời gian vào chi phí cho việc truyền thông nhưng thời gian này không quá lớn và chấp nhận được, chương trình song song càng hiệu quả khi bài toán mô phỏng thực hiện với số body càng lớn.

Các kết quả chạy thử nghiệm thu được trong bảng 3 và 4 (hình 2.9 và 3.11) cho thấy chương trình xây dựng cây song song mất thời gian hơn so với chương trình xây dựng cây bát phân tuần tự. Từ số liệu cụ thể thu được cho thấy để xây dựng cây với số body là 8k (1892) thì tỷ lệ thời gian xây dựng cây tuần tự so với thời gian xây dựng cây song song xấp xỉ bằng 40. Khi số body tăng dần thì tỷ lệ này càng giảm, cụ thể với số body là 2048k (4194304) thì tỷ lệ đó chỉ còn xấp xỉ bằng 2. Khi số bộ xử lý càng tăng thì thời gian xây dựng cây song song càng giảm (bảng 5, hình 3.12).

Tuy giai đoạn xây dựng cây song song mất nhiều thời gian hơn giai đoạn xây dựng cây tuần tự nhưng trong bài toán mô phỏng thì thời gian xây dựng cây chiếm một tỷ lệ rất nhỏ (chiếm khoảng 1%, kết quả trong bảng 6 với 1024k body thực hiện trên máy BXL Celeron 800MHz, bộ nhớ 256 MB, hệ điều hành Linux 9.0) so với thời gian tính lực nên ta có thể coi là không đáng kể. Đối với một bài toán bất kỳ, thường thì các nghiên cứu sẽ tập trung vào việc làm giảm giai đoạn nào chiếm nhiều thời gian nhất nên trong bài toán mô phỏng, giai đoạn được tập trung nhất để giảm thời gian nhất là giai đoạn tính lực. Việc xây dựng cây bát phân song song là một bước tiền đề cho giai đoạn tính lực vì với cây bát phân song song thì việc tìm đến các body để khai triển và tính lực là rất nhanh O(1) [12].

Trong quá trình chạy thử chương trình, một số vấn đề nảy sinh và đã được tổng hợp lại như sau:

- Từ kết quả thử nghiệm trong bảng 5 (hình 3.12) cho thấy khi số BXL tăng thì thời gian xây dựng cây giảm do công việc được chia đều cho mỗi BXL. Như vậy, các bài toán mô phỏng N-body với số body rất lớn có thể thực hiện được

một cách nhanh chóng bằng việc áp dụng các thuật toán nhanh và thực hiện tính toán song song trên hệ nhiều máy.

- Khi chạy chương trình, số các BXL trong hệ thống không nên có sự chênh lệch về tốc độ quá lớn bởi các BXL sẽ phải chờ đợi nhau và do đó thời gian tính toán của cả hệ thống sẽ là thời gian tính toán của BXL chạy chậm nhất.

- Ta nên cố gắng thiết lập hệ thống bởi các BXL có tốc độ tương đương. Nếu trường hợp trong hệ thống có BXL chậm, ta có thể chia khối lượng công việc cho từng BXL sao cho công việc thực hiện trên chúng là tương đương.

Chẳng hạn trong hệ có 4 BXL 0,1,2,3 trong đó BXL 0,1,2 có tốc độ tương đương và BXL 3 có tốc độ chỉ bằng 1/2 tốc độ của các BXL kia. Giả sử ta có 7 công việc, khi đó khối lượng công việc được chia cho mỗi BXL 0,1,2 là 2, riêng BXL 3 nhận lượng công việc là 1.

Một phần của tài liệu Song song hoá bước biểu diễn cây bát phân trong thuật toán nhanh giải bài toán n body và tính toán thử nghiệm trên PC (Trang 61 - 65)

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

(69 trang)