Đặt vấn đề Trong vài năm trở lại đây, tính toán hiệu năng cao High Performance Computing - HPC nổi lên như một lĩnh vực nghiên cứu, thu hút sự quan tâm của các viện nghiên cứu cũng như
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SỸ
CHUYÊN NGÀNH: KỸ THUẬT VIỄN THÔNG
HỆ THỐNG TÍNH TOÁN HIỆU NĂNG CAO VÀ ỨNG DỤNG TRONG PHÂN TÍCH VÀ XỬ LÝ DỮ LIỆU
LÊ THUẬN HUỲNH
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SỸ
HỆ THỐNG TÍNH TOÁN HIỆU NĂNG CAO VÀ ỨNG DỤNG TRONG PHÂN TÍCH VÀ XỬ LÝ DỮ LIỆU
LÊ THUẬN HUỲNH
CHUYÊN NGÀNH: KỸ THUẬT VIỄN THÔNG
MÃ SỐ: 8520208
HƯỚNG DẪN KHOA HỌC : TS.NGUYỄN HOÀI GIANG
HÀ NỘI - 2017
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của bản thân, được xuất phát
từ yêu cầu phát sinh trong quá trình làm luận văn Các tài liệu có nguồn gốc rõ ràng, tuân thủ đúng nguyên tắc, kết quả trình bày trong luận văn là kết quả quá trình nghiên cứu trung thực, chưa từng được ai công bố trước đây
Hà Nội, tháng 12 năm 2017
Tác giả luận văn
Lê Thuận Huỳnh
Trang 4LỜI CẢM ƠN
Trong quá trình thực hiện luận văn, tôi xin chân thành cảm ơn sự giúp đỡ của các thầy, cô trong Khoa Sau đại học - Viện Đại học mở Hà Nội, đặc biệt là sự
hướng dẫn tận tình của thầy giáo TS Nguyễn Hoài Giang để tôi có thể hoàn thành
được đề tài này
Tôi cũng xin cảm ơn các anh chị em học viên lớp 15M-VT2, khóa
2015-2017, Khoa sau đại học, Viện Đại học mở đã ủng hộ và giúp đỡ tôi trong quá trình học tập cũng như thực hiện luận văn này
Cuối cùng tôi xin gửi lời cảm ơn đến các thầy cô, các tác giả của các tài liệu tham khảo mà tôi đã sử dụng trong quá trình thực hiện đề tài
Xin chân thành cảm ơn!
Trang 5MỤC LỤC
DANH MỤC CÁC CHỮ VIẾT TẮT 7
DANH MỤC CÁC BẢNG BIỂU 9
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 10
MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ ĐIỆN TOÁN HIỆU NĂNG CAO 3
1.1 Lịch sử phát triển và các thành tựu 3
1.1.1 Các siêu máy tính đầu tiên (1940 - 1960) 3
1.1.2 Các thế hệ HPC Cray từ 1975 đến 1990 3
1.1.3 Các hệ thống HPC kiến trúc cụm từ 1990 đến 2010 4
1.1.4 Các hệ thống HPC kiến trúc tích hợp GPGPU và các lai ghép từ 2010 đến nay 5
1.2 Ưu nhược điểm của hệ thống tính toán hiệu năng cao 6
1.2.1 Định nghĩa tính toán hiệu năng cao 6
1.2.2 Ưu nhược điểm của hệ thống tính toán hiệu năng cao 7
1.3 Các ứng dụng của HPC 8
1.3.1 Các lĩnh vực ứng dụng 8
1.3.2 Nhu cầu ứng dụng HPC 9
1.4 Kiến trúc tính toán song song 9
1.4.1 Đặc tính song song của HPC 9
1.4.2 Khái niệm tính toán song song 10
1.4.3 Công thức mức tăng tốc của thực hiện song song 13
1.4.4 Phân tích hiệu năng của thực hiện song song 14
Trang 6CHƯƠNG 2: KIẾN TRÚC CỦA HỆ THỐNG MÁY TÍNH HIỆU NĂNG CAO
VÀ NGUYÊN LÝ 33
2.1 Kiến trúc hệ thống tính toán hiệu năng cao 33
2.1.1 Phân loại kiến trúc máy tính theo Flynn 33
2.1.2 Phân loại cấu trúc máy tính 37
2.1.3 Phân loại cấu hình kết nối của mạng kết nối N 39
2.1.4 Kiến trúc của các hệ thống HPC 41
2.1.5 Các cấu hình mạng cluster của các hệ thống HPC 43
2.2 Nguyên lý hoạt động của HPC 48
2.2.1 HPC là giải pháp cho nhu cầu tính toán 48
2.2.2 Nguyên lý hoạt động của HPC 50
2.3 Mô hình triển khai HPC 50
2.3.1 Các nguyên tắc để xây dựng HPC 50
2.3.2 Mô hình triển khai HPC 52
2.4 Các bước xây dựng hệ thống HPC 52
2.4.1 Bước 1: Xác định cấu hình thiết kế HPC 52
2.4.2 Bước 2: Lựa chọn công nghệ thiết bị và các tài nguyên cần thiết 52
2.4.3 Bước 3: Tính toán hiệu năng lý thuyết của HPC 53
2.4.4 Bước 4: Xây dựng các nút máy tính của HPC 53
2.4.5 Bước 5: Cài đặt mạng các nút trong từng tủ của HPC 54
2.4.6 Bước 6: Cài đặt mạng HPC 54
2.4.7 Bước 7: Cấu hình toàn bộ HPC 54
2.4.8 Bước 8: Chạy đo kiểm tốc độ của HPC 54
Trang 72.5 Các mô hình kết nối cụm HPC thông dụng 55
2.5.1 Các cấu hình fat tree cluster của HPC 55
2.5.2 Một số ví dụ cấu hình fat tree cluster của HPC 57
2.5.3 Tốc độ tính toán của kiến trúc cụm HPC 62
CHƯƠNG 3: ỨNG DỤNG HỆ THỐNG TÍNH TOÁN HIỆU NĂNG CAO TRONG PHÂN TÍCH XỬ LÝ DỮ LIỆU 65
3.1 Bài toán dữ liệu lớn (big data) 65
3.1.1 Khái niệm dữ liệu lớn 65
3.1.2 Định nghĩa dữ liệu lớn 66
3.1.3 Đặc trưng của dữ liệu lớn 67
3.1.4 Sự ưu việt của giải pháp dữ liệu lớn 68
3.1.5 Bài toán dữ liệu lớn 69
3.1.6 So sánh bài toán xử lý dữ liệu lớn với bài toán xử lý dữ liệu truyền thống 71
3.2 Ứng dụng của hệ thống HPC trong phân tích và xử lý dữ liệu 74
3.2.1 Đặc điểm của HPC đảm bảo cho thực hiện bài toán dữ liệu lớn 74
3.2.2 Ứng dụng của HPC bài toán phân tích dữ liệu lớn 75
3.2.3 Kiến trúc ứng dụng hệ thống HPC trong bài toán Big data 77
3.3 Thiết kế phần cứng và mạng làm việc 81
3.3.1 Server tích hợp Intel CPU chip và xử lý tăng tốc Nvidia GPGPU 82
3.3.2 Card Nvidia GPGPU 83
3.3.3 Nút máy tính tích hợp CPU+GPGPU trong kiến trúc cụm của HPC 84
3.3.4 Kết nối cụm HPC bằng thiết bị chuyển mạch 86
3.3.5 Tính toán hiệu năng của nút máy tính CPU+GPGPU 86
Trang 83.4 Phần mềm và hệ thống quản trị 87
3.4.1 CUDA của Nvidia 88
3.4.2 Hadoop 88
KẾT LUẬN VÀ ĐỊNH HƯỚNG NGHIÊN CỨU 98
TÀI LIỆU THAM KHẢO 99
Trang 9DANH MỤC CÁC CHỮ VIẾT TẮT
Chữ viết tắt/ ký hiệu Cụm từ đầy đủ
SISD Single Instruction stream Single Data stream
MIPS Million of instructions per second
SIMD Single instruction stream multiple data stream
MISD multiple instruction, single data
MIMD Multiple Instruction, Multiple Data
FLOPS floating point operations per second
GPGPU General-purpose computing on graphics processing units
Trang 10UPS Uninterruptible Power Supply
FDR10 Fourteen Data Rate, 10Gbit/s per lane
Trang 11DANH MỤC CÁC BẢNG BIỂU
Bảng 1.1: Top 10 siêu máy tính tính đến 10/2017 5
Bảng 2.1: Các đặc tính của Infiniband 46
Bảng 2.2: Ảnh hưởng của công nghệ mạng và kích thước cluster 63
Bảng 3.1: Các module GPU "Tesla" lớp M của Nvidia 83
Trang 12DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1: Mảng tuyến tính hai chiều gồm n bộ xử lý 11
Hình 1.2: Đồ thị với Overhead của xử lý song song được đưa vào 15
Hình 1.3: Diễn giải thời gian thực hiện chương trình song song 15
Hình 1.4: Luật Amdahl 17
Hình 1.5: Sự tăng tốc của một chương trình gồm 2 phần 19
Hình 1.6: Chip đa lõi đối xứng gồm n =16 lõi BCE 21
Hình 1.7: Chip đa lõi đối xứng gồm n/r = 4/4 lõi (4 lõi, mỗi lõi có 4 BCE) 21
Hình 1.8: Chip đa lõi bất đối xứng gồm một lõi 4-BCE và n-4 lõi 1-BCE 22
Hình 1.9: Chip đa lõi đa lõi linh hoạt gồm 16 lõi 1-BCE 23
Hình 1.10: Hàm định cỡ 31
Hình 2.1: Trao đổi chuỗi lệnh, dữ liệu trong một máy tính đơn giản 33
Hình 2.2: Một chuỗi lệnh một chuỗi dữ liệu SISD 34
Hình 2.3: Một chuỗi lệnh nhiều chuỗi dữ liệu SIMD 35
Hình 2.4: Nhiều chuỗi lệnh một chuỗi dữ liệu MISD 36
Hình 2.5: Nhiều chuỗi lệnh nhiều chuỗi dữ liệu MIMD 36
Hình 2.6: Hệ thống máy tính với n≥1 đơn vị xử lý và m≥0 đơn vị nhớ 38
Hình 2.7: Máy tính có bộ nhớ chia sẻ 38
Hình 2.8: Máy tính có bộ nhớ phân tán 39
Hình 2.9: Băng thông độ rộng chia đôi của mạng 41
Hình 2.10: Cây béo có nhiều nút cha 44
Hình 2.11: Cây béo phân tứ 44
Hình 2.12: Các đấu nối quá mức băng thông với switch 24-port 45
Hình 2.13: Cluster gồm 128 nút đấu theo quá mức băng thông trên GigE 45
Hình 2.14: Cluster 64 nút đấu nối quá mức băng thông 47
Hình 2.15: Cluster 128 nút đấu nối quá mức băng thông 47
Hình 2.16: Cluster cây béo 324 nút sử dụng các switch 36-port 55
Hình 2.17: Cluster 72 nút (non-blocking topology) 57
Trang 13Hình 2.18: Mạng vòng và vòng lặp hoàn trả có khóa chết 58
Hình 2.19: Cluster cây béo 72 nút 58
Hình 2.20: Cluster cây béo 324 nút 59
Hình 2.21: Cluster cây béo 648 nút 59
Hình 2.22: Cluster cây béo 1296 nút 60
Hình 2.23: Cluster cây béo 1944 nút 61
Hình 2.24: Cluster cây béo 3888 nút 62
Hình 3.1: Xử lý hàng loạt 75
Hình 3.2: Các công nghệ xử lý hàng loạt 76
Hình 3.3: Xử lý dòng 76
Hình 3.4: Các công nghệ xử lý dòng 77
Hình 3.5: Kiến trúc HPC truyền thống cho các ứng dụng khoa học 77
Hình 3.6: Kiến trúc hệ thống HPC trong bài toán Big data 78
Hình 3.7: Phiến superServer 1U dùng cho HPC 82
Hình 3.9: Liên kết truyền thông CPU và GPGPU và giữa các GPGPU 85
Hình 3.10: Đấu nối các nút CPU+GPGPU trong cluster 85
Hình 3.11: Đấu nối hai phiến (blade) nút máy tính CPU+GPU 85
Hình 3.12: Secondary NameNode cho phục hồi NameNode [19] 92
Hình 3.13: Đếm tần xuất từ trong một văn bản 93
Hình 3.14: ResourceManager của YARN [19] 94
Trang 14MỞ ĐẦU
1 Đặt vấn đề
Trong vài năm trở lại đây, tính toán hiệu năng cao (High Performance Computing - HPC) nổi lên như một lĩnh vực nghiên cứu, thu hút sự quan tâm của các viện nghiên cứu cũng như các doanh nghiệp lớn.Việc nghiên cứu về tính hiệu năng cao để ứng dụng trong các ngành khoa học - kỹ thuật đã và đang góp phần thay đổi cơ bản tiến trình khoa học, giúp xử lý một khối lượng lớn dữ liệu đầu vào khổng lồ hoặc các bài toán yêu cầu tính toán thời gian thực đã thực sự trở thành một vấn đề cấp thiết trong thực tế hiện nay
Cùng sự bùng nổ và phát triển mạnh mẽ của Internet trên toàn thế giới thực
sự đã tác động và có sức ảnh hưởng lớn tới mọi lĩnh vực của cuộc sống Hàng tỷ người có thể được kết nối thông tin qua những thiết bị di động có khả năng xử lý, dung lượng lưu trữ chưa từng có trước đây và khả năng tiếp cận tri thức là không có giới hạn.Hiện nay dữ liệu sinh ra từ những hoạt động khoa học, y học, đặc biệt là mạng xã hội, IoT là cực kỳ lớn, khoảng 4 zetabytes, đến năm 2020 có thể lên tới 44 zetabytes, do đó đặt ra yêu cầu về bài toán xử lý dữ liệu lớn mà các hệ thống xử lý truyền thống không thể đáp ứng được, cần có hệ thống tính toán hiệu năng cao
Hệ thống tính toán hiệu năng cao thực hiện các tính toán song song trên nhiều phần tử tính toán cho phép giải quyết các bài toán tính toán phức tạp yêu cầu tốc độ cao Hiện nay, HPC có ứng dụng trong nhiều lĩnh vực: Sinh học, Dữ liệu địa
lý, Mô hình hóa trong công nghiệp dầu khí, Tự động hóa thiết kế và chế tạo điện tử,
Mô hình hóa khí hậu, Đa phương tiện và giải trí, Nghiên cứu hàng không vũ trụ, nghiên cứu hạt nhân nguyên tử, Xử lý dữ liệu tình báo, tội phạm, thám mã trong an ninh quốc phòng: bẻ khóa mật mã
2 Nội dung của đề tài, các vấn đề cần giải quyết
Trang 15Căn cứ vào nhận xét trên, luận văn đề ra mục tiêu tổng quát là: nghiên cứu kiến trúc, nguyên lý hoạt động và các ứng dụng của hệ thống HPC trong phân tích
và xử lý dữ liệu lớn, nhằm mục tiêu hướng tới làm chủ việc xây dựng, khai thác hệ thống HPC
Để đạt mục tiêu trên, các vấn đề chính sau đây đã được giải quyết:
- Tìm hiểuvề hệ thống HPC với các khái niệm, đặc điểm kiến trúc hệ thống, ứng dụng
- Tìm hiểu về dữ liệu lớn, đặc điểm, vai trò và lợi ích của dữ liệu lớn Làm rõ
sự cần thiết và khả năng ứng dụng hệ thống HPC giải quyết bài toán dữ liệu lớn
- Xây dựng các phương pháp thiết kế hệ thống HPC sử dụng công nghệ tích hợp Intel CPU + Nvidia GPGPU
- Thiết lập mạng kết nối các nút tính toán của HPC dùng công nghệ mạngInfiniband Tính toán hiệu năng của hệ thống HPC
- Nghiên cứu ứng dụng phần mềm mã nguồn mở Hadoop xử lý dữ liệu lớn trên hệ thống HPC
Trang 16đã vàđang thay đổi Có thể có giai đoạn phát triển các hệ thống HPC sau đây:
1.1.1 Các siêu máy tính đầu tiên (1940 - 1960)
Bombe và Colossus (UK) (1943-1945) - các máy tính thám mã, công nghệ cơđiện tử, ứng dụng để bẻ khóa mật mã của máy Enigma (Đức quốc xã, thế chiến thứ II)
ENIAC (Electronic Numerical Integrator and Computer) (USA, 1943) - máy tính đa năng, công nghệđèn điện tử chân không, được thiết kế dựa trên các bảng tính bằng tay của pháo binh
CDC 6600 (Control Data Corporation) (USA, 1964) - dòng mainframe đa năng, công nghệđèn điện tử chân không, tốc độ thực hiện từ 500 kiloflop/s đến 1 megaflop/s - được gọi là siêu máy tính đầu tiên
ILLIAC-IV (Illinois Automatic Computer) (USA, 1966-1976, công nghệ bán dẫn, tốc độ gần 1 gigaflop/s
Trang 17Cray Y-MP (USA, 1988): 167 MHz, 2, 4 và 8 vector processors, công nghệ
vi mạch, mỗi processor tốc độ 333 MFLOPS, bộ nhớ chia sẻ cho tất cả processors Trong những năm 1980 tốc độ của siêu máy tính đãđạt được các thiết kế chip vector processors, với kiến trúc tích hợp 2, 4, và 8 processors và bộ nhớ bán dẫn chia sẻ chung cho tất cả processors
1.1.3 Các hệ thống HPC kiến trúc cụm từ1990 đến 2010
Đây là giai đoạn phát triển các hệ thống HPC kiến trúc song song với các vector processors tốc độ nhanh, nhưng còn hạn chế bởi truy nhập vào bộ nhớ chia sẻ chung Vì thế trong những năm 1980 các nghiên cứu thiết kế các HPC với các bộ nhớ phân tán, nghĩa là mỗi processor có bộ nhớ riêng Do đó, số lượng processor có tăng lên nhiều, đến 64 và 128 processors Các cấu hình nối mạng các processor đãđa dạng
Intel iPSC Hypercube, 1985, gồm: 32 đến 128 nút xử lý Mỗi nút xử lý là:
80286 processor, 80287 math co-processor, 512K RAM, 8 cổng Ethernet (7 cổng để nối với các máy tính khác, 1 cổng cho nút điều khiển) Sử dụng sơ đồ mạng kết nối cấu hình hypercube giữa các processors Mô hình cơ bản là hypercube 5-chiều (25 =
32 processors)
The CM-1:là máy tính song song lớn (massivelyparallel computer)với65.536 phần tử xử lýSIMD kết nối trong mạng cấu hình hypercube Mỗi phần tử gồm: 1-bit processor và 4Kbits RAM (CM-2 có 64Kbits RAM)
CM-5: Máy tính MIMD (LosAlamos National Lab) với cấu hình mạng, đã từng là siêu máy tính đứng đầu trong danh sách 500 năm 1993 Nó có1024 processors và có thểđạt tốc độ59,7 GFLOPS
Beowulf Clusters, trong năm 1994 Donald Becker and TomStirling ởNASA, xây dựng cụm (cluster) sử dụng các PC có sẵn và nối chúng trong mạng Có 16 Intel 486DX PCs được kết nối với 10 Mb/s Ethernet cho tốc độ 1 GFLOPS với hệ thống trị giá$50,000
Trang 18bộ đồng xử lý GPGPU của NVIDIA liên kết theo các cấu hình mạng truyền dẫn quang công nghệ Ethernet hay Infiniband tốc độ cao theo các cụm là giải pháp kiến trúc phổ biến của các siêu máy tính hiện nay Các nút máy tính có thể là PC desktop, nhưng thông thường là các phiến (blade) cài đặt theo các tủ (rack) Hàng năm, trang web www.top500.org/top500 đưa ra danh sách 500 siêu máy tính hàng đầu thế giới, trong đó, có thể nhận thấy nhiều hệ thống sử dụng kiến trúc tích hợp GPGPU và lai ghép
Sự phát triển của dòng công nghệ chip Intel Xeon® PhiTM processors (64-, 68-, và 72-cores) cho phép tạo ra các siêu máy tính có thể cạnh tranh với các kiến trúc lai GPGPU bởi chúng có thể dễ dàng đồng bộ và làm các bộ đồng xử lý tăng tốc cho các bộ xử lý trung tâm Intel Xeon E5 Bảng 1.1 liệt kê 10 siêu máy tính mạnh nhất tính đến tháng 10/2017
Bảng 1.1: Top 10 siêu máy tính tính đến 10/2017
(PFLOPS) Name Model Processor Interconnect Vendor country, year Site Operating system
1 125.436 93.015 Sunway
TaihuLight Sunway MPP SW26010 Sunway NRCPC
National Supercomputing Center in Wuxi China, 2016
Linux (Raise)
2 33.863 54.902 Tianhe-2 TH-IVB-FEP
Xeon E5–2692, Xeon phi 31S1P
TH Express-2 NUDT
National Supercomputing Center in Guangzhou China, 2013
Linux (Kylin)
Trang 193 19.590 25.326 Piz Daint Cray XC50
Xeon E5-2690v3, Tesla P100
Swiss National Supercomputing Centre
Switzerland, 2016
Linux (CLE)
4 19.136 28.192 Gyoukou
2.2 HPC system
ZettaScaler-Xeon D-1571, PEZY-SC2
Infiniband
Japan Agency for Marine-Earth Science and Technology Japan, 2017
Linux (CentOS)
5 17.590
27.113 Titan Cray XK7
Opteron
6274, Tesla K20X
6 17.173 20.133 Sequoia Blue Gene/Q A2 Custom IBM
Lawrence Livermore National Laboratory United States, 2013
Linux (RHEL and CNK)
7 14.137 43.902 Trinity Cray XC40
Xeon E5–2698v3, Xeon Phi
Aries Cray Los Alamos National Laboratory
United States, 2015
Linux (CLE)
8 14.015 27.881 Cori Cray XC40 Xeon Phi 7250 Aries Cray
National Energy Research Scientific Computing Center United States, 2016
Linux (CLE)
9 13.555 24.914
Oakforest-PACS Fujitsu Xeon Phi 7250 Intel
Omni-Path Fujitsu
Kashiwa, Joint Center for Advanced High Performance Computing Japan, 2016
Linux
10 10.510 11.280 K computer Fujitsu SPARC64 VIIIfx Tofu Fujitsu
Riken, Advanced Institute for Computational Science (AICS) Japan, 2011
Linux
1.2 Ưu nhược điểm của hệ thống tính toán hiệu năng cao
1.2.1.Định nghĩa tính toán hiệu năng cao
Tính toán hiệu năng cao HPC (high performance computing) làứng dụng các
hệ thống máy tính hiệu năng cao như các siêu máy tính (super computer) và các hệ thống xử lý song song để giải quyết các bài toán tính toán phức tạp
Trang 207
Công nghệ tính toán song song tập trung vào sự phát triển các hệ thống và các thuật toán xử lý song song nhờ kết hợp cả quản trị và các kỹ thuật tính toán song song
HPC thường được sử dụng để giải quyết các bài toán hiện đại và thực hiện các hoạt động nghiên cứu thông qua sự mô hình hóa, mô phỏng và phân tích trên trên các hệ thống máy tính hiệu năng cao Các hệ thốngHPC có khả năng phân phối hiệu năng được duy trì liên tục qua sự sử dụng các tài nguyên tính toán
HPC được phát triển đểđáp ứng các nhu cầu ngày càng tăng về tốc độ xử lý HPC tập hợp vào với nhau một số công nghệ như kiến trúc máy tính, các kỹ thuật điện tử, các thuật toán, các chương trình, và phần mềm hệ thống theo một kiến trúc
để giải quyết các bài toán hiện đại và phức tạp một cách hiệu quả và nhanh
Các hệ thống HPC cần có mạng băng thông cao, trễ thấp để kết nối nhiều nút
và cụm tính toán (cluster)
1.2.2.Ưu nhược điểm của hệ thống tính toán hiệu năng cao
Với sự phát triển của công nghệ chip đa xử lý, máy tính cá nhân và công nghệ truyền thông tốc độ cao, thì các hệ thống HP kiến trúc cụm gồm nhiều nút máy tính cá nhân tích hợp CPU và các bộ đồng xử lý tăng tốc GPGPU hay Xeon Phi, kết nối bằng các truyền dẫn tốc độ cao lên đến hàng chục và hàng trăm Gbit/s (Infiniband) sẽ là giải pháp đạt hiệu năng cao: tốc độ cao trên đơn vị chi phí thấp Thậm chí HPC kiến trúc cụm gồm các nút PC sẵn có cũng có thể cho tốc độ tính toán cao mà chi phí thấp
HPC kiến trúc cụm là kiến trúc rất kinh tế, linh hoạt trong đấu nối mở rộng
và quản trị Cấu trúc cụm có thể có nhiều hay ít nút máy tính cá nhân (dạng desktop hay blade) tùy thuộc và khả năng chi phí đầu tư của người dùng vàứng dụng
Ngày nay, với sự phát triển của Internet vạn vật (Internet of Things - IoT), sự phát triển của kinh tế xã hội và nghiên cứu khoa học kỹ thuật đa dạng về nhu cầu xử
lý nhiều dữ liệu lớn trong thời gian nhanh nhất, thì các hệ thống HPC kiến trúc cụm
Trang 21là những công cụ hiệu quả nhất Sử dụng HPC kiến trúc cụm cũng tạo sự hợp tác quốc tế linh hoạt hơn trong phát triển các dựán liên ngành, liên chính phủ và quốc gia trong xử lý dữ liệu lớn "Big Data" HPC kiến trúc cụm đáp ứng cho tính toán song các bài toánứng dụng sẽđem lại hiệu suất cao cho các ứng dụng chuyên nghiệp
Tuy nhiên, đểđáp ứng được nhu cầu ngày càng cao trong một số lĩnh vực quan trọng như an ninh, quốc phòng, nghiên cứu không gian vũ trụ, v.v thì cần phải có những chi phí cho thiết kế hệ thống HPC cùng với các bảo đảm phần mềm tốn kém và phức tạp Đỉnh cao của kiến trúc HPC là các hệ thống siêu máy tính Không phải nước nào cũng đủ tiềm lực về kinh tế và trình độ khoa học kỹ thuật để xây dựng các hệ thống siêu máy tính Chi phí để đầu tư mua các siêu máy tính cũng rất cao Do đó, những nước nghèo cần bắt đầu từ phát triển các hệ thống HPC kiến trúc cụm
1.3 Các ứng dụng của HPC
1.3.1.Các lĩnh vực ứng dụng
Công nghệ HPC được thực hiện trong nhiều lĩnh vực:
• Sinh học (Biosciences)
• Y sinh học (Biomedical sciences)
• Dữ liệu địa lý (geographical data)
• Mô hình hóa trong công nghiệp dầu khí (Oil and Gas industry modeling)
• Tự động hóa thiết kế và chế tạo điện tử (Electronic design and production automation)
• Mô hình hóa khí hậu (Climate modeling)
• Đa phương tiện và giải trí
• Nghiên cứu vũ trụ (Aircraft and Space sciences)
• Thiết kế máy bay (aircraft, tầu thủy, tầu ngầm)
• Thiết kế vũ khí hạt nhân, tên lửa vũ trụ
Trang 229
• Nghiên cứu hạt nhân nguyên tử
• Xử lý dữ liệu tình báo, tội phạm, thám mã trong an ninh quốc phòng: bẻ khóa và mật mã
• Động lực học chất lỏng (fluid dynamics)
1.3.2.Nhu cầu ứng dụng HPC
Một hệ thống HPC có thểkhông đủ mạnh để giải quyết các tính toán lớn, nó chỉ cho phép thực hiện các tính toán chuyên ngành nhỏ phù hợp với phần cứng của
hệ thống, ví dụ, chỉ đáp ứng được khoảng 10% nhu cầu Thời gian để thực hiện một
đề tài vì vậy bị kéo dài, mất đi tính thời sự, càng khó cạnh tranh với các nhóm nghiên cứu khác trên thế giới Vì vậy phải có sự liên kết HPC của viện với các trung tâm HPC mạnh ở trong nước hay ởnước ngoài của đối tác, điều đó làm mất đi sự chủ động về nghiên cứu của Viện đó
Khoa học và kỹ thuật tính toán hiệu năng cao được ứng dụng ngày càng nhiều trong rất nhiều lĩnh vực từ khoa học, kỹ thuật công nghệ đến ứng dụng trong đời sống Nhu cầu tính toán này trở thành nhu cầu phải được nhanh chóng đáp ứng Thị trường tính toán hiệu năng cao đã tăng trưởng gần gấp 3 lần trong thập kỷ qua Việc xây dựng các hệ thống HPC là nhiệm vụ quan trọng cần được quan tâm đầu tư nghiên cứu
1.4 Kiến trúc tính toán song song
1.4.1.Đặc tính song song của HPC
Yếu tố chính làm nên hiệu năng của các hệ thống HPC là đặc tính song song trong kiến trúc ở nhiều lớp:
• Song song ở mức lệnh
• Xử lý vector
• Nhiều nhân trong một bộ xử lý
• Nhiều bộ xử trong một nút máy tính
Trang 23• Nhiều bộ xử lý kết hợp với các bộ đồng xử lý tăng tốc (GPGPU hay Xeon Phi)
• Nhiều nút trong một cụm
• Nhiều cụm trong một hệ thống
1.4.2.Khái niệm tính toán song song
Tính toán song song là một dạng tính toán trong đó nhiều lệnh được thực hiện đồng thời Tính toán song song vận hành trên nguyên tắc là các bài toán lớn được chia ra thành những phần nhỏ mà những phần nhỏ này có thể được thực hiện tương tranh (song song) Tính toán song song đã được sử dụng từ nhiều năm nay, chủ yếu cho những tính toán hiệu năng cao và trở thành một đặc điểm quan trọng trong kiến trúc máy tính, đặc biệt ở dạng các bộ xử lý nhiều lõi
Tính toán song song có một số dạng khác nhau:
• Song song mức bit
• Song song mức lệnh
• Song song dữ liệu
• Song song nhiệm vụ
Một chương trình song song gồm nhiều nhiệm vụ (task) chạy song song trên nhiều bộ xử lý Tuy nhiên, khó khăn để viết các chương trình cho máy tính song song hơn là cho máy tính tuần tự
Có 3 kiểu song song có thể có trong một chương trình thực hiện:
• Song song dữ liệu: nhiều khoản dữ liệu có thể được xử lý trong cùng một cách và ở cùng một thời gian
• Song song chức năng: chương trình có các module khác nhau và độc lập với nhau có thể được thực hiện đồng thời
• Chồng lấn nhau (overlapped)/song song tạm thời (temporary parallelism): chương trình có một chuỗi các nhiệm vụ (task) có thể được thực hiện theo
Trang 24kiểu chồng lấn nhau Hình thức quan trọng nhất của chồng lấn nhau là kỹ thuật đường ống (pipelining)
Một nhiệm vụ T (task):
• Có thể được xử lý tuần tự theo từ, bit theo bit trong bộ xử lý hay máy tính, thì bộ xử lý hay máy tính đó gọi là bộ xử lý hay máy tính tuần tự (sequential), hay đơn xử lý (uniprocessor)
• Nếu được phân chia thành những phần con có kích thước xấp xỉ nhau: T1,
T2, T3, …T N và tất cả các thành phần con này được xử lý đồng thời (thực
hiện song song) thì tốc độ thực hiện nhiệm vụ T nhanh gấp N lần và bộ
xử lý (máy tính) có chức năng thực hiện như vậy gọi là bộ xử lý song song (máy tính song song)
Ví dụ, một nhiệm vụ T thực hiện tính tổng SUM của N số (hằng số): b1, b2,
…, bN Khi đó, thuật toán tuần tự tính tổng N hằng số có thể đơn giản là:
For i = 1 to N do SUM <- SUM + b[i]
Thuật toán tuần tự này được thực hiện trên một bộ xử lý (hay trong máy tính
tuần tự) thì phải có N phép cộng, mỗi phép cộng chiếm một quãng thời gian là Tadd, nghĩa là để có được kết quả cuối cùng của SUM cần phải mất khoảng thời gian là
NTadd Nếu một máy tính có N bộ xử lý giống nhau Pi, i = 1, 2, …, N và chúng kết
nối với nhau trong một cấu trúc mảng tuyến tính hai chiều: mỗi một bộ xử lý đồng thời nhận (receive) và gửi dữ liệu với bộ xử lý lân cận (send) (hình 1.1)
Hình 1.1: Mảng tuyến tính hai chiều gồm n bộ xử lý
Bằng mô hình máy tính kiểu này có thể giải bài toán tính tổng SUM một
cách song song như sau: cho N = kn, trong đó: k- số nguyên; n - số lượng bộ xử lý Mỗi bộ xử lý thực hiện k số và tất cả n bộ xử lý đồng thời thi hành nhiệm vụ Như
Trang 25vậy N = kn phép cộng được phân ra n phép cộng (n bộ xử lý), mỗi phép cộng với k
số Bộ xử lý Pi chuyển kết quả phép cộng của nó cho bộ xử lý tiếp theo Pi+1, và Pi+1
cộng kết quả của chính nó với kết quả từ Pi gửi vào Kết quả phép cộng của Pi+1
được chuyển tới Pi+2.Sau (n-1) phép cộng và chuyển dữ liệu, kết quả cuối cùng được cất trong Pn
Thuật toán song song tính SUM được biểu diễn bằng chương trình sau đây:
{Với mỗi bộ xử lý Pi xác định SUM nhờ các số cục bộ của nó b(1:k)}
SUM <- 0;
For i = 1 to k do SUM <- SUM + b(i);
{Bộ xử lý Pi gửi kết quả cục bộ SUM đến bộ xử lý Pi+1}
SUM <- SUM + LEFTSUM;
{Mỗi bộ xử ly Pi (trừ Pn) gửi kết quả SUM cục bộ cho Pi+1}
If INDEX <n then send (RIGHT, SUM);
end;
Thời gian T(n) cần thiết để thực hiện tính tổng SUM theo thuật toán song song trên n bộ xử lý gồm có hai thành phần chính: thời gian tính cục bộ T L để thực
hiệnk = N/n phép cộng đồng thời trên n bộ xử lý Có thể viết T L = K 1 N/n, trong đó,
K1 là một hằng số phụ thuộc vào thời gian cộng và lưu giữ trên một bộ xử lý Thành
Trang 2613
phần thứ hai của T(n) là thời gian T C (thời gian truyền thông) - là thời gian gửi dữ
liệu trung gian qua (n-1) phép cộng Có thể viết T C = K2(n-1), trong đó: K2 là hằng
số phụ thuộc vào độ trễ truyền thông giữa các bộ xử lý Như vậy, thời gian T(n) sẽ
là:
)1(/
)
(n =T +T =K1N n+K2 n−
Bởi vì K2 liên quan đến thời gian truyền dữ liệu (kết quả trung gian) giữa các
bộ xử lý, nó lớn hơn nhiều so với K1, nên sự tăng số lượng các bộ xử lý sẽ kéo theo
tăng thời gian K2. Nếu n = 1 thì công thức (1.1) trở thành:
N K T n
1.4.3 Công thức mức tăng tốc của thực hiện song song
Công thức chung của mức tăng tốc đạt được của một chương trình thực hiện
song song kích thước p (nhiệm vụ, bài toán) có dạng là tỷ số giữa thời gian thực hiện chương trình trên máy tính tuần tự (một bộ xử lý) T(p, 1) và thời gian thực hiện chương trình đó trên nhiều bộ xử lý (máy tính song song), T(p, n):
) , (
) 1 , ( )
,
(
n p T
p T p
n
Trong đó, p:kích thước của chương trình; và n: số lượng bộ xử lý của máy
tính song song Với điều khiện thỏa mãn của chương trình thực hiện song song:
n n p
< ( , )
0
Đạt được mức tăng tốc tuyến tính khi: S(p, n) = n
Hiệu năng của thực hiện song song đạt được:
) , (
) 1 , ( )
, ( )
,
(
n p T n
p T n
n p S n
0<E p n ≤
Trang 27Đạt được mức tăng tốc tuyến tính khi: E(p,n) = 1, và sự giảm tốc (slowdown): E(p, n) < 1/n
1.4.4 Phân tích hiệu năng của thực hiện song song
1.4.4.1.Mức tăng tốc và hiệu năng
Thời gian thực hiện một chương trình song song gồm có các thành phần:
T seq (p) – thời gian thực hiện phần tuần tự vốn có của chương trình
T par (p) – thời gian thực hiện phần của chương trình có thể thực hiện song
song
k (p, n) – overhead truyền thông (communication overhead) gồm:
• Thời gian khởi động task
• Các đồng bộ: là sự thiết lập điểm đồng bộ bên trong một chương trình mà
ở đó một task có thể không tiếp tục nữa cho đến khi các task khác đạt được điểm tương tự hoặc điểm tương đồng logic Sự đồng bộ luôn kéo theo sự chờ đợi của ít nhất một task, và do đó có thể làm cho thời gian thực hiện chương trình (bắt thời điểm bắt đầu thực hiện của bộ xử lý đầu tiên cho đến thời điểm dừng của bộ xử lý cuối cùng) tăng lên (Wall clock time)
• Thời gian truyền thông dữ liệu
• Các overhead phần mềm phát sinh bởi các trình biên dịch song song, các thư viện, các công cụ, hệ điều hành, v.v…
• Thời gian kết thúc task
p – kích thước của chương trình
n – số lượng bộ xử lý thực hiện chương trình
)()()
Trang 28()
,
n
p T p T n
p
T = seq + par +κ - Tổng thời gian thực hiện chương trình
trên máy tính song với n bộ xử lý
Hình 1.2:Đồ thị với Overhead của xử lý song song được đưa vào
Hình 1.3: Diễn giải thời gian thực hiện chương trình song song
Biểu thức mức tăng tốc là:
) , ( ) ( )
(
) ( ) ( )
,
(
n p n
p T p T
p T p T n
p
S
par seq
par seq
κ
+ +
+
Trang 29) ( ) ( )
,
(
n p n p T p T n
p T p T n
p
E
par seq
par seq
κ
+ +
+
) , ( ) ( ) (
) ( ) ( )
,
(
n p n p T p nT
p T p T n
p
E
par seq
par seq
κ
+ +
+
Khi n→ ∞ ,k(p,n) = 0 thì E(p,n) → 1, do đó: 0≤E(p,n)≤1
1.4.4.2.Luật Amdahl
Luật Amdahl (lấy theo tên của Gene Myron Amdahl, nhà kiến trúc máy tính
Mỹ gốc NaUy, từng là nhân viên của IBM từ 1970, đã đưa raluật này năm 1967) để tìm kiếmsự cải thiện mong đợi tối đa của toàn bộ một hệ thống khi chỉ một phần của
hệ thống được cải thiện Luật Amdahl thường được sử dụng trong tính toán song song để dự đoán sự tăng tốc tối đa về lý thuyết nhờ sử dụng nhiều bộ xử lý
Vì κ(p,n)>0 nên từ công thức (1.5) ta có :
n p T p T
p T p T n p n
p T p T
p T p T n
p
S
par seq
par seq
par seq
par seq
/ ) ( ) (
) ( ) ( )
, ( ) ( )
(
) ( ) ( )
≤+
=
)()(
)(0
f p T p T f
p T p T p T p T p T
p T
par seq
seq
Nếu overhead truyền thông k(p,n) = 0, thì Luật Amdahl xác định mức tăng tốcS ( n p, )tối đa đạt được nhờ thực hiện trên máy tính song song với n bộ xử lý là:
n f f
n
p
S
/ ) 1 (
1 )
,
(
− +
Trang 30Và khi số bộ xử lý n→∞thì mức tăng tốc cực đại đạt được là :
f n p S
n
1 ) , (
∞
Biểu thức mức tăng tốc tối đa (1.10) chỉ phụ thuộc vào kích thước phần tuần
tự của chương trình, và sẽ giảm đi khi phần tuần tự tăng lên
Hình 1.4: Luật Amdahl Hình 1.4chỉ sự thay đổi của mức tăng tốc so với sự thay đổi kích thước của phần tuần tự của chương trình với bất kỳ số lượng cố định nào của các bộ xử lý Ta
nhận thấy, với sự giảm phần ftuần tự, đồ thị mức tăng tốc dần đạt đến tuyến tính (khi f = 0) với sự tăng của số bộ xử lý
Luật Amdahl tổng quát:
Luật Amdahl xác định mức tăng tốc của chương trình nếu trong chương trình
có một số phần sẽ là:
Trang 31S P Speedup
klà chỉ số của từng phần của chương trình
nlà số phần được chia của chương trình
Ví dụ, một chương trình thực hiện được chia ra 4 phần: P1 = 0, 11 hay 11%,
P2 = 0, 18 hay 18%, P3 = 0, 23 hay 23%, P4 = 0, 48 hay 48% Cho rằng, phần P1không thực hiện tăng tốc, như vậy S1 = 1 hay 100%, P2 được tăng tốc lên 5x, như
vậy S2 = 5 hay 500%, P3 được tăng tốc lên 20x, như vậy S3 = 20 hay 2000%, và P4được tăng tốc lên 1, 6x, như vậy S4 = 1, 6 hay 160% Từ đây ta có thời gian chạy khi thực hiện tăng tốc là:
4575 , 0 6 , 1
48 , 0 20
23 , 0 5
18 , 0 1
11 , 0 4
4 3
3 2
2 1
P S
P S
P S
P
Như vậy, với Luật Amdahl (1.11) xác định mức tăng tốc độ là 1/0, 4575 = 2,
186 hơn gấp đôi một chút tốc độ nguyên gốc (không thực hiện tăng tốc)
Luật Amdahl cho một chương trình thực hiện tuần tự:
Cho rằng một chương trình thực hiện có hai phần độc lập, A và B Phần B
chiếm tới 25% thời gian thực hiện toàn bộ chương trình (hình 1.5) Có hai cách tăng tốc độ nhờ thực hiện song song một phần của chương trình: cách một là thực hiện
song song phần B để tăng tốc lên 5x, nhưng cách này không làm tăng đáng kể tốc
độ Cách thứ hai là thực song song phần A để tăng tốc lên 2x, ta đạt được tăng tốc
của chương trình lên đáng kể
Trang 32Hình 1.5: Sự tăng tốc của một chương trình gồm 2 phần
Mức tăng tốc tối đa đạt được của một chương trình tuần tự nhờ phần f của chương trình được thực hiện tăng tốc lên s lần là:
s
f f
1
= +
1
= +
−
=
A lên 2 lần sẽ làm tốc độ thực hiện của chương trình tăng lên đến 60%, trong khi đó
giải pháp tăng tốc phần B lên 5 lần chỉ làm tốc độ thực hiện tăng hơn 25%
Nếu có hai chương trình X và Y, ta nói rằng chương trình X chạy T% nhanh hơn chương trình Ynếu:
100
X of time execution
CPU
Y of time execution
CPU
+
Đối với trường hợp sử dụng nbộ xử lý (hay lõi xử lý) để thực hiện song song
phần fđể đạt được mức tăng tốc s=n , trong khi vẫn giữ nguyên phần tuần tự
)
1
( − f thì công thức (1.12) được viết là:
Trang 33f f
Luật Amdahl cho các chip đa lõi:
Các câu hỏi đặt ra cho các nhà thiết kế chip đa lõi: giới hạn đạt được bao nhiêu lõi trong một chip, các lõi sử dụng các đường ống lệnh đơn giản hay đường ống lệnh công suất lớn với nhiều lối ra (many-issue pipeline), các lõi có các kiến trúc micro giống nhay hay khác nhau, v.v Cho đến nay, các chip đạt được thương mại hóa ở 2-8 lõi, nhưng tương lai sẽ là hàng trăm và hàng nghìn lõi
Để áp dụng Luật Amdahl cho chip đa lõi, ta cần mô hình chi phí cho số lượng và hiệu năng của các lõi mà chip có thể có Trước hết, cho rằng chip đa lõi
của một kích thước và thế hệ công nghệ cụ thể có thể chứa nhiều nhất n tương
đương lõi cơ sở BCE (base core equivalents), trong đó một BCE tương đương với một lõi cơ sở Điều này có lý do từ nhà thiết kế chip muốn phát triển chip đa lõi chỉ với L1 caches riêng cho từng lõi mà không bao gồm các tài nguyên khác như cache chia sẻ, các mạng liên kết (interconnects), các điều khiển bộ nhớ, v.v Những tài nguyên này được cho rằng không thuộc lõi và không thay đổi trong các phiên bản
chip đa lõi Cũng không thể biết được giới hạn nào đối với số n BCE của chip Có
thể là nguồn tiêu thụ, diện tích của chip, tần số, hay sự kết hợp của chúng, và các yếu tốc khác Điều quan trọng đối với các nhà thiết kế chip đa lõi là sử dụng các tài nguyên của nhiều BCE để tạo ra một lõi với hiệu năng tuần tự (sequential performance) cao nhất
Có 3 loại chip đa lõi: chip đa lõi đối xứng SMC (symmetric multi-core chip), chip đa lõi bất đối xứng AMC (Asymmetric multi-core chip), và chip đa lõi linh hoạt DMC (Dynamic multi-core chip)
SMC yêu cầu tất cả các lõi có cùng chi phí, và phổ biến là 2 loại SMC:
a) SMC gồm n tương đương lõi cơ sở (base core equivalents) (BCE); mỗi
BCE là một lõi xử lý với tài nguyên tối thiểu (hình 1.6)
Trang 34Hình1.6: Chip đa lõi đối xứng gồm n =16 lõi BCE b) SMC bao gồm n/r lõi (nghĩa là SMC có tất cả n BCE, nhưng mỗi lõi là một kết hợp r BCE)(hình 1.7)
Hình 1.7: Chip đa lõi đối xứng gồm n/r = 4/4 lõi (4 lõi, mỗi lõi có 4 BCE) SMC cấu trúc n/r cho phép tập trung nhiều tài nguyên vào một số lõi gồm r
BCE để tăng hiệu năng thực hiện perf (r)
− )
core BCE r a of e performanc absolute
r
Trong đó, absolute performanc ecó thể là tốc độ xử lý (ví dụ, MIPS), hoặc số
đo hiệu năng khác
Muốn perf(r) >r, các nhà thiết kế chip phải tăng các tài nguyên cho lõi BCE để đạt được sự tăng tốc của cả thực hiện tuần tự và song song Khi perf(r) <r
Trang 35r-, sự tăng hiệu năng của lõi bị ảnh hưởng bởi sự thực hiện tuần tựr-, và như vậy làm ảnh hưởng đến thực hiện song song
Theo Luật Amdahl, mức tăng tốc của SMC phụ thuộc vào tỷ trọng phần có
thể thực hiện song songf, toàn bộ số BCE (n), và số lõi r Với loại SMC chỉ sử dụng
một lõi để thực hiện tuần tự với hiệu năng tuần tự perf (r), và sử dụng tất cả n/r lõi
để thực hiện song song với hiệu năng perf( ×r) n/r Như vậy, tổng mức tăng tốc của SMC là:
n r perf
r f r
perf f r
n f Speedup SMC
×
× +
−
=
) ( )
( 1
1 )
, ,
AMC gồm một lõi r-BCE (1/r-BCEs) và n-r BCE (hình 3.8) Trong AMC,
một hay một số lõi mạnh hơn các lõi khác Ví dụ, trong AMC với n = 64 BCE, có thể được tổ chức 1 lõi 4-BCE và 60 lõi 1-BCE, 1 lõi 9-BCE và 55 lõi 1-BCE, v.v
Nói chung, nếu một AMC có n BCE, thì có thể tổ chức 1 lõi r-BCE và n-r lõi
1-BCE
Hình 1.8: Chip đa lõi bất đối xứng gồm một lõi 4-BCE và n-4 lõi 1-BCE
So với SMC, Luật Amdahl cho AMC có dạng khác Vì AMC sử dụng một lõi lớn với nhiều tài nguyên hơn để thực hiện phần tuần tự với hiệu năng tuần tự
)
(r
perf Trong phần thực hiện song song, nó nhận hiệu năng perf (r) từ một lõi lớn
Trang 36r n r perf
f r
perf f r
n f Speedup AMC
− + +
−
=
) ( )
( 1
1 )
, ,
Trong DMC có thể kết hợp r lõi với nhau để đẩy hiệu năng của phần tuần tự,
như chỉ ra ở hình 1.9 Khả năng này có thể đạt được ở mức luồng Trong chế độ tuần tự, DMC có thể thực hiện với hiệu năng tuần tự perf (r)khi các kỹ thuật linh
hoạt sử dụng r lõi BCEs
Hình 1.9: Chip đa lõi đa lõi linh hoạt gồm 16 lõi 1-BCE
Trong chế độ song song, DMC nhận hiệu năng n nhờ sử dụng tất cả các lõi
cơ sở Tổng cộng, ta có thể đạt được mức tăng tốc trong DMC:
n
f r perf f r
n f Speedup DMC
+
−
=
) ( 1
1 )
, ,
Khi n tiến tới vô cùng, thì mức tăng tốc chỉ phụ thuộc vào kích thước phần tuần tự của chương trình, (1- f) Do đó, một chương trình ứng dụng đạt được mức
Trang 37tăng tốc lớn khi thực hiện song song trong các hệ thống với các chip đa lõi đa luồng cần phải được thiết kế sao cho phần tuần tự chiếm kích thước rất nhỏ, và các
module song song phải đạt được mức tối đa f = n
Hạn chế của Luật Amdahl:
• Bỏ qua trễ truyền thông giữa các processors (communication overhead)
),
( n p
• Cho rằng phần kích thước của chương trình thực hiện (task) là cố định và
số lượng các bộ xử lý tăng
• Xác định giới hạn trên của mức tăng tốc khi n tiến tới vô cùng, khi đó
mức tăng tốc chỉphụ thuộc vào kích thước của phần tuần tự Phần tuần tự càng lớn thì mức tăng tốc càng giảm
Ví dụ:cho rằng phiên bản song song của chương trình có sốđiểm truyền thông là logp Thời gian truyền thông ở một điểm truyền thông là:
) 10 / ( )
(log
thời gian truyền thông là:
14000 )
(log 140000 ]
1000 ) (log 10000 [ 14
] 10 / 10000 )
10000 (log(
10000 )[
10000 log(
)]
10 / ( ) (log 10000
[
log
+
= +
=
+
= +
p p
p p p
Mức tăng tốc đạt được tính theo công thức (1.8) là:
14000 )
(log 140000 /
1000000 28000
1000000 28000
) , ( ) ( )
(
) ( ) ( )
,
(
+ +
+
+
= +
+
+
≤
p n
n p n
p T p T
p T p T n
p
S
par seq
par seq
κ
) (log 140000 /
1000000 42000
1000000 28000
) , ( ) ( )
(
) ( ) ( )
,
(
p n
n p n
p T p T
p T p T n
p
S
par seq
par seq
+ +
+
= +
+
+
≤
κ
Đối với bất kỳ số lượng cố định n nào các bộ xử lý, mức tăng tốc thường
được coi là hàm tăng của kích thước chương trình Đó chính là hiệu ứng Amdahl
Trang 3825
• Thời gian κ( n p, )có sự phức hợp thấp hơn so với T par ( p)
• Sự tăng kích thước n của chương trình làm tăng thời gian thực hiện nhanh
hơn sự tăng thời gian truyền thông κ( n p, )
• Sự tăng kích thước p của chương trình làm tăng mức tăng tốc, và phần tuần tựfgiảm
1.4.4.3 Luật Gustafson-Barsis
Hiệu ứng Amdahl chỉ ra rằng mức tăng tốc (S) thực hiện chương trình tăng tỷ
lệ với kích thước của chương trình (p) với số lượng n bộ xử lý xác định Như vậy
phải tăng kích thước chương trình và thực hiện song song có hiệu quả với một số lượng bộ xử lý xác định Điều này thực tế không phải lúc nào cũng đạt được
Luật Gustafson-Barsis (năm 1988) là luật khắc phục hạn chế này của Luật Amdahl và nó xác định mức tăng tốc với sự tăng của số bộ xử lý cho bất kỳ một chương trình kích thước như thế nào
Cho rằng s: tỷ lệ phần thời gian chi phí để thực hiện các thao tác tuần tự
trong một chương trình tính toán song song
n p T p T
p T s
par seq
seq
/ ( ) (
) ( +
:
; / ( )
(
/ ( )
1
n p T p T
n p T s
par seq
T seq( ) = ( seq( ) + par( ) / ) ; par( ) = ( seq( ) + par( ) / )( 1 − ) (1.20) Kết hợp các công thức (1.8) và (1.20) nhận được công thức của Luật Gustafson-Barsis:
)1()
,
Đây là mức tăng tốc tối đa S ( n p, ) (còn gọi là mức tăng tốc định cỡ – scaled
speedup) đạt được của một chương trình có kích thước p thực hiện trên hệ thống
Trang 39song song với số bộ xử lý là n, và s là tỷ lệ thời gian chi phí để thực hiện toàn bộ
các phần tuần tự của chương trình Luật Gustafson-Barsis có thể viết ở dạng:
s n n
n
p
Với công thức (1.22) Luật Gustafson-Barsis xác định mức tăng tốc định cỡ
gồm thời gian thực hiện các khoản tuần tự và số lượng n cụ thể bộ xử lý mà không
tính đến kích thước của chương trình
Ví dụ, một ứng dụng chạy trên n =10 bộ xử lý phải chi phí s = 3% thời gian
của nó cho các phần code tuần tự, như vậy mức tăng tốc định cỡ xác định theo (1.22) là:
73.927,010)03,0)(
101(
=
S
Biết được mức tăng tốc định cỡ, và số lượng bộ xử lý, ta dễ dàng xác định tỷ
lệ phần thời gian tối đa chi phí để thực hiện các phần code tuần tự của một chương trình song song Ví dụ, cho S =12, n=16:
27,015/)1216()
161(16
1.4.4.4 Số đo Karp-Flatt
Các Luật Amdahl và Gustafson-Barsis đều bỏ qua overhead κ( n p, ) và chúng xác định mức tăng tốc giới hạn hay mức tăng tốc định cỡ
Karp-Flatt (do Alan H Karp và Horace P Flatt đề xuất 1990) xác định số đo
e – là phần tuần tự của một chương trình được xác định bằng thực nghiệm:
) 1 , (
) , ( ) ( )
( )
(
) , ( ) (
p T
n p p T p T p T
n p p T
par seq
= +
+
Vì: T seq(p) +κ(p,n) =T(p, 1 )e, nên T(p,n)=T(p,1)e+T(p,1)(1−e)/n;
/ ) 1 ( ) , ( ) , ( ) , (
; ) , ( ) 1 , ( );
, ( / ) 1 ,
/ 1 1
/ 1 / 1
−
−
Trang 40Nguyên nhân trước tiên nào đã gây ra để giá trị mức tăng tốc chỉ đạt 4,71 ở
trường hợp n = 8 bộ xử lý (bắt đầu chậm tăng mức tăng tốc thấp) Để xác định nguyên nhân, ta tính các giá trị số đo Karp-Flatt (e) theo (1.25):
e 0,070 0,075 0,080 0,085 0,090 0,095 0,100 Bởi vì e tăng liên tục theo sự tăng của số bộ xử lý, nên overhead là nguyên nhân đầu tiên, làm tăng e
1.4.4.5 Số đo đẳng hiệu năng
• Một hệ thống song song: một chương trình song song thực hiện trên máy tính song song
• Định cỡ của một hệ thống song song: số đo khả năng của nó tăng hiệu năng theo sự tăng của số bộ xử lý