Tải bản đầy đủ (.pdf) (26 trang)

NGHIÊN CỨU VÀ ĐÁNH GIÁ ẢNH HƯỞNG CỦA CẤU TRÚC MẠNG KẾT NỐI ĐẾN HIỆU NĂNG CỦA SIÊU MÁY TÍNH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (223.33 KB, 26 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

NGUYỄN ĐỨC KIỂN
NGHIÊN CỨU VÀ ĐÁNH GIÁ ẢNH HƯỞNG CỦA CẤU
TRÚC MẠNG KẾT NỐI ĐẾN HIỆU NĂNG CỦA SIÊU MÁY
TÍNH
Chuyên nghành: Khoa học máy tính
Mã số: 60.48.01.01
TÓM TẮT LUẬN VĂN THẠC SĨ
HÀ NỘI - 2013
Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: TS. Hồ Khánh Lâm
Phản biện 1: …………………………………………………………………
Phản biện 2: ……………………………………………………………………
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện
Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
1
MỞ ĐẦU
Đã từ lâu, đi kèm với sự ra đời và phát triển mạnh mẽ của các phần cứng máy tính,
đem lại lợi ích to lớn cho người sử dụng là sự xuất hiện các siêu máy tính đơn bộ xử lý hiện
nay đã đạt được tốc độ và hiệu năng mạnh mẽ, đáng kinh ngạc và đạt tới giới hạn về mặt
phần cứng, về mặt vật lý của công nghệ sản xuất. Điều này đã đóng lại xu thế đơn xử lý và
đòi hỏi phải có một kỹ thuật xử lý tiên tiến khác thay thế để nâng cao hơn nữa khả năng tính
toán của hệ thống xử lý. Hiện nay trên thế giới, các bộ xử lý tiên tiến, các hệ thống tính toán
tích hợp, phức tạp có tốc độ cao đều áp dụng kỹ thuật xử lý song song, coi đây như là một
kỹ thuật tiên tiến, khả thi, có tính mở cao.
Từ các phân tích trên có thể thấy, giải pháp hiệu quả nhất để nâng cao hiệu năng xử


lý là ứng dụng các siêu máy tính. Đây cũng là mục đích của đề tài “Nghiên cứu và đánh giá
ảnh hưởng của cấu trúc mạng kết nối đến hiệu năng của siêu máy tính” của luận văn.
. Nội dung của luận văn bao gồm ba chương:
 Chương 1: Tổng quan về siêu máy tính.
 Chương 2: Cấu trúc các mạng kết nối của hệ thống đa xử lý ảnh hưởng đến hiệu năng
siêu máy tính
 Chương 3: Đánh giá ảnh hưởng của cấu trúc mạng kết nối đến hiệu năng siêu máy
tính.
2
Chương 1 – TỔNG QUAN VỀ SIÊU MÁY TÍNH
1.1. Sự phát triển của công nghệ siêu máy tính
Một siêu máy tính là một máy tính vượt trội trong khả năng và tốc độ xử lý. Thuật
ngữ Siêu Tính Toán được dùng lần đầu trong báo New York World vào năm 1920 để nói đến
những bảng tính (tabulators) lớn của IBM làm cho trường Đại học Columbia. Siêu máy tính
hiện nay có tốc độ xử lý hàng trăm teraflop (một teraflop tương đương với hiệu suất một
nghìn tỷ phép tính/giây) hay bằng tổng hiệu suất của 6.000 chiếc máy tính hiện đại nhất hiện
nay gộp lại (một máy có tốc độ khoảng từ 3-3,8gigaflop). Có thể hiểu siêu máy tính là hệ
thống những máy tính làm việc song song.
Công nghệ siêu máy tính đã được giới thiệu trong những năm 1960 và được thiết kế
đầu tiên bởi Seymour Cray ở CDC (Control Data Corporation), và sau đó là ở Cray
Research. CDC 6600 được chế tạo năm 1964 được coi là siêu máy tính đầu tiên. Các siêu
máy tính của những năm 1970 chỉ sử dụng ít bộ xử lý. Cray 1 với 80 MHz xuất hiện năm
1972 là một siêu máy tính thành công nhất. Năm 1985, Cray 2 với 8 bộ xử lý được làm lạnh
bằng chất lỏng, thực hiện tính toán với tốc độ 1.9 Gflops (1.9 tỷ phép tính số dấu
phẩy/giây), và là siêu máy tính nhanh nhất thế giới cho đến 1990. Các siêu máy tính hiện
nay có thể sử dụng tới vài trăm ngàn bộ xử lý.
Tốc độ tính toán của các hệ thống siêu máy tính ngày càng tăng nhanh. Theo thống
kê trong website top500.org, cứ sau khoảng thời gian 6 tháng, tổng năng lực tính toán của
500 máy tính mạnh nhất thế Giới tăng trung bình 50%, lớn hơn sự tăng tốc độ của vi xử lý
đơn theo định luật Moore (2 lần sau mỗi 18 tháng). Tính đến tháng 6/2010.

1.2 Phần cứng và kiến trúc của siêu máy tính
Xét theo công suất (tốc độ tính toán, độ rộng từ xử lý, không gian đánh địa chỉ nhớ)
siêu máy tính là loại mạnh nhất nhưng cũng là chi phí cao nhất (hàng trăm nghìn, hàng triệu
USD). Trong những năm 70 hầu hết là các siêu máy tính vector (vector supercomputer)
chuyên ứng dụng để thực hiện các tính toán vector liên quan đến các cấu trúc dữ liệu như
các ma trận và các mảng đa chiều.
Các hệ thống với số lượng lớn các bộ xử lý thường có thể được tạo ra bằng hai cách:
Một là: Ví dụ, trong tính toán lưới (Grid computing) công suất tính toán của một số lượng
lớn các máy tính phân tán, thuộc các nơi quản trị khác nhau, thích hợp được bất cứ khi nào
sẵn sàng. Hai là: Một số lớn các bộ xử lý được sử dụng kết hợp với nhau trong một cụm các
3
nút máy tính. Mỗi nút máy tính sử dụng các bộ xử lý đa lõi (Multi-Core processors) kết hợp
thành bộ xử lý trung tâm là một hướng phát triển chính của công nghệ siêu máy tính hiện
nay, bởi nó cho phép kết hợp đến hàng trăm ngàn bộ xử lý.
Hệ thống tính toán song song ghép cụm là các hệ thống máy tính song song được xây
dựng từ các nút tính toán và thiết bị mạng thông dụng. Mỗi nút tính toán đóng vai trò điều
khiển vào/ra là một hệ thống hoàn chỉnh, có khả năng làm việc độc lập. Hệ thống tính toán
song song ghép cụm là cũng một máy tính song song, trong đó: Các tài nguyên tính toán
bao gồm bộ vi xử lý và bộ nhớ trong tại mỗi nút máy tính, và các tài nguyên tính toán này
kết nối qua mạng (Interconnect network) truyền thông với nhau. Mạng kết nối chỉ giới hạn
trong một mạng cục bộ (LAN) nhưng có nhiều lựa chọn cấu hình khác nhau, trong đó có
một máy tính đóng vai trò máy chủ (Server), các máy tính còn lại đóng vai trò nút tính toán
(Computing node).
Sự thiết lập hệ thống tính toán song song ghép cụm từ những máy tính có cấu trúc
đơn giản sử dụng các công nghệ mạng phổ biến đã được bắt đầu từ năm 1994 với mô hình
Beowulf Cluster của Thomas Sterling và Donal Becker. Hệ thống tính toán song song ghép
cụm rẻ hơn nhiều so với một siêu máy tính cùng sức mạnh. Điều này làm cho các hệ thống
tính toán song song ghép cụm ngày càng phổ biến và đặc biệt phù hợp cho các nước đang
phát triển, các trường đại học.
Tất cả các siêu máy tính đều có kiến trúc song song ở các mức độ khác nhau, và

hầu hết có: Kiến trúc đường ống, bộ nhớ chia sẻ hoặc bộ nhớ phân tán, truy nhập bộ
nhớ không thống nhất NUMA (Non-Uniform Memory access), tổ chức các đĩa cứng
độc lập kết nối theo RAID (Redundant Array of Independent Disks), xử lý Vector hoặc
SIMD, các hệ thống tệp tin song song (Parallel filesystems). Hầu hết các siêu máy tính
hiện đại là các thiết kế riêng sử dụng các bộ xử lý thương mại kết hợp với các mạng
liên kết thiết kế riêng (Custom interconnects) như: Siêu cúp (Hypercube), mạng hình
lưới (Mesh) 2 và 3 chiều, và mạng lưới khối lập phương 3 chiều (3D cubic grid – mạng
torus) (trong đó mỗi một nút kết nối với 6 nút lân cận) (IBM Gene Blue/L, Cray T3E).
Các kết nối mạng có thể tĩnh hoặc động thông các các bộ chuyển mạch.
Có hai xu hướng thiết kế siêu máy tính hiện nay: Sử dụng hoàn toàn các nút
CPU – là các bộ xử lý đa năng đa lõi đa luồng (PowerPC, AMD Opteron, hoặc Intel
Xeon, Intel Core i7, ) và sử dụng kết hợp CPU + GPU cho từng nút máy tính.
4
Các GPU của NVIDIA và ATI (AMD) đang là những đối thủ cạnh tranh trên thị
trường chip đồ họa ứng dụng không chỉ riêng cho xử lý đồ họa mà cho cả chế tạo siêu
máy tính. Các bàn chơi game hiện nay sử dụng các mở rộng SIMD trong các hệ thống
trờ chơi điện tử. Các nhà sản xuất thiết bị trò chơi điện tử vẫn cho rằng các máy trò
chơi điện tử chính là những siêu máy tính, thực vậy, một số card đồ họa có tốc độ xử lý
đến vài TFLOPS.
Cạnh tranh với GPU của NVIDIA và AMD, trong kế hoạch nhằm trang bị cho
những siêu máy tính tiết kiệm điện năng vào năm 2018, Intel đã trình bày Chip
Knights Corner lần đầu tiên tại Hội nghị siêu máy tính SC11, có thiết kế hơn 50-lõi để
phục vụ cho những công việc tính toán chuyên dụng. Intel cũng nói về Chip máy chủ
Xeon E5 sắp tới, dựa trên vi cấu trúc Sandy Bridge.
1.3. Năng lượng sử dụng và quản lý nhiệt của siêu máy tính
Làm mát tất cả hệ thống siêu máy tính là một vấn đề lớn, bởi vì các siêu máy tính
tiêu thụ điện năng rất lớn, vượt ngưỡng Megawatt. Có nhiều phương pháp làm mát và
quản lý nhiệt của siêu máy tính, phụ thuộc vào mức độ phát triển của công nghệ siêu
máy tính.
 Làm mát bằng chất lỏng

 Hệ thống làm mát bằng hơi Flourinert
 Làm mát bằng nước ấm
 Làm mát bằng môi trường không khí tự nhiên
1.4. Hiệu năng của các siêu máy tính
1.4.1 Năng lực và khả năng tính toán
Các siêu máy tính có mục tiêu tối đa trong năng lực tính toán (Capability computing)
hơn là khả năng tính toán (Capacity computing). Năng lực tính toán thường được cho là sự
sử dụng tối đa công suất tính toán để giải quyết bài toán lớn trong một quãng thời gian ngắn
nhất. Một hệ thống có năng lực có thể giải một bài toán có kích thước hoặc độ phức tạp mà
không một máy tính nào khác có thể giải được. Ví dụ, ứng dụng mô phỏng thời tiết phức
tạp. Trái lại, khả năng tính toán thường được cho là sự sử dụng hiệu quả chi công suất tính
toán để giải một số nhỏ các bài toán lớn nào đó hoặc một số lớn các bài toán nhỏ. Ví dụ,
nhiều truy nhập của người dùng đến cơ sở dữ liệu hoặc web site.
5
1.4.2 Các số đo hiệu năng
Thông thường, tốc độ của các siêu máy tính được đo bằng FLOPS (FLoating
Point Operations Per Second). Các số đo của FLOPS cho các cấp tốc độ là: GFLOPS
(GigaFLOPS) = 10
9
FLOPS, TFLOPS (TeraFLOPS) = 10
12
FLOPS, PFLOPS (PetaFLOPS)
= 10
15
FLOPS, Petascale = 10
15
(1000 trillion)FLOPS, Exascale = 10
18
FLOPS (1 quintillion
FLOPS = 1 million teraflops). ZettaFLOPS = 1021FLOPS (1 sextillion FLOPS).

Không có một số đo riêng biệt nào phản ảnh hiệu năng toàn bộ của một hệ thống máy
tính. Linpack Benchmark là công cụ đo xấp xỉ máy tính nhanh giải một số bài toán nhanh
như thế nào và nó được sử dụng rộng rãi trong công nghiệp.
1.5. Các ứng dụng của siêu máy tính
Siêu máy tính được sử dụng cho các nhiệm vụ tính toán siêu nhanh và các bài toán có
khối lượng dữ liệu lớn, như: Vật lý lượng tử, dự báo thời tiết, nghiên cứu khí hậu, khai thác
dầu khí, mô hình hóa phân tử (Tính toán các cấu trúc và đặc tính của các thành phần hóa
học, các phân tử macro (Macromolecules) của sinh học, các polymer, và các tinh thể), và
các mô phỏng vật lý (Như mô phỏng các máy bay trong các ống gió, mô phỏng vụ nổ của
các vũ khí hạt nhân, và nghiên cứu trong hỗn hợp hạt nhân, các nghiên cứu không gian vũ
trụ. Ngoài ra, các nhà cung cấp các dịch vụ viễn thông, internet lớn trên thế giới sử dụng các
hệ thống siêu máy tính cho các trung tâm dữ liệu đảm bảo các dịch vụ trên điện toán đám
mây.
1.6 Kết luận chương
Thông qua nội dung chương 1, luận văn đề cập đến những kiến thức cơ bản về các
loại siêu máy tính. Một siêu máy tính là một máy tính vượt trội trong khả năng và tốc độ xử
lý Có thể hiểu siêu máy tính là hệ thống những máy tính làm việc song song. Xét theo công
suất (tốc độ tính toán, độ rộng từ xử lý, không gian đánh địa chỉ nhớ) siêu máy tính là loại
mạnh nhất nhưng cũng là chi phí cao nhất (hàng trăm nghìn, hàng triệu USD) Siêu máy tính
được sử dụng cho các nhiệm vụ tính toán siêu nhanh các bài toán có khối lượng dữ liệu lớn,
như, vật lý lượng tử, dự báo thời tiết, nghiên cứu khí hậu, khai thác dầu khí, mô hình hóa
phân tử.
6
Chương 2 – CẤU TRÚC CÁC MẠNG KẾT NỐI CỦA HỆ THỐNG ĐA
XỬ LÝ ẢNH HƯỞNG ĐẾN HIỆU NĂNG SIÊU MÁY TÍNH
2.1. Phân loại theo Flynn
2.1.1. Một chuỗi lệnh một chuỗi dữ liệu SISD
SISD (Single instruction stream single data stream) có M
I
= 1, M

D
= 1. Đây là hệ
thống đơn xử lý, là máy tính kiến trúc Von Neumann cổ điển chỉ với một bộ xử lý. Các
lệnh được thực hiện tuần tự nhưng có thể gối chồng theo đường ống. Hầu hết các hệ
thống SISD hiện nay đều có đường ống lệnh, một số đơn vị chức năng, như các bộ
đồng xử lý toán học bổ xung, các đơn vị tính các vector, các bộ xử lý đồ họa và xử lý
vào/ra.
Thường phân các máy tính SISD ra thành hai nhóm:
 SISD với một đơn vị chức năng hay các máy tính hướng tuần tự (Serial scalar
computer
 SISD có nhiều hơn một đơn vị chức năng
Tốc độ thực hiện của các máy tính SISD được đo trong MIPS (Million of
instructions per second)
2.1.2. Một chuỗi lệnh nhiều chuỗi dữ liệu SIMD
SIMD (Single instruction stream multiple data stream) có M
I
= 1, M
D
> 1.
Trong các hệ thống máy tính SIMD có nhiều bộ xử lý làm việc song song với nhau,
thực hiện một mệnh lệnh giống nhau nhưng với những dữ liệu khác nhau. Mỗi bộ xử lý
(Pi, i = 1, 2,…, n) có bộ nhớ cục bộ riêng (Mi, i=1, 2, …n).
2.1.3 Nhiều chuỗi lệnh một chuỗi dữ liệu MISD
M
I
> 1, M
D
= 1. Trong những hệ thống dạng này, một chuỗi dữ liệu từ bộ nhớ chung
M được chuyển đến chuỗi các bộ xử lý được điều khiển bởi từng bộ điều khiển CU riêng và
thực hiện các chuỗi lệnh khác nhau.

Không có nhiều bộ xử lý song song phù hợp với nhóm này. Có thể các máy tính
như Cray-1 và CYBER 205 của Control Data Corporation có tính năng xử lý đường
ống (Pipeline processing) được liệt vào nhóm MISD.
7
2.1.4. Nhiều chuỗi lệnh nhiều chuỗi dữ liệu MIMD
M
I
> 1, M
D
> 1. Trong hệ thống MIMD có tập hơp n bộ xử lý thực hiện đồng thời
n chuỗi lệnh trên các chuỗi dữ liệu khác nhau. MIMD thường được gọi là hệ thống đa
xử lý bộ nhớ chia sẻ bộ.
Các hệ thống có bộ nhớ chia sẻ (SIMD và MIMD) còn có thêm các phân chia
nhỏ:
 SM-R : bộ nhớ chia sẻ cho phép nhiều đọc đến cùng một chỗ.
 SM-W : bộ nhớ chia sẻ cho phép ghi nhiều đến cùng một chỗ.
 SM-RW: bộ nhớ chia sẻ cho phép nhiều cả ghi đọc đến cùng một chỗ.
 SM: bộ nhớ chia sẻ không cho phép nhiều ghi và đọc.
 TC: kết nối cặp chặt chẽ (phụ thuộc vào nhau): C.mmp, Burroughs D825, Cray-2,
S1, Cray X-MP, HEP, PluribusC.
 LC : kết nối cặp lỏng lẻo: IBM 370/168 MP, Univac 1100/80, Tandem/16, IBM
3081/3084, C.m*, BBN Butterfly.
 UC : không kết nối: Meiko Computing Surface, FPS T/40000, iPSC.
Với MIMD có thêm phân chia:
 Bit-sliced MIMD: là các máy tính loại MIMD với các bộ xử lý chỉ thực hiện trên
1 bit trong một chu kỳ lệnh: Bit-sliced machines include; STARAN, MPP, DAP,
CM-1.
 Word-sliced MIMD: là các máy tính loại MIMD với các bộ xử lý thực hiện trên
toàn bộ một từ trong một chu kỳ lệnh: ILLIAC-IV, PEPE, BSP.
2.2. Các loại kết nối tĩnh của mạng kết nối

Các loại cấu hình kết nối tĩnh của mạng kết nối N
Phân biệt kết nối tĩnh(cố định) và động(nhờ chuyển mạch).
1. Một số thông số cấu hình của cấu hình mạng kết nối
 Độ phức tạp liên kết: toàn bộ số liên kết trong mạng.
 Cấp độ của nút (node degree): Số nút liên kết với một nút (number of
incident nodes).
 Đường kính của mạng (network diameter): khoảng cách định tuyến dài nhất
trong mạng giữa 2 nút (hay độ dài của tuyến dài nhất trong mạng (maximum
8
routing distance, hay maximum hop distance).
 Khoảng cách trung bình (average distance): là khoảng cách định tuyến trung
bình giữa tất cả các cặp nút (average routing distance hay average hop distance).
 Độ rộng chia đôi (bisection width): số tối thiểu các liên kết mà sự lấy chúng
ra khỏi mạng sẽ tách mạng và cắt mạng thành 2 nửa.
 Độ phức tạp sinh trưởng (growth complexity): số nút có thể được bổ xung
thêm.
2. Bus chia sẻ đơn (single shared bus)
Kiểu bus đơn này được sử dụng nhiều trong các hệ thống máy kiến trúc Von
Neumann cổ điển với một bus hệ thống. Nhưng một nhược điểm lớn là khi số lượng
các thành phần xử lý và thành phần nhớ tăng lên sẽ làm tăng đụng độ cạnh tranh chiếm
bus, dẫn đến tăng thời gian chờ đợi được phục của các thành phần xử lý và thành phần
nhớ, và tốc độ truyền thông bị suy giảm. Khi đó cần phải tăng tốc độ bus. Độ sẵn sàng
của kết nối bus thấp.
3. Nhiều Bus (multi-bus)
Mạng nhiều Bus khắc phục nhược điểm của Bus đơn, trong đó, một số thành
phần xử lý và thành phần nhớ kết nối với một Bus, những thành phần xử lý và thành
phần nhớ khác lại kết nối với một Bus khác, hoặc có chúng kết nối cùng trên một số
Bus, như vậy sẽ giảm quá tải cho các Bus, sự đụng độ truy nhập Bus giảm tối thiểu.
Nhược điểm của mạng: khi có sự cố xảy ra đối với một Bus nào đó, thì hiệu xuất mạng
giảm đi rõ rệt và lỗi tăng lên.

4. Các Bus giao nhau (crossbar buses)
Trong cấu trúc kết nối Bus giao nhau, mỗi thành phần xử lý kết nối với tất cả
thành phần nhớ và tương tự, mỗi thành phần nhớ kết nối với tất cả thành phần xử lý.
Như vậy ta có một kết nối kiểu ma trận hai chiều n x m. Cấu trúc này khắc phục nhược
điểm của cấu trúc nhiều Bus. Trường hợp xấu nhất có thể xảy ra: nếu tất cả các thành
phần xử lý cùng truy nhập vào một thành phần nhớ. Kết nối này đã được áp dụng một
số hệ thống máy tính lớn.
5. Chuỗi (Linear Array): Cấu trúc chuỗi (chain) là một mảng tuyến tính (linear
array) các bộ xử lý (gồm CPU, memory, I/O), nên thường được
9
gọi là cấu trúc mảng tuyến tính, có các kết trực tiếp chỉ với các nút xử lý kề cận trung
gian.
Cấu trúc chuỗi khác với cấu trúc bus đơn ở chỗ không phải tất cả các nút đều có thể
đọc tất cả các bản tin. Đặc biệt, các nút trong khoảng ‘xuôi dòng’ từ nguồn và ‘ngược dòng’
từ đích sẽ không có cơ hội đọc bản tin. Điều này làm khó khăn thực hiện chuyển các bản tin
toàn cục. Một điều khác biệt với cấu trúc bus nữa là chuỗi cho phép một số các gói của bản
tin đồng thời được vận chuyển đảm bảo chúng không gối đè lên nhau.
6. Kết nối hình cây: Cấu trúc hình cây có dạng giống với các cây tự nhiên.
Chúng bắt đầu với một nút ở đỉnh gọi là gốc (root). Nút gốc kết nối với các nút khác
nhờ các cành. Những nút ở cành lại kết nối với các nút nhờ các cành rẽ tiếp tạo ra một
cây có nhiều cành cao và thấp, hay một cấu trúc kết nối các nút xử lý đa tầng. Một nút
xử lý ở một tầng kết nối truyền thông trực tiếp với một nút ở tầng trên và một số nút xử
lý ở tầng dưới.
Cấu trúc cây có một số loại:
 Cây nhị phân: Trong cây nhị phân, hay còn gọi là cây nhị phân đầy đủ, mỗi
một nút xử lý ở một tầng (trừ gốc) có 3 nút kề cận: 1 nút cha và 2 nút con. Giữa hai nút kề
cận chỉ một đường dẫn duy nhất và là liên kết 2 chiều. Nếu có cây nhị phân có tổng số N
nút, trong đó có n nút bên trong (kể cả gốc), thì nó có các thông số như sau: n+1 nút kết
thúc (ngọn), tổng số nút N = 2n+1, cấp độ của nút là 3, số liên kết L=2n-1, chiều cao h (số
tầng) là h ≥ log

2
(n+1) và n = 2
h
– 1, độ rộng chia đôi là 1, và đường kính của cây là
)12(log2log2
22
 nND
.
Kết nối hình cây đơn giản, có thể thực hiện đánh địa chỉ nhị phân cho các nút, đơn
giản được thuật toán định tuyến. Các nút Hạn chế của cây nhị phân là có tốc độ trao đổi
chậm, càng lên cao trễ càng lớn và nghẽn nút cổ chai. Các nút con trao đổi với nhau phải
thông qua nút cha. Khi có sự cố xảy ra ở nút cha thì sẽ làm mất đi liên hệ với các nút con,
dẫn tới sự loại bỏ nhiều đơn vị xử lý trong nhánh. Tuy vậy, dạng cấu trúc kết nối này vẫn
được sử dụng ở một số hệ thống máy tính.
 Cây tam phân: Trong cây tam phân (ternary tree) mỗi một nút (trừ gốc) có 4
nút kề cần: 1 nút cha, 3 nút con. Nếu có n nút bên trong (kể cả gốc) thì có 2n +1 nút ngọn,
cả cây có N= 3n+1 nút, 3n-1 cành, và chiều cao h ≥ log
3
(2n+1). Cây tam phân có ưu điểm
hơn cây nhị phân là có nhiều nhánh cây hơn, do đó kết nối được nhiều nút con hơn, nhưng
10
cũng như cây nhị phân nhược điểm lớn của nó lại càng lên cao càng gia tăng sự chậm chế và
nghẽn nút cổ chai.
 Cây béo: Cây béo là một cách khắc phục nhược điểm nghẽn nút của các cây
nhị phân, tam phân bằng cách bổ xung thêm các kết nối giữa các nút con ở cùng tầng dưới
(trừ các nút ở các cành ngoài) nhưng thuộc các nút cha khác nhau ở tầng trên.
 Cây X: Cây X cũng là một cách khắc phục nghẽn nút cổ chai bằng bổ xung
thêm một kết nối giữa 2 nút ở cùng tầng dưới nhưng thuộc 2 nút cha ở tầng trên. Các cây X
và béo không còn là các cây rẽ nhánh (disjoint) vì có các vòng lặp.
 Cây hình chuỗi hạt: Một trong những vấn đề lớn trong các cấu trúc cây ở trên

là tìm kiến và phân loại (sort). Các thuật toán tìm kiếm có thể thực hiện tốt ở trong cây hình
chuỗi hạt (diamon tree) . Trong cây chuỗi hạt, số lượng các nút N thỏa mãn công thức tổng
của cấp số nhân (sum of geometric progression): N = (d
W
- 1)/(d - 1)
Trong đó số lượng các nút N tăng theo độ sâu (hay chiều cao) của cây là W, hay theo
sự tăng của hệ số phân đầu ra của nút (fan-out), d. Số lượng các liên kết của cây chuỗi hạt
được tính bằng: L = (d
W
- d)/(d - 1)
Độ phức tạp sinh trưởng G của cây được tính theo : G = (d-1)/(N+1)
Độ phức tạp sinh trưởng của các loại cây là cao so với các cấu trúc khác.
 Cây có cấu trúc không thống nhất: Các cây cấu trúc kim tự tháp (pyramid) là
một tập hợp con của cấu trúc cây. Kim tự tháp có thể có được từ vẽ lại một cây tứ phân
(quaternary tree). Tất cả các đặc tính cấu hình của cây kim tự tháp tương tự như cây tứ
phân.
7. Vòng (1D-Torus): Nhược điểm của cấu chuỗi có thể được khắc phục bằng cấu
trúc vòng (Ring). Tất cả các nút xử lý có thể truyền thông với nhau ngay cả nếu các bản tin
chỉ có thể chuyển theo một hướng. Nếu vòng có N nút thì nó cũng có N liên kết (hay độ
phức hợp liên kết bằng N), nghĩa độ phức tạp liên kết phụ thuộc số nút, O(N). Vòng có thể
vận chuyển các bản tin theo cả hai hướng. do đó nó là vòng 2 chiều. Thường có tuyến dài
và tuyến ngắn giữa các nút truyền thông với nhau. Thuật toán định tuyến thực hiện định
tuyến theo tuyến ngắn nhất nếu tuyến đó đang rỗi. Vòng có mức phức tạp O(N). Đường kính
của mạng vòng D = N/2 nếu liên kết 2 chiều (số N chẵn), và D = N-1 nếu lên kết chỉ một
11
chiều (số N lẻ). Cấp của tất cả nút trong mạng vòng là 2. Khoảng cách trung bình (N +1)/3,
độ rộng chia đôi (bisection width): 2.
Vòng có các đặc tính tương tự như chuỗi và không phù hợp cho các hệ thống máy
tính song song với nhiều bộ xử lý. Nó phù hợp cho kết nối LAN của các bộ xử lý có kết nối
lỏng lẻo và truyền thông không thường xuyên.

8. Vòng sợi dây: Vòng sợi dây (chordal ring) là một cấu hình mở rộng thêm các kết
nối giữa các cặp nút trong tập hợp gồm các nút ở cách xa nhau.
9. Các cấu hình lưới: Vòng sợi dây có ưu điểm so với vòng 2 chiều là nó có ‘cắt
ngắn’ (short cut) trong đường dẫn giữa các nút khác nhau. Đường kính của vòng sợi dây là
một hàm phụ thuộc vào số nút trong vòng và ‘độ dài’ của dây. Có một số tuyến cho bản tin
tới đích, nhưng thuật toán định tuyến phức tạp hơn. Nếu vòng sợi có tổng số nút là n thì
tổng số liên kết là 2n. Máy tính song song ILLIAC-IV có mạng kết nối cấu trúc vòng sợi
gồm 64 nút, trong đó các sợi dây kết nối các cặp nút cách xa 9 nút.
Các cấu hình lưới là các kết nối các nút theo các mẫu đan lưới theo 2, hoặc 3 hướng.
Có nhiều loại cấu hình lưới: luới vuông (grid, mesh), lưới 6 cạnh (hexagonal grid), lưới
vòng (torus), lưới toroidal (toroidal grid), lưới 3 chiều (3-D grid),…
 Lưới vuông (2D mesh):
Tổng số nút của lưới vuông là N, và n=2, là số chiều, p là số nút của một chiều lưới,
2
ppN
n

,
2/1
Np 
. Số liên kết là
)1(2)1(2
2/12/1
 NNppL
, đường kính là
)1(2)1(2)1(
2/1
 NppnD
, khoảng cách trung bình là
2/1

3
2
3/23/ Npnp 
, độ rộng
chia đôi là
2/11
Npp
d


. Cấp độ của nút từ
nd 2
. Độ phức tạp sinh trưởng là
12
2/1
N
.
Ví dụ, với nếu p = 5, ta có
255
2
N
,
40)1(2  ppL
,
8D
. Vì có nhiều đường dẫn
giữa nguồn và đích nên mạng có độ sẵn sàng cao, thuật toán định tuyến có nhiều lựa chọn
đường dẫn tối ưu. Mạng cũng cho dễ dàng mở rộng bởi các nút đang kết nối không phải
thay đổi phần cứng.
 Lưới vòng (2D Torus): Lưới vòng có cấu hình gồm một lưới vuông 2D và

thêm các cạnh bổ xung vòng quanh, do đó nó còn được gọi là Torus hay 2D Torus. Trong
lưới vòng (2D Torus) tất cả các nút đều có cấp độ d = 4 (4 kết nối) và nằm trên giao điểm
của các đường vòng quấn xung quanh từ trên xuống dưới, từ phải sang trái. Nó có số nút ít,
băng thông cao, tăng được không gian sử dụng cho các chip xử lý, và vì các vòng là thống
12
nhất nên thuật toán định tuyến đơn giản. Nếu số nút là N, n là số hướng, p là số nút của một
chiều lưới, thì 2D torus có:
2
ppN
n

, trong đó
2n
, số liên kết là
NpL 22
2

, cấp
độ của nút là d=2n=4, đường kính
2/1
NpD 
, khoảng cách trung bình là
2/1
2
1
N
, và độ
rộng chia đôi (bisection width) là
2/1
22 Np 

. Ví dụ, với p =5, thì với 2D Torus có
255
2
N
,
502
2
 pL
,
5
2/1
 ND
.
 Lưới 6 cạnh: Lưới 6 cạnh có những đặc điểm tương tự như lưới vuông, nhưng
khác ở chỗ tất cả các nút có cấp độ 3, ngoại trừ 2 nút ở biên vì chúng có cấp độ 2. Độ phức
hợp nút là N = 2p
2
+4p, trong đó, p là số khối 6 cạnh (hexagon) dọc theo một góc. Độ phức
hợp liên kết bằng L = N+p
2
-1 = 3p
2
+4p-1. Đường kính D = 4p-1. Mỗi một lần tăng theo p
bổ xung thêm 4p+6 nút (độ phức hợp sinh trưởng).
 Luới 3D (3D mesh)
 Lưới vòng 3D (3D torus)
10. Hình sao: Cấu trúc hình sao là trường hợp phát sinh từ cấu trúc cây, nhưng chỉ
có độ sâu (hay chiều cao) là 2. Nút gốc của cây trở thành nút trung tâm của cấu trúc hình
sao. Nút trung tâm hoạt động như một nút chuyển mạch thực hiện định tuyến và chuyển tiếp
các bản tin từ một nút đến các nút khác. Các nút đầu cuối chỉ liên kết với nhau qua nút trung

tâm, do đó chúng có cấp độ là 1, và sự cố ở nút gốc làm mạng không thể hoạt động. Nếu
tổng số nút trong mạng là n thì nút gốc có cấp độ bằng n-1. Thuật toán định tuyến đơn giản.
Để tăng độ sẵn sàng cần tăng độ tin cậy và khả năng chịu lỗi của nút trung tâm.
11. Mạng kết nối siêu lập thể n chiều (n-dimensional hypercube): Kiến
trúc kết nối lập thể còn gọi là kết nối lập phương-n nhị phân (binary n-cube), vì nếu có
n chiều thì có 2n mặt và N = 2
n
nút kết nối trong khối lập phương, hay
Nn
2
log
,
đường kính
ND
2
log
, số liên kết
NNL
2
log
, độ rộng chia đôi là N/2. Cấp độ của
nút là
Nd
2
log
.
Trong siêu lập thể, một nút (hay đỉnh) là 0-D (hay 0-cube), một đường nối 2 đỉnh là
1D (hay 1-cube), một mạng vuông nối 4 nút gọi là 2D (2-cube), lập thể 3 chiều là 3D (3-
cube), và hai 3-cube nối với nhau gọi là 4D (4-cube),v.v
12. Kết nối đầy đủ: Trong kết nối đầy đủ FCN (full connected network), mỗi một

nút xử lý có liên kết với tất cả các nút còn lại. Như vậy, số lượng nút tăng thì số lượng liên
kết càng tăng nhiều và nhanh. Nếu mạng có N nút, thì tổng số liên kết L = N(N-1)/2. Tất cả
13
các nút đều có cấp độ bằng N-1. Đường kính là 1, khoảng cách trung bình là 1, độ rộng chia
đôi bằng:
2
)2/(N
nếu N chẵn, và bằng
)4/(
2
N
nếu N lẻ.
13. Các kết nối trực tiếp: Ngoài những kết nối có định dạng như các cấu hình
đã nêu ở trên, trong thực tế còn có các kết trực tiếp nhưng không có dạng chính tắc, như kết
nối trực tiếp, kết nối đua tranh (Hash-net) hay tuỳ tiện. Những cấu trúc này làm khó khăn
cho thuật toán định tuyến, vì vậy ít được sử dụng. Tuy nhiên chúng cũng được thiết kế cho
những bài toán đặc thù riêng.
2.3. Các loại cấu hình kết nối động của mạng kết nối
2.3.1 Các thành phần chuyển mạch:
Cấu trúc kết nối động có thể được xây dựng bằng sử dụng các thành phần chuyển
mạch 4-trạng thái. Mỗi một thành phần chuyển mạch có 2 đường vào và 2 đường ra để kết
nối với các thành phần chuyển mạch lân cận. Tất cả 4 đường (buses) giống nhau và có thể
làm việc như là các liên kết các bộ xử lý với nhau (processor-to-processor) hay các thành
phần xử lý với thành phần nhớ (procesor-to-memory). Trạng thái của thành phần chuyển
mạch được điều khiển bởi tín hiệu C, nó có các trạng thái:
 Trạng thái đi thông hay trực tiếp (direct): Z
1
= X
1
, Z

2
= X
2
 Trạng thái đấu chéo (cross) : Z
1
= X
2
, Z
2
= X
1.
 Trạng thái quảng bá dưới: Z
1
= Z
2
= X
1
.
 Trạnh thái quảng bá dưới: Z
1
= Z
2
= X
2
.
Thành phần chuyển mạch với cấu trúc là chuyển mạch biến đổi được sử dụng trong
các mạng chuyển mạch chịu lỗi. Một cặp ghép kênh (multiplexer) M và tách kênh
(demultiplexer) D được thêm vào cho từng thành phần chuyển mạch S 2x2, và có thể được
điều khiển để bỏ qua hoặc cho phép thành phần chuyển mạch S tham gia vào mạng chuyển
mạch.

Mạng chuyển mạch trong các hệ thống đa xử lý hiện nay sử dụng 3 kỹ thuật chuyển
mạch cơ bản để chuyển các gói tin từ nguồn tới đích:
 Chuyển mạch lưu và chuyển tiếp (store-and-forward switching).
 Chuyển mạch kênh (circuit switching).
 Chuyển mạch qua mặt cắt ảo (virtual cut-through switching).
 Định tuyến lỗ sâu (wormhole routing).
14
Chuyển mạch lưu và chuyển tiếp là kỹ thuật chuyển mạch gói cổ điển, trong đó, khi
một gói đến một nút trung gian, toàn bộ gói được lưu ở bộ đệm gói của nút trung gian. Ngay
khi kênh ra của nút trong gian sẵn sàng thì gói được đẩy chuyển tiếp đến nút tiếp theo. Kỹ
thuật này đơn giản, nhưng có các nhược điểm: Trước hết, việc lưu đệm các gói đòi hỏi phải
bổ xung bộ nhớ đệm ở các nút chuyển mạch và chi phí thêm thời gian lưu; thứ hai, trễ bản
tin tỷ lệ với khoảng cách giữa nguồn và đích, số nút trung gian càng nhiều thì trễ càng lớn.
Trong chuyển mạch kênh, một kênh được thiết lập giữa nguồn và đích trước khi
truyền bản tin. Ngay khi kênh được thiết lập, bản tin có thể được truyền đi mà không có sự
cạnh tranh nào và thời gian trễ thấp. Khoảng cách giữa nguồn và đích không ảnh hưởng
đáng kể đến trễ bản tin trong mạng chuyển mạch kênh.
Trong chuyển mạch qua mặt cắt ảo, các gói được lưu ở các nút trung gian chỉ khi
kênh tiếp theo chưa sẵn sàng cho chuyển tiếp, nếu không, các gói được chuyển tiếp ngay mà
không lưu đệm trung gian. Như vậy giảm đáng kể các trễ bản tin.
Trong kỹ thuật chuyển mạch qua mặt cắt ảo sử dụng định tuyến lỗ sâu (wormhole
routing), trong đó, một gói được chia ra một số chỗ di chuyển (flit). Một flit đầu dẫn dẫn
tuyến đường.
2.3.2 Mạng chuyển mạch nhiều tầng
Bằng các cách thiết lập các tín hiệu điều khiển cho các thành phần chuyển mạch S, ta
có thể có một số lượng lớn các mẫu kết nối mạng (mẫu kết nối động). Số lượng mẫu kết nối
động phụ thuộc vào số tầng (cột) kết nối và trạng thái của các thành phần chuyển mạch.
2.3.3 Mạng chuyển mạch chịu lỗi
2.3.4 Mạng chuyển mạch đấu chéo: Mạng chuyển mạch đấu chéo sử dụng các thành
phần chuyển mạch tại giao điểm của các liên kết dọc và ngang. Các trạng thái của các thành

phần chuyển mạch được điều khiển để đáp ứng yêu cầu kết nối của từng cặp thành phần xử
lý và thành phần nhớ. Ví dụ, máy tính BBN TC-2000, IBM RP3 sử dụng kết nối mạng
chuyển mạch động nhiều tầng. Các siêu máy tính máy tính Cray Y-MP/816, Fujitsu VPP500
sử dụng mạng chuyển mạch kết nối chéo.
2.4. Kết luận chương: Qua chương này, chúng ta đã có cái nhìn chi tiết về cấu trúc các
mạng kết nối của hệ thống đa xử lý ảnh hưởng đến hiệu năng siêu máy tính, cách phân loại
các loại cấu trúc theo Flynn, các loại kết nối tĩnh của mạng kết nối, các loại cấu hình kết nối
động của mạng kết nối.
15
Chương 3 – ĐÁNH GIÁ ẢNH HƯỞNG CỦA CẤU TRÚC MẠNG KẾT
NỐI ĐẾN HIỆU NĂNG SIÊU MÁY TÍNH
3.1. Luật Amdahl
3.1.1 Công thức Luật Amdahl tổng quát
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 ra luật này năm 1967) để tìm kiếm sự
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ý.
Thời gian thực hiện một chương trình 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) là: Thời gian liên quan
cho thực hiện song song (parallel overhead) như: các thao tác truyền thông (thời gian khởi
tạo và kết thúc quá trình hay các luồng, đồng bộ quá trình hay các luồng, truyền thông giữa
các quá trình hay các luồng), thời gian chờ đợi của bộ xử lý và các tính toán dư thừa.
Overhead của xử lý song song thường là hàm tăng của số lượng bộ xử lý. Nó tăng theo số

bộ xử lý.
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.
)()()1,( pTpTpT
parseq

- Tổng 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ý).
),(
)(
)(),( np
n
pT
pTnpT
par
seq


- 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ý.
Biểu thức mức tăng tốc là:
),(
)(
)(
)()(
),(
np
n
pT
pT

pTpT
npS
par
seq
parseq




Hiệu năng
),( npE
:
16
- Là số đo mức sử dụng của bộ xử lý
- Là tỷ số của mức tăng tốc S(p,n) trên n bộ xử lý được sử dụng đối với một
chương trình kích thước p:
nnpSnpE /),(),( 
được xác định bằng:
)),(/)()((
)()(
),(
npnpTpTn
pTpT
npE
parseq
parseq





),()()(
)()(
),(
npnpTpnT
pTpT
npE
parseq
parseq




Dễ dàng nhận thấy :
1),(0  npE

0),( np

nên từ công thức
),(
)(
)(
)()(
),(
np
n
pT
pT
pTpT
npS
par

seq
parseq




ta có :
npTpT
pTpT
np
n
pT
pT
pTpT
npS
parseq
parseq
par
seq
parseq
/)()(
)()(
),(
)(
)(
)()(
),(








(3.1)
Cho rằng f là phần tuần tự vốn có của chương trình (phải thực hiện tuần tự),










 1
1
)()(;
)(
)()(;1
)()(
)(
0
f
pTpT
f
pT
pTpT
pTpT

pT
f
seqpar
seq
parseq
parseq
seq
và overhead truyền thông
0),( npk
, thì Luật Amdahl xác định mức tăng tốc
),( npS
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à:
nff
npS
/)1(
1
),(


(3.2)
Và khi số bộ xử lý
n
thì mức tăng tốc cực đại đạt được là :
f
npS
n
1
),(lim 

(3.3)

Biểu thức mức tăng tốc tối đa (3.3) 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.
17
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à:











n
k
k
k
S
P
Speedup
0
1
(3.4)
Trong đó:
k
P

là phần trăm của các lệnh được nâng tốc độ (hoặc chậm đi).
k
S
là số nhân tăng tốc (trong đó 1 là không thay đổi tốc độ: không nhanh hơn và
không chậm đi).
k
là chỉ số của từng phần của chương trình.
n
là 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: P
1
= 0,11 hay 11%, P
2
= 0,18
hay 18%, P
3
= 0,23 hay 23%, P
4
= 0,48 hay 48%. Cho rằng, phần P
1
không thực hiện tăng
tốc, như vậy S
1
= 1 hay 100%, P
2
được tăng tốc lên 5x, như vậy S
2
= 5 hay 500%, P
3
được

tăng tốc lên 20x, như vậy S
3
= 20 hay 2000%, và P
4
được tăng tốc lên 1,6x, như vậy S
4
= 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
1
4
1













n
k
k
k
S
P
S
P
S
P
S
P
S
P
Như vậy, với Luật Amdahl (3.10) 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).
3.1.2 Luật Amdahl với sự tăng tốc trong một chương trình tuần tự
Cho rằng một chương trình thực hiện (task) 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ộ task. 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 sự tăng tốc của task lên đáng kể.
Mức tăng tốc tối đa đạt được của một chương trình (task) tuần tự nhờ một 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
S


)1(
1
(3.5)
18
Như vậy, nếu f nhỏ thì mức tăng tốc đạt được không cao. Nếu
s
thì mức tăng
tốc đạt tới
)1/(1 f
.
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 Y nếu:
100
1
T
XoftimeexecutionCPU
YoftimeexecutionCPU

(3.6)
Đối với trường hợp sử dụng
n

bộ xử lý (hay lõi xử lý) để thực hiện song song phần f
để đạt được mức tăng tốc
ns 
, trong khi vẫn giữ nguyên phần tuần tự
)1( f
thì công thức
(3.12) được viết là:
n
f
f
S


)1(
1
(3.7)
Luật Amdahl về mức tăng tốc tối đa (công thức 3.7) bỏ qua thành phần trễ truyền
thông. Thực tế trong các hệ thống siêu máy tính có hàng trăm nghìn nút xử lý, do đó trong
tính toán các ứng dụng song song các tiến trình nằm trên các nút phải trao đổi dữ liệu cho
nhau và điều đó phải tính đến trễ truyền thông giữa chúng. Trễ truyền thông trong các ứng
dụng tính toán song song trên siêu máy tính là 1 thành phần ảnh hưởng đến tốc độ thực hiện
chương trình. Vì vậy khi đánh giá hiệu năng của hệ thống siêu máy tính đã có nhiều công
trình nghiên cứu xét đến vấn đề này. Do đó, trong phần này tôi cũng muốn đưa ra giải pháp
đánh giá hiệu năng siêu máy tính với ảnh hưởng của cấu trúc mạng liên kết các nút xử lý
nhờ sử dụng luật Amdahl mở rộng.
3.1.3 Hiệu ứng Amdahl
Đố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.
 Thời gian
),( np


có sự phức hợp thấp hơn so với
)(pT
par
 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
),( np

.
 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ự f
giảm.
19
3.2 Ứng dụng luật Amdahl để đánh giá hiệu năng của kiến trúc siêu máy tính
Một trong những kiến trúc siêu máy tính phổ biến đó là kiến trúc nhóm các Destop
Server CPU + GPU. Do đó, để minh họa cho giải pháp sử dụng luật Amdahl mở rộng, ở đây
chọn đánh giá ảnh hưởng của mạng liên kết các nút xử lý CPU + GPU trong các liên kết
nhóm.
Một chương trình gồm phần có thể thực hiện song song và phần tuần tự vốn có. Tỷ lệ
thời gian thực hiện phần tuần tự là 1-f và tỷ lệ thời gian thực hiện phần song song là f . Khi
đó T - là toàn bộ thời gian thực hiện chương trình trên một nút xử lý,
TssTT )1( 
.
Trong đó,
sT
là thời gian thực hiện phần tuần tự và
Ts)1( 
là thời gian thực hiện phần
song song. Trên hệ thống tính toán song song gồm nhiều nút xử lý phần song song có thể
được phân ra n module chạy song song trên n nút xử lý, do đó thời gian thực hiện phần song
song là

nTs /)1( 
. Tổng thời gian thực hiện chương trình trên hệ thống gồm n nút xử lý
phải là
nTssTT
P
/)1( 
. Khi đó, Luật Amdahl xác định mức tăng tốc tối đa không tính
đến overhead song song:
nssnTssT
TssT
T
T
S
P
/)1(
1
/)1(
)1(





(3.8)
Overhead song song, gọi là
O
T
- không phải là thời gian tính toán hữu ích mà nó gồm:
thời gian khởi động các nhiệm vụ (tạo ra các nhiệm vụ song song và chuyển đến các nút xử
lý song song), các đồng bộ (thiết lập điểm đồng bộ trong một chương trình mà ở đó một

nhiệm vụ có thể không tiếp tục nữa cho đến khi các nhiệm vụ khác đạt được điểm đồng bộ.
Sự đồng bộ luôn kéo theo sự chờ đợi của ít nhất một nhiệm vụ, bởi vì các nhiệm vụ chạy
trên từng bộ xử lý có thể được phân tải không đều, và do đó có thể làm cho thời gian thực
hiện chương trình 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 kết
thúc thực hiện của bộ xử lý cuối cùng tăng lên – thời gian tường chắn – wall time), thời gian
truyền dữ liệu giữa các quá trình, 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, hệ điều hành, và các tính toán dư thừa, thời gian kết thúc nhiệm vụ.
Thông thường các chương trình chạy trên hệ thống song song mà phần song song
gồm các nhiệm vụ chạy trên từng bộ xử lý và chúng trao đổi dữ liệu với nhau một cách
đồng bộ. Loại chương trình này phải chi phí nhiều overhead hơn. Lấy ví dụ minh họa một
chương trình có các mô đun song song chạy trên một số nút xử lý (P0 P7) cho ở hình 3.4.
20
Hình 3.4. Overhead do truyền thông giữa các nút xử lý qua mạng liên kết
Nút xử lý P0 đảm nhiệm tính toán kết quả cuối cùng sau khi đã nhận được các kết quả
tính trung gian từ các nút xử lý khác qua mạng liên kết. Overhead song song
O
T
ở đây gồm:
trễ do phải chờ đợi đồng bộ giữa các nhiệm vụ thực hiện trên các nút xử lý, thủ tục thiết lập
và truyền dữ liệu (thể hiện bằng mũi tên) giữa các nút xử lý. Do đó thời gian thực hiện
chương trình trên hệ thống tính toán song song là:
OP
T
n
T
ssTT  )1(
(3.9)
Và mức tăng tốc- mở rộng của Luật Amdahl:
T
T

n
s
s
T
T
S
O
P




1
1
(3.10)
Trong đó, n là số nút xử lý, s – tỷ lệ thời gian thực hiện phần tuần tự, T- thời gian
thực hiện chương trình trên một nút xử lý,

O
T
là overhead song song của hệ thống.
Đối với một xử lý CPU+GPU, thì mức tăng tốc tốc đạt được nhờ các GPU – đóng vai
trò của các bộ tăng tốc nhờ chúng có số lõi luồng rất lớn. Như vậy nếu một hệ thống song
song gồm có

CL
N
cluster và mỗi cluster có
CLGPUCPU
N

/
nút xử lý CPU+GPU, mỗi nút có
số lượng GPU là
NodeGPU
N
/
, và mỗi GPU có
GPUCores
N
/
lõi xử lý, thì công thức mức
tăng tốc tôi đề xuất với tổng số nút
GPUCoresNodeGPUCLGPUCPUCL
NNNNn
///


dạng:
T
T
NNNN
s
s
S
O
GPUCoresNodeGPUCLGPUCPUCL













 ///
1
1
(3.11)
Chờ đợi đồng bộ và
bắt tay truyền thông
Thời gian tính toán
Thời gian truyền
thông
P0
P1
P2
P3
P4
P5
P6
P7
Thời gian thực hiện hiện
datasw
tt 
Rec. ack
syn

t
21
Đối với một cluster có
CLGPUCPU
N
/
nút xử lý, thì mức tăng tốc đạt được:
T
T
NNN
s
s
S
clusterOIntra
GPUCoresGPUCLGPUCPU
cluster















//
1
1
(3.12)
Trong đó,

clusterOIntra
T
overhead trong một cluster.
Ví dụ, nếu một nút xử lý CPU+GPU sử dụng 2 Fermi GPU M2070 với 448 lõi cuda,
và cluster có
32
/

 CLGPUCPU
N
thì
)448)(2)(32)(1(
///

 GPUCoresNodeGPUCLGPUCPUCL
NNNNn
.
Một hệ thống có thể có nhiều cluster liên kết với nhau theo một cấu hình mạng kết
nối nào đó của nhiều switch, mỗi cluster lại có thể gồm một hay một số switch liên kết theo
một cấu hình có thể khác hoặc giống như liên kết các cluster. Overhead song song phụ
thuộc vào công nghệ mạng (ethernet, infiniband, ), cấu hình đấu nối (cây nhị phân, cây béo,
2D-mesh, 2D-Torus, 3D-mesh, 3D-Torus, Hypercube, ), kích thước bản tin (dữ liệu
truyền), giao thức truyền thông (MPI, ). Do đó tôi đề xuất công thức tính overhead song
song trong một cluster như sau:

)(
dataswsynWclusterIntraclusterOIntra
tttwNHT 

(3.13)
Trong đó, N- tổng số switch trong mạng của cluster; degree (d): cấp độ của nút- là số
nút (N) liên kết với một nút (bảng 1); Average distance (H) - khoảng cách định tuyến trung
bình giữa tất cả các cặp nút switch (average routing distance -hay average hop distance);
Bisection width (B) - độ rộng chia đôi số lượng các liên kết của lát cắt nhỏ nhất mà nó tách
mạng thành hai nửa bằng nhau.
Công thức (3.13) cho thấy sự phụ thuộc của overhead đến cấu hình mạng liên kết
(

clusterIntra
H
khoảng cách định tuyến trung bình trong cluster), kích thước bản tin dữ liệu
(w, Nw), công nghệ mạng (

sw
t
trễ ở nút switch; số lượng switch trong một cluster,

data
t
thời gian truyền một từ dữ liệu), và giao thức truyền thông (

syn
t
trễ do chờ đợi đồng bộ và
bắt tay truyền thông). Ví dụ, cho rằng thuật toán song song của chương trình đảm bảo có sự

cân bằng tải nên
syn
t
có thể bỏ qua, sử dụng Mellanox SX6036 36-port FDR 56Gb/s
infiniBand/VPI Switch Systems [8] có
nst
sw
170
;
ns
Gbps
t
data
018.0
56
1

, như vậy
22
có thể bỏ qua
data
t
, và trễ truyền thông chủ yếu rơi vào
st
sw

17.0
. Khi đó công thức
(4.6) áp dụng cho cluster sử dụng các Mellanox Infiniband switch có thể xấp xỉ bằng:
))(17.0( wNHsT

WclusterIntraclusterOIntra 


(3.14)
Nếu cluster chỉ dùng một switch thì giá trị
1
clusterIntra
H
, cấu hình mạng của
cluster là star, khi đó,
))(17.0( wNsT
WclusterOStarIntra



. Nếu có
cluster
N
đấu nối với nhau
theo một cấu hình liên kết nào đó thì tổng overhead của toàn hệ thống gồm hai cấp mạng
liên kết các clusster được đề xuất ở đây là:
clusterOIntraclusterOInterO
THT


(3.15)
Cho rằng có
16
cluster
N

cluster đấu nối cấu hình 3D-torus, mỗi cluster có một
switch (cấu hình liên kết star), khi đó:
))(32.0())(17.0(16
4
3
3
3
wNwNTHT
WWclusterOStarIntratorusDO









(3.16)
Nếu cluster có cấu hình 2D-mesh gồm 4 switch và tất cả 16 cluster nối theo cấu hình
2D-torus thì:
wNwNwNHHT
WWWmeshDtorusDO
45.0)(4
3
2
)17.0(16
2
1
))(17.0(

22















Mạng liên kết cấu hình 3D-torus cho trễ nhỏ và cấu hình ring cho trễ cao hơn so với
các mạng còn lại, điều này cho thấy một số siêu máy tính sử dụng cấu hình này (Cray T3E).
Tùy thuộc vào số nút xử lý CPU+GPU, có thể lựa chọn cấu hình liên kết của cluster ở từng
lớp khác nhau để đạt được overhead nhỏ và tối ưu cho hệ thống tính toán song song. Cho
rằng chương trình có tỷ lệ thực hiện phần tuần tự là 0.01, chạy trên hệ thống song song gồm
16 cluster 3D-torus và mỗi cluster có kết nối
32
/

 CLGPUCPU
N
nút xử lý với 2 Fermi
GPU M2070 448 lõi cuda, thì công thức (3.11) được viết thành:
T

TT
S
clusterOStarIntratorusD 


3
)448)(2)(32)(16(
99.0
01.0
1
Cho rằng một chương trình có thời gian thực hiện trên một nút xử lý CPU+GPU là T =
1 ms, và thuật toán song song chạy trên hệ thống song song mà sự trao đổi dữ liệu giữa các
luồng/nút xử lý CPU+GPU bằng các bản tin có w = 1, và Nw = 64, thì:
23
33
03048217.0
1
)(10
))(64)(32.0(
)10)(17.2(01.0
1
3
6




us
us
S

(3.17)
Công thức (3.17) cho thấy mức tăng tốc chỉ đạt 33 lần so với mức tăng tốc đạt gần
100 lần nếu bỏ qua overhead. Nếu thuật toán song song của chương trình đảm bảo thời gian
T trên nút xử lý CPU+GPU sao cho đạt tỷ lệ To/T và tỷ lệ s nhỏ nhất thì có thể đạt được
mức tăng tốc lớn nhất.
3.3 Kết luận chương
Với việc đưa vào công thức Luật Amdahl trễ của interconnect trên các chip đa lõi, và
xác suất định tuyến truyền thông giữa các lõi, ta có thể thấy được ảnh hưởng lớn đến hiệu
năng của các chip đa lõi. Xét ở mức ứng dụng, cõ thể thiết kế chương trình kiểm thử chạy
trên hệ thống CPU đa lõi với tỷ lệ phần tuần tự (1-f) và phần song song f phù hợp.

×