Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
39
Dung lượng
3,35 MB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN - BÁO CÁO THỰC NGHIỆM TÍNH TỐN HIỆU NĂNG CAO ĐÁNH GIÁ HIỆU NĂNG BÀI TỐN GIẢI HỆ PHƯƠNG TRÌNH TUYẾN TÍNH SỬ DỤNG OPENMP GVHD: TS Hà Mạnh Đào Nhóm Lớp: 08 - 20221IT6069002 Thành viên: Hà Long Vũ Phạm Đạt Thành Nguyễn Văn Tuấn Hà Nội - Năm 2022 TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP HÀ NỘI NHĨM 08 – TÍNH TOÁN HIỆU NĂNG CAO KHOA CNTT TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CNTT MỤC LỤC LỜI NÓI ĐẦU DANH MỤC HÌNH ẢNH .5 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT .6 1.1 Giới thiệu tính tốn song song .6 1.1.1 Thế lập trình, tính tốn song song? 1.1.2 Tại cần tính tốn song song? 1.1.3 Tính tốn song song để làm gì? 1.1.4 So sánh tính tốn lập trình tính tốn song song .8 1.2 Một số vấn đề liên quan đến lập trình tính tốn song song 1.2.1 Định luật Amdal’s 1.2.2 Cân tải 1.2.3 Sự bế tắc .10 1.3 Tổng quan mơ hình tính tốn song song 11 1.3.1 Mơ hình chia sẻ nhớ .11 1.3.2 Mơ hình gửi thơng điệp .11 1.3.3 Mơ hình song song liệu 13 1.3.4 Mơ hình luồng 14 1.4 Giới thiệu OpenMP .16 1.4.1 Tổng quan OpenMP .16 1.4.2 Mơ hình lập trình song song OpenMP 17 1.4.3 Các thị biên dịch 17 CHƯƠNG 2: TỔNG QUÁT BÀI TOÁN 21 2.1 Phát biết bài toán 21 2.2 Giải pháp thực toán 21 2.2.1 Nội dung phương pháp 21 2.2.2 Thiết kế thuật toán tuần tự 22 2.3 Lý thuyết đánh giá .23 2.3.1 Luật Amdal’s 24 2.3.2 Luật Gustafson .25 2.3.3 Luật Sun–Ni 25 2.4 Đánh giá theo lý thuyết 26 NHĨM 08 – TÍNH TỐN HIỆU NĂNG CAO TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CNTT CHƯƠNG 3: THỰC NGHIỆM 28 3.1 Cấu hình máy tính 28 3.2 Kết 28 3.3 Đánh giá thực tế 34 3.4 Nhận xét 35 KẾT LUẬN 35 TÀI LIỆU THAM KHẢO 36 NHĨM 08 – TÍNH TỐN HIỆU NĂNG CAO TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CNTT LỜI NÓI ĐẦU Giới thiệu Ngày với phát triển cơng nghệ thơng tin, máy tính đa nhân, đa lõi (multiple processor) thay cho xử lý đơn lõi (single processor) lý khác như: - Tốc độ xử lý đơn lõi (single processor) đến giới hạn - Đáp ứng nhu cầu tính tốn nhanh người dùng - Giải toán lớn mà với xử lý đơn lõi không đáp ứng - Giảm chi phí đầu tư đạt hiệu tính tốn Tuy nhiên với lối lập trình truyền thống lập trình hầu hết chương trình ứng dụng lập trình, thiết kế xử lý đơn lõi (single processor) Như khơng khai thác hết hiệu tính tốn mà xử lý đa nhân, đa lõi mang lại đồng thời khó đáp ứng u cầu tính tốn người dùng Một thách thức, yêu cầu đặt làm để khai thác hiệu tính tốn mà xử lý đa nhân, đa lõi mang lại Khơng cịn cách khác thay lập trình, tính tốn chuyển sang lập trình, tính tốn song song Lập trình, tính tốn song song đời nhằm khai thác, phát huy hiệu tính toán xử lý đa lõi, đồng thời giảm thời gian tính tốn tốn có khối lượng liệu lớn Đặt vấn đề Các tốn ma trận nói chung tốn giải hệ phương trình tuyến tính ln tốn kinh điển nghiên cứu nhiều ứng dụng hệ thống chuyên biệt Rất nhiều nghiên cứu cải tiến thuật toán tối ưu thuật tốn khơng gian thời gian xử lý Với bùng nổ thông tin phát triển cơng nghệ thơng tin, u cầu tốn đặt làm để giải vấn đề giải hệ phương trình tuyến tính với nguồn liệu lớn phân tán, đáp ứng mục tiêu rút ngắn thời gian tính tốn Mục đích Đánh giá hiệu tốn giải hệ phương trình tuyến tính sử dụng OpenMP Nội dung NHĨM 08 – TÍNH TỐN HIỆU NĂNG CAO TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP HÀ NỘI KHOA CNTT Trên sở sử dụng thư viện OpenMP việc giảm thời gian tính tốn tốn tìm số ngun tố có số chữ số lớn Nội dung báo cáo bao gồm: - Chương 1: Tìm hiểu sở lý thuyết tính tốn song song lập trình song song - Chương 2: Phát biểu tổng quan toán, đưa giải pháp thực bài toán - Chương 3: Tiến hành cài đặt chương trình đánh giá hiệu năng, suất tính tốn NHĨM 08 – TÍNH TỐN HIỆU NĂNG CAO TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CNTT DANH MỤC HÌNH ẢNH Hình 1 Tính tốn Hình Tính tốn song song .6 Hình Mơ hình gửi thơng điệp .12 Hình Mơ hình song song liệu 13 Hình Mơ hình luồng 15 Hình Mơ hình Fork - Join 17 Hình Phạm vi thị 19 Hình Cấu trúc vùng song song 20 Hình Cơng thức tính hệ số speedup 24 Hình 2 Cơng thức tính hệ số speedup 24 Hình Giới hạn speedup theo tỉ lệ song song số vi xử lý 25 Hình Cấu hình máy tính thực tính tốn 28 Hình Kết qua tính tốn với ma trận vng kích thước 100 31 Hình 3 Kết tính tốn với ma trận vng kích thước 500 31 Hình Kết tính tốn với ma trận vng kích thước 1000 32 Hình Kết tính tốn với ma trận vng kích thước 1500 32 Hình Kết tính tốn với ma trận vng kích thước 2000 33 Hình Kết tính tốn với ma trận vng kích thước 2500 33 Hình Biểu đồ hệ số SpeedUp theo kích thước ma trận 34 NHĨM 08 – TÍNH TỐN HIỆU NĂNG CAO TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP HÀ NỘI KHOA CNTT CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu tính tốn song song 1.1.1 Thế lập trình, tính tốn song song? Tính tốn song song hình thức tính tốn nhiều phép tính thực đồng thời, hoạt động truyên nguyên tắc vấn đề lớn chia thành nhiều vấn đề nhỏ hơn, sau dó giải quyêt tương tranh (“trong lĩnh vực tính tốn”) Có nhiều hình thức khác tính toán song song: song song liệu, song song cấp lệnh song song tác vụ Song song sử dụng nhiều năm qua chủ yêu lĩnh vực tính tốn hiệu cao Tính tốn song song trở thành mơ hình thống trị lĩnh vực kiến trúc máy tính, phần lớn dạng xử lý đa nhân Thông thường, phần mềm viết cho tính tốn tuần tự, chạy máy tính đơn với xử lý trung tâm Một toán chia thành chuỗi câu lệnh rời rạc, câu lệnh thực cách tuần tự, thời điểm thực câu lệnh Hình 1 Tính tốn tuần tự Ý nghĩa đơn giản tính tốn song song việc sử dụn đồng thời nhiều tài ngun máy tính để giải tốn tính toán Để chạy nhiều CPU, toán lớn chia thành toán nhỏ riêng biệt mà giải đồng thời, phần lại chia nhỏ dạng dãy câu lệnh Các câu lệnh phần thực thi đồng thời CPU khác Hình Tính tốn song song NHĨM 08 – TÍNH TỐN HIỆU NĂNG CAO TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CNTT Vấn đề tính tốn song song thường thể qua đặc điểm khả năng: - Chia thành phần riêng biệt cơng việc để giải lúc - Thực thi nhiều cầu lệnh chương trình nhiều thời điểm - Giải tốn thời gian nhiều tài nguyên máy tính thực thi trê tài ngun 1.1.2 Tại cần tính tốn song song? Theo xu hướng phát triển công nghệ thông tin, xử lý đa nhân, đa lõi (multiple processor) thay xử lý đơn lõi (single processor) nhiên với lối lập trình truyền thống (lập trình tuần tự), câu lệnh, trình xử lý thực hịên cách lần lượt, không phát huy hết công năng, hiệu vi xử lý đa nhân, đa lõi (multiple processor) Lập trình, tính tốn song song đời lời giải cho yêu cầu, thách thức đặt làm để phát huy công năng, hiệu đa xử lý (multiple processor) Trên thực tế, có nhiều tốn với liệu lớn, độ phức tạp tính tốn cao mà địi hỏi thời gian xử lý ngắn, độ xác cao Vd: toán liên quan tới xử lý ảnh, xử lý tín hiệu, dự báo thời tiết, mô giao thông, mô phỏng chuyển động phân tử, nguyên tử, mô đồ gen, bài toán liên quan đến sở liệu khai thác sở liệu với xử lý đơn lõi khó thực cho kết mong muốn Lập trình, tính tốn song song lời giải đáp cho toán tăng hiệu xử lý đồng thời rút ngắn thời gian xử lý tính tốn người dùng Việc tính tốn song song có thể: - Tận dụng nguồn tài nguyên khai thác tài nguyên tính tốn có sẵn mạng diện rộng, chí sử dụng internet tài nguyên cục hạn chế - Tiết kiệm chi phí – sử dụng nhiều tài ngun máy tính “rẻ” thay đầu tư hệ thống siêu máy tính đắt đỏ - Khác phục hạn chế nhớ - máy tính đơn có tài nguyên nhỡ hữu hạn Đối với toán lớn, sử dụng nhớ nhiều máy tính vượt qua trở ngại 1.1.3 Tính tốn song song để làm gì? Phát huy công năng, hiệu xử lý đa nhân, đa lõi Giải số toán lớn mà xử lý đơn lõi (single processor) không thực Tăng hiệu tính tốn đồng thời giảm thời gian tính tốn NHĨM 08 – TÍNH TỐN HIỆU NĂNG CAO TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI 2.2.2 Thiết kế thuật tốn tuần tự NHĨM 08 – TÍNH TỐN HIỆU NĂNG CAO 23 KHOA CNTT TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI 24 KHOA CNTT Độ phức tạp thuật toán: O( ) n 2.2.3 Thiết kế thuật toán song song - Nhập n, maxit = 2*n*n - #pragma omp parallel for Lặp k=0 →maxit-1{ #pragma omp parallel for num_threads(8) schedule(static, n) reduction(+:dxi) Lặp i=0 → n-1{ Dxi = b[i] Lặp j=0 →n-1{ If(j≠i) dxi = dxi – A[i*n+j] *x[j] X[i] = dxi / A[i*n+i] sum += ((dx[i] >= 0.0) ? dx[i] : -dx[i]) if (sum