Bài giảng Kiến trúc máy tính - Chương 7: Đa lõi, Đa xử lý & Máy tính cụm
Mục tiêu: Nhiều máy tính nối lại hiệu năng
cao
Đa xử lý (multiprocessors)
Dễ mở rộng, sẵn sàng cao, tiết kiệm năng lượng
Song song ở mức công việc (quá trình)
Hiệu xuất đầu ra cao khi các công việc độc lập
Chương trình xử lý song song có nghĩa
Chương trình chạy trên nhiều bộ xử lý
Xử lý đa lõi (Multicores)
Nhiều bộ xử lý trên cùng 1 Chip
cao
Đa xử lý (multiprocessors)
Dễ mở rộng, sẵn sàng cao, tiết kiệm năng lượng
Song song ở mức công việc (quá trình)
Hiệu xuất đầu ra cao khi các công việc độc lập
Chương trình xử lý song song có nghĩa
Chương trình chạy trên nhiều bộ xử lý
Xử lý đa lõi (Multicores)
Nhiều bộ xử lý trên cùng 1 Chip
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 7: Đa lõi, Đa xử lý & Máy tính cụm", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
- bai_giang_kien_truc_may_tinh_chuong_7_da_loi_da_xu_ly_may_ti.pdf
Nội dung text: Bài giảng Kiến trúc máy tính - Chương 7: Đa lõi, Đa xử lý & Máy tính cụm
- Dẫn nhập Mục tiêu: Nhiều máy tính nối lại hiệu năng cao Đa xử lý (multiprocessors) Dễ mở rộng, sẵn sàng cao, tiết kiệm năng lượng Song song ở mức công việc (quá trình) Hiệu xuất đầu ra cao khi các công việc độc lập Chương trình xử lý song song có nghĩa Chương trình chạy trên nhiều bộ xử lý Xử lý đa lõi (Multicores) Nhiều bộ xử lý trên cùng 1 Chip BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 2
- Lập trình song song Phần mềm song song: vấn đề lớn Phải tạo ra được sự cải thiện hiệu suất tốt Vì nếu không thì dùng đơn xử lý nhanh, không phức tạp! Khó khăn Phân rã vấn đề (Partitioning) Điều phối Phí tổn giao tiếp BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 4
- Khả năng phát triển (Scaling) Bài toán: Tổng của 10 số, và Tổng ma trận [10 × 10] Tăng tốc độ từ 10 đến 100 bộ xử lý Đơn xử lý (1 CPU): Time = (10 + 100) × tadd 10 bộ xử lý Time = 10 × tadd + 100/10 × tadd = 20 × tadd Speedup = 110/20 = 5.5 (55% of potential) 100 bộ xử lý Time = 10 × tadd + 100/100 × tadd = 11 × tadd Speedup = 110/11 = 10 (10% of potential) Với điều kiện tải được phân đều cho các bộ xử lý BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 6
- Strong vs Weak Scaling Strong scaling: ứng dụng & hệ thống tăng dẫn đến speedup cũng tăng Như trong ví dụ Weak scaling: speedup không đổi 10 bộ xử lý, ma trận [10 × 10] Time = 20 × tadd 100 bộ xử lý, ma trận [32 × 32] Time = 10 × tadd + 1000/100 × tadd = 20 × tadd Hiệu suất không đổi BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 8
- Ví dụ: Cộng dồn (Sum reduction) Tính tổng 100,000 số trên 100 bộ xử lý UMA Bộ xử lý đánh chỉ số Pn: 0 ≤ Pn ≤ 99 Giao 1000 số cho mỗi bộ xử lý để tính Phần code trên mỗi bộ xử lý sẽ là sum[Pn] = 0; for (i = 1000*Pn; i < 1000*(Pn+1); i = i + 1) sum[Pn] = sum[Pn] + A[i]; Tính tổng của 100 tổng đơn lẻ trên mỗi CPU Nguyên tắc giải thuật: divide and conquer ½ số CPU cộng từng cặp, ¼ , 1/8 Cần sự đồng bộ tại mỗi bước BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 10
- Trao đổi thông điệp Mỗi bộ xử lý có không gian địa chỉ riêng Phần cứng sẽ gửi/nhận thông điệp giữa các bộ xử lý BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 12
- Tính tổng Tổng của 100,000 số với 100 bộ xử lý Trước tiên chia đều số cho mỗi CPU Tổng từng phần trên mỗi CPU sẽ là sum = 0; for (i = 0; i<1000; i = i + 1) sum = sum + AN[i]; Gom tổng ½ gửi, ½ nhận & cộng ¼ gửi và ¼ nhận & Cộng , BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 14
- Tính toán lưới Các máy tính riêng biệt kết nối qua mạng rộng Ví dụ: kết nối qua internet Công việc được phát tán, được tính toán và gom kết quả lại, ví dụ tính thời tiết Tận dụng thời gian rảnh của các máy PC Ví dụ: SETI@home, World Community Grid BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 16
- Tương lai “đa luồng” Tồn tại? Dạng nào? Năng lương tiêu thụ Kiến trúc đơn giản & Hiệu suất cao Sử dụng các dạng đơn giản đa luồng Giảm thiểu thời gian cache-miss Chuyển luồng hiệu quả hơn Đa lõi có thể chia sẻ chung tài nguyên hiệu quả hơn (Floating Point Unit or L3 BK Cache) TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 18
- SIMD Hoạt động trên phần tử vector dữ liệu Ví dụ: MMX and SSE instructions in x86 Các thành phần dữ liệu chứa trong các thanh ghi 128 bit Tất cả các bộ xử lý thực hiện cùng một lệnh nhưng trên dữ liệu khác nhau Dữ liệu lưu trữ ở các địa chỉ khác nhau. Cơ chế đồng bộ đơn giản Giảm được phí tổn điều khiển Phù hợp với các ứng dụng song song dữ BK TP.HCM liệu 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 20
- Kiến trúc GPUs Trước đây dùng cho video cards Frame buffer memory with address generation for video output Xử lý hình 3D Originally high-end computers (e.g., SGI) Moore’s Law lower cost, higher density 3D graphics cards for PCs and game consoles Graphics Processing Units Processors oriented to 3D graphics tasks Vertex/pixel processing, shading, texture mapping, BK rasterization TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 22
- Kiến trúc GPU Xử lý ở dạng song song dữ liệu GPUs are highly multithreaded Use thread switching to hide memory latency Less reliance on multi-level caches Graphics memory is wide and high-bandwidth Hướng tới GPU đa năng Heterogeneous CPU/GPU systems CPU for sequential code, GPU for parallel code Ngôn ngữ lập trình/APIs DirectX, OpenGL C for Graphics (Cg), High Level Shader Language (HLSL) BK Compute Unified Device Architecture (CUDA) TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 24
- Mạng đa lớp (Multistage) BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 26
- Đánh giá Benchmarks Linpack: matrix linear algebra SPECrate: parallel run of SPEC CPU programs Job-level parallelism SPLASH: Stanford Parallel Applications for Shared Memory Mix of kernels and applications, strong scaling NAS (NASA Advanced Supercomputing) suite computational fluid dynamics kernels PARSEC (Princeton Application Repository for Shared Memory Computers) suite Multithreaded applications using Pthreads and BK OpenMP TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 28
- Các hệ thống hiện hành (tt.) 2 × oct-core Sun UltraSPARC T2 5140 (Niagara 2) 2 × oct-core IBM Cell QS20 BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 30