Bài giảng Kiến trúc máy tính - Chương 7: Đa lõi, đa xử lý và máy tính cụm cung cấp cho người học các kiến thức: Phần cứng và phần mềm, lập trình song song, định luật Amdahl, khả năng phát triển, strong vsweak scaling,.... and other contents
Computer Architecture Computer Science & Engineering Chương Đa lõi, Đa xử lý & Máy tính cụm BK TP.HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt Dẫn nhập Mục tiêu: Nhiều máy tính nối lại hiệu cao Song song mức cơng việc (q trình) Hiệu xuất đầu cao công việc độc lập Chương trình xử lý song song có nghĩa Đa xử lý Dễ mở rộng, sẵn sàng cao, tiết kiệm lượng Chương trình chạy nhiều xử lý Xử lý đa lõi (Multicores) Nhiều xử lý Chip BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Phần cứng & Phần mềm Phần cứng Phần mềm BK Đơn xử lý (serial): e.g., Pentium Song song (parallel): e.g., quad-core Xeon e5345 Tuần tự (sequential): ví dụ Nhân ma trận Đồng thời (concurrent): ví dụ Hệ điều hành (OS) Phần mềm tuần tự/đồng thời chạy phần đơn/song song Thách thức: sử dụng phần cứng hiệu TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Lập trình song song Phần mềm song song: vấn đề lớn Phải tạo cải thiện hiệu suất tốt Khó khăn BK Vì khơng dùng đơn xử lý nhanh, không phức tạp! Phân rã vấn đề (Partitioning) Điều phối Phí tổn giao tiếp TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Định luật Amdahl Phần hạn chế khả song song (speedup) Ví dụ: 100 Bộ xử lý, tốc độ gia tăng 90? Tnew = Tparallelizable/100 + Tsequential BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Khả phát triển (Scaling) Bài toán: Tổng 10 số, Tổng ma trận [10 10] Đơn xử lý (1 CPU): Time = (10 + 100) 10 xử lý tadd Time = 10 tadd + 100/10 tadd = 20 tadd Speedup = 110/20 = 5.5 (55% of potential) 100 xử lý Tăng tốc độ từ 10 đến 100 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 phân cho xử lý BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Scaling (tt.) Kích thước Ma trận: 100 100 Đơn Xử lý (1 CPU): Time = (10 + 10000) tadd 10 xử lý 100 xử lý Time = 10 tadd + 10000/10 tadd = 1010 tadd Speedup = 10010/1010 = 9.9 (99% of potential) Time = 10 tadd + 10000/100 tadd = 110 tadd Speedup = 10010/110 = 91 (91% of potential) Giả sử tải chia cho tất CPU BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Strong vs Weak Scaling Strong scaling: ứng dụng & hệ thống tăng dẫn đến speedup tăng Như ví dụ Weak scaling: speedup khơng đổi 10 xử lý, ma trận [10 tadd 100 xử lý, ma trận [32 Time = 20 10] Time = 10 tadd + 1000/100 32] tadd = 20 tadd Hiệu suất không đổi BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Mơ hình chia sẻ nhớ (SMP) SMP: shared memory multiprocessor Phần cứng tạo không gian địa chung cho tất xử lý Đồng biến chung dùng khóa (locks) Thời gian truy cập nhớ UMA (uniform) vs NUMA (nonuniform) BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Ví dụ: Cộng dồn (Sum reduction) Tính tổng 100,000 số 100 xử lý UMA Bộ xử lý đánh số Pn: ≤ Pn ≤ 99 Giao 1000 số cho xử lý để tính Phần code xử 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 100 tổng đơn lẻ CPU Nguyên tắc giải thuật: divide and conquer ½ số CPU cộng cặp, ¼…, 1/8 Cần đồng bước BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 10 Đa luồng (Multithreading) Thực luồng lệnh đồng thời Đa luồng mức nhỏ (Fine-grain) Chuyển luồng sau chu kỳ Thực lệnh xen kẽ Nếu luồng thực thi bị “khựng”, chuyển sang thực luồng khác Đa luồng mức lớn (Coarse-grain) BK Sao chép nội dung ghi, PC, etc Chuyển nhanh ngữ cảnh luồng Chuyển luồng có “khựng” lâu (v.d L2-cache miss) Đơn giản phần cứng, khó tránh rủi ro liệu (eg, data hazards) TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 17 Tương lai “đa luồng” Tồn tại? Dạng nào? Năng lương tiêu thụ & Hiệu suất cao BK Sử dụng dạng đơn giản đa luồng Giảm thiểu thời gian cache-miss Kiến trúc đơn giản Chuyển luồng hiệu Đa lõi chia sẻ chung tài nguyên hiệu (Floating Point Unit or L3 Cache) TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 18 Luồng lệnh & Dữ liệu Cách phân loại khác Data Streams Single Instruction Single Streams Multiple Multiple SISD: Intel Pentium SIMD: SSE instructions of x86 MISD: No examples today MIMD: Intel Xeon e5345 SPMD = Single Program Multiple Data Cùng chương trình kiến trúc MIMD Cấu trúc điều kiện cho xử lý thực BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 19 SIMD Hoạt động phần tử vector liệu Ví dụ: MMX and SSE instructions in x86 Tất xử lý thực lệnh liệu khác BK TP.HCM Các thành phần liệu chứa ghi 128 bit Dữ liệu lưu trữ địa khác Cơ chế đồng đơn giản Giảm phí tổn điều khiển Phù hợp với ứng dụng song song liệu 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 20 Bộ xử lý vector Cấu tạo từ phận hoạt động theo chế ống Dòng liệu từ/đến ghi vector vào phận thực tác vụ Dữ liệu gom từ nhớ vào ghi Kết chứa ghi đưa vào nhớ Ví dụ: Mở rộng tập lệnh MIP cho hệ thống vector 32 64-element registers (64-bit elements) Lệnh Vector tương ứng lv, sv: load/store vector addv.d: add vectors of double addvs.d: add scalar to each element of vector of double Giảm đáng kể việc nạp lệnh BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 21 Kiến trúc GPUs Trước dùng cho video cards Xử lý hình 3D BK 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 TP.HCM Frame buffer memory with address generation for video output Processors oriented to 3D graphics tasks Vertex/pixel processing, shading, texture mapping, rasterization 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 22 Đồ họa hệ thống BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 23 Kiến trúc GPU Xử lý dạng song song liệu GPUs are highly multithreaded Use thread switching to hide memory latency Heterogeneous CPU/GPU systems CPU for sequential code, GPU for parallel code Ngơn ngữ lập trình/APIs BK Graphics memory is wide and high-bandwidth Hướng tới GPU đa Less reliance on multi-level caches DirectX, OpenGL C for Graphics (Cg), High Level Shader Language (HLSL) Compute Unified Device Architecture (CUDA) TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 24 Mạng kết nối Cấu hình kết nối mạng (Network topologies) Cấu hình máy với kết nối đường truyền Bus Ring N-cube (N = 3) 2D Mesh BK Fully connected TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 25 Mạng đa lớp (Multistage) BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 26 Đặc tính mạng Hiệu suất Thời gian truyền thông điệp Hiệu xuất đầu Băng thông đường truyền Tổng số băng thông mạng kết nối Băng thông chiều Trễ mật độ đường truyền Chi phí Nguồn tiêu thụ Định tuyến mạch BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 27 Đánh giá Benchmarks Linpack: matrix linear algebra SPECrate: parallel run of SPEC CPU programs SPLASH: Stanford Parallel Applications for Shared Memory computational fluid dynamics kernels PARSEC (Princeton Application Repository for Shared Memory Computers) suite BK Mix of kernels and applications, strong scaling NAS (NASA Advanced Supercomputing) suite Job-level parallelism Multithreaded applications using Pthreads and OpenMP TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 28 Ví dụ: hệ thống hành quad-core Intel Xeon e5345 (Clovertown) × quad-core AMD Opteron X4 2356 (Barcelona) BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 29 Các hệ thống hành (tt.) × oct-core Sun UltraSPARC T2 5140 (Niagara 2) × oct-core IBM Cell QS20 BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 30 Kết luận Mục tiêu: Hiệu suất cao cách sử dụng đa xử lý Khó khăn Lý để lạc quan Phát triển phần mềm song song Kiến trúc đa dạng Phát triển phần mềm môi trường ứng dụng Đa xử lý cấp độ chip nhằm giảm thời gian đáp ứng tăng băng thông kết nối Đang nhiều thách thức Kiến trúc MT BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 31 ... Single Program Multiple Data Cùng chương trình kiến trúc MIMD Cấu trúc điều kiện cho xử lý thực BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt... cache-miss Kiến trúc đơn giản Chuyển luồng hiệu Đa lõi chia sẻ chung tài nguyên hiệu (Floating Point Unit or L3 Cache) TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính... CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 21 Kiến trúc GPUs Trước dùng cho video cards Xử lý hình 3D BK Originally high-end computers (e.g., SGI) Moore’s