Tải bản đầy đủ (.docx) (200 trang)

nghiên cứu hệ thống cụm máy tính xử lý song song rocks và ứng dụng

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 (2.75 MB, 200 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
Bùi Ngọc Linh
NGHIÊN CỨU HỆ THỐNG
CỤM MÁY TÍNH XỬ LÝ SONG SONG
ROCKS
VÀ ỨNG DỤNG
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
Bùi Ngọc Linh
NGHIÊN CỨU HỆ THỐNG
CỤM MÁY TÍNH XỬ LÝ SONG SONG
ROCKS
VÀ ỨNG DỤNG
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hƣớng dẫn: TS. Nguyễn Trí Thành
HÀ NỘI - 2010
LỜI CẢM ƠN
Trƣớc hết, tôi xin bày tỏ lòng kính trọng và biết ơn sâu sắc tới Tiến sỹ Nguyễn Trí Thành,
ngƣời đã trực tiếp giảng dạy và tận tình giúp đỡ tôi trong quá trình làm khóa luận.
Tôi xin chân thành cảm ơn toàn thể các thầy cô giáo trƣờng Đại học Công nghệ - Đại học
Quốc gia Hà Nội đã tận tình chỉ bảo, dạy dỗ tôi trong suốt 4 năm học vừa qua.
Tôi xin chân thành cảm ơn thƣ viện Đại học Quốc gia Hà Nội, thƣ viện Hội sinh viên
trƣờng Đại học Công nghệ - Đại học Quốc gia Hà Nội đã giúp đỡ tôi rất nhiều tài liệu
quý báu trong quá trình học tập và nghiên cứu.
Cuối cùng, tôi xin chân thành cảm ơn gia đình và bạn bè, những ngƣời đã luôn động viên,
giúp đỡ tôi trong học tập cũng nhƣ trong cuộc sống.


i
TÓM TẮT NỘI DUNG
Tài liệu này giới thiệu sơ lƣợc về công nghệ xử lý song song nói chung và công
nghệ xử lý song song phân cụm nói riêng, sau đó tập trung nghiên cứu một hệ thống cụm
máy tính xử lý song song tiêu biểu: Rocks. Các nội dung chính đƣợc trình bày là: Các
kiến trúc xử lý song song SISD, SIMD, MISD, MIMD (theo phân loại của Flynn), cùng
các hệ thống tính toán đa nhân, các hệ thống đa xử lý đối xứng, các hệ thống tính toán
lƣới, tính toán cụm và các hệ thống xử lý song song cực lớn (Chƣơng 2); giới thiệu tổng
quan về kiến trúc và thành phần của hệ thống Rocks, hƣớng dẫn cài đặt, nghiên cứu kiến
trúc hệ thống và cách quản trị (Chƣơng 3); hƣớng dẫn lập trình MPI căn bản, phƣơng
pháp xây dựng ứng dụng MPI để đạt hiệu quả cao, tận dụng đƣợc tài nguyên hệ thống
(Chƣơng 4);
Chƣơng 5 của khóa luận trình bày chi tiết một ứng dụng xử lý song song tiêu biểu,
cùng cách thức thiết lập môi trƣờng và hƣớng dẫn biên dịch.
Phần cuối của tài liệu có trình bày 4 phụ lục, xem nhƣ là các nội dung mở rộng cho
những phần đã trình bày trong các chƣơng.
ii
MỤC LỤC
LỜI CẢM ƠN i
TÓM TẮT NỘI DUNG ii
MỤC LỤC iii
DANH MỤC BẢNG BIỂU vii
DANH MỤC HÌNH VẼ viii
CHƢƠNG 1. GIỚI THIỆU 1
CHƢƠNG 2. CÁC KIẾN TRÚC VÀ CÁC HỆ THỐNG XỬ LÝ SONG SONG 4
2. 1.
Các kiến trúc xử lý song song 4
2. 1. 1.
2. 1. 2.
2. 1. 3.

2. 1. 4.
SISD 6
SIMD 7
MISD 7
MIMD 8
2. 2.
Các hệ thống xử lý song song 8
2. 2. 1.
2. 2. 2.
2. 2. 3.
Các hệ thống tính toán đa nhân 8
Các hệ thống đa xử lý đối xứng 9
Các hệ thống tính toán phân tán 10
2. 2. 3. 1.
2. 2. 3. 2.
2. 2. 3. 3.
Các hệ thống tính toán lƣới 10
Các hệ thống xử lý song song cực lớn 12
Các hệ thống tính toán cụm 12
iii
CHƢƠNG 3. HỆ THỐNG ROCKS 16
3. 1.
Giới thiệu 16
3. 1. 1.
3. 1. 2.
3. 1. 3.
Tổng quan 16
Kiến trúc của HPC Cluster sử dụng Rocks 17
Rocks và Rolls 18
3. 2.

Cài đặt 20
3. 2. 1.
3. 2. 2.
3. 2. 3.
Cấu hình 20
Cài đặt frontend 20
Cài đặt hàng loạt các compute node 24
3. 3.
Kiến trúc hệ thống 25
3. 3. 1.
3. 3. 2.
3. 3. 3.
Quy tắc đặt tên của Rocks 25
Về cơ sở dữ liệu cluster 28
Về sơ đồ cơ sở, file cơ sở và quá trình cài đặt một compute node 34
3. 4.
Quản trị 39
3. 4. 1.
3. 4. 2.
3. 4. 3.
Tổng quan 39
Frontend quản trị cluster nhƣ thế nào? 40
Các tác vụ quản trị cơ bản 43
3. 4. 3. 1.
3. 4. 3. 2.
Cài đặt lại một compute node trong lần boot PXE tiếp theo 43
Xem và thay đổi các cấu hình mạng 48
CHƢƠNG 4. LẬP TRÌNH SONG SONG VỚI MPI 50
4. 1.
Các mô hình lập trình song song 50

4. 1. 1.
4. 1. 2.
Mô hình bộ nhớ chia sẻ 50
Mô hình đa luồng 51
iv
4. 1. 3.
4. 1. 4.
Mô hình truyền thông điệp 52
Mô hình song song dữ liệu 53
4
.
2
.
Các ƣu điểm của mô hình truyền thông
điệp 54
4.
2.
1.
4.
2.
2.
4.
2.
3.
4.
2.
4.
Phổ
biến
54

Khả năng mô
tả 54
Dễ gỡ lỗi
hơn 55
Hiệu
năng
55
4
.
3
.
4
.
4
.
4
.
5
.
4
.
6
.
4
.
7
.
4
.
8

.
4
.
9.
Giới
thiệu về
MPI








55
Mục
tiêu của
MPI








56
Các đặc điểm của
MPI


56
Khác biệt giữa các bản cài
đặt bằng C và C++ của
MPI
58
MPI trên
Rocks

58
Viết chƣơng trình Hello
World

59
Các hàm MPI cơ
bản

64
4. 8. 1.
4. 8. 2.
4. 8. 3.
4. 8. 4.
Hàm
MPI_Init

64
Hàm
MPI_Finalize

65

Hàm
MPI_Comm_size

65
Hàm
MPI_Comm_rank

65
4. 10.
4. 11.
4. 12.
4. 13.
Giá trị trả về của các hàm
MPI

66
Về các khái niệm Nhóm,
Ngữ cảnh và Bộ liên
lạc
66
Liên lạc giữa các tiến
trình

67
Xây dựng một ứng
dụng tự
trị

70
v

4. 14.
4. 15.
Về mối quan hệ giữa kích thƣớc bài toán và chi phí tính toán 75
Phƣơng hƣớng xây dựng một ứng dụng MPI 77
CHƢƠNG 5. CÀI ĐẶT THỬ NGHIỆM ỨNG DỤNG TRÊN HỆ THỐNG
ROCKS 78
5.
1.
5.
2.
5.
3.
5.
4.
Thiết lập môi
trƣờng 78
Mã nguồn ứng
dụng 79
Biên dịch và chạy ứng
dụng 86
Kết quả thử
nghiệm 86
CHƢƠNG 6. KẾT
LUẬN 89
PHỤ LỤC 1. SƠ LƢỢC VỀ CÁCH PHÁT TRIỂN ROLL
MỚI 90
PHỤ LỤC 2. LIÊN LẠC GIỮA CÁC TIẾN TRÌNH
MPI 99
PHỤ LỤC 3. SỬ DỤNG MPI ĐỂ TÍNH TÍCH
PHÂN 102

PHỤ LỤC 4. SỬ DỤNG MPI ĐỂ TÍNH TOÁN SỐ
PI 104
TÀI LIỆU THAM
KHẢO 109
vi
DANH MỤC BẢNG BIỂU
Bảng 1 – Tƣơng ứng các hàm MPI trong C và C++ 58
Bảng 2 – Các hằng số toán tử 106
vii
DANH MỤC HÌNH VẼ
Hình 1 – Các lĩnh vực ứng dụng của xử lý song song 2
Hình 2 - SISD 4
Hình 3 - SIMD 5
Hình 4 - MISD 5
Hình 5 - MIMD 6
Hình 6 – Xử lý đƣờng ống 5 giai đoạn 6
Hình 7 – Mô hình bộ xử lý 2 nhân 9
Hình 8 - SMP 9
Hình 9 – Mô hình lƣới tính toán 11
Hình 10 - MPP 12
Hình 11 – Thống kê về kiến trúc của 500 siêu máy tính 13
Hình 12 – Mô hình của HPC Cluster 14
Hình 13 – Rockstar cluster 15
Hình 14 – Kiến trúc của Rocks 17
Hình 15 – Một báo cáo sinh bởi Ganglia 19
Hình 16 – Màn hình khởi động 21
Hình 17 – Lựa chọn Roll (1) 22
Hình 18 – Lựa chọn Roll (2) 23
Hình 19 - Phân chia ổ 24
Hình 20 – Lựa chọn appliance type 25

Hình 21 – Vai trò trung tâm của cơ sở dữ liệu SQL 29
viii
Hình 22 – Thao tác trực tiếp với cơ sở dữ liệu cluster 32
Hình 23 – Minh họa trực quan một phần của sơ đồ cơ sở 35
Hình 24 – Quá trình sinh file cơ sở 36
Hình 25 – Nhận diện appliance mới 37
Hình 26 – Đã thêm appliance vào cơ sở dữ liệu 37
Hình 27 – Đã yêu cầu thành công file cơ sở 38
Hình 28 – File cơ sở 39
Hình 29 – Các node trong cluster 40
Hình 30 – Tạo cặp khóa private, public trong lần đầu khởi động terminal 41
Hình 31 – SSH tới compute-0-0 42
Hình 32 – Giá trị tham số action với các node trong cluster 43
Hình 33 – Các bootaction hiện có 44
Hình 34 – Thêm bootaction 45
Hình 35 – Các thuộc tính của node compute-0-0 46
Hình 36 – Thay đổi giá trị tham số installaction 46
Hình 37 – Giá trị tham số installaction thay đổi 47
Hình 38 – Loại bỏ một bootaction 48
Hình 39 – Xem các cổng ethernet 49
Hình 40 – Mô hình bộ nhớ chia sẻ 51
Hình 41 – Mô hình đa luồng 52
Hình 42 – Mô hình truyền thông điệp 53
Hình 43 – Mô hình song song dữ liệu 54
Hình 44 – MPI trên Rocks 59
ix
Hình 45 – Output của chƣơng trình Hello World (1) 61
Hình 46 – Output của chƣơng trình Hello World (2) 62
Hình 47 – Output của chƣơng trình Hello World (3) 63
Hình 48 – Output của chƣơng trình Hello World (4) 64

Hình 49 – Trƣớc khi chạy ứng dụng 87
Hình 50 – Sau khi chạy ứng dụng 88
Hình 51 – Output của hg clone 90
Hình 52 – Repository cục bộ 91
Hình 53 – Thƣ mục scratch của các Roll 92
Hình 54 – Thƣ mục scratch của Roll java 93
Hình 55 – Một phần sơ đồ cơ sở 95
Hình 56 – Minh họa việc liên lạc giữa các tiến trình 101
Hình 57 – Tính tích phân 103
Hình 58 – Tính toán số PI 104
x
CHƢƠNG 1. GIỚI THIỆU
“Đạt tới tốc độ tính toán 1 teraflop là bài toán lớn nhất trong khoa học máy tính
trong 2 thập kỷ qua. Chỉ mới 10 năm trước đây, những nhà lãnh đạo đáng tin cậy nhất
trong ngành công nghiệp tính toán còn nói rằng điều đó là không thể.” (Gil Weigand)
[45]
Nếu chúng ta đã từng dùng Google để tìm kiếm thông tin trên Internet, thì hẳn sẽ có
lúc chúng ta phải ngạc nhiên trƣớc tốc độ xử lý của cỗ máy tìm kiếm này. Mỗi một giây
qua đi, Google tiếp nhận tới hàng nghìn yêu cầu tìm kiếm, và mỗi yêu cầu tìm kiếm đó
cần phải đƣợc xử lý qua hàng chục tỷ phép tính với lƣợng dữ liệu truy cập lên đến hàng
trăm Megabytes. Ngoài một hệ thống cơ sở dữ liệu đƣợc thiết kế đặc biệt, cùng với
những thuật toán khai phá dữ liệu đƣợc tối ƣu hóa, thì bí mật đằng sau tốc độ xử lý của
Google chính là hệ thống các cluster với tổng cộng khoảng 15000 máy tính trên toàn thế
giới. Google tối thiểu hóa thời gian xử lý đối với mỗi yêu cầu tìm kiếm bằng cách tiến
hành xử lý song song mỗi yêu cầu đó. Điều này cũng có nghĩa là Google sẽ xử lý đƣợc
nhiều yêu cầu tìm kiếm hơn trong cùng một khoảng thời gian [6].
Google chính là một ví dụ điển hình về vai trò và sự thành công của xử lý song song
trong ngành công nghiệp tính toán nói riêng và trong cuộc sống nói chung. Trong thời đại
thông tin bùng nổ, con ngƣời càng ngày càng trở nên bận rộn thì nhu cầu của xử lý song
song ngày càng đƣợc nâng cao nhằm xử lý đƣợc một lƣợng dữ liệu lớn nhất trong thời

gian nhanh nhất có thể. Xử lý song song ngày càng đƣợc quan tâm trên thế giới vì 2 lý do
chính sau đây:
• Đạt đƣợc hiệu năng cao hơn trong khi tiết kiệm đƣợc thời gian và tiền bạc. Về lý
thuyết, càng đầu tƣ nhiều tài nguyên cho một nhiệm vụ nào đó thì càng rút ngắn
đƣợc thời gian thực hiện nhiệm vụ đó, đồng thời tiết kiệm đƣợc càng nhiều chi
phí. Hơn nữa, nhiều hệ thống xử lý song song có thể đƣợc xây dựng từ những
thành phần rẻ tiền và phổ biến.

Khả năng xử lý các bài toán lớn. Nhiều bài toán trong thực tế đòi hỏi tài nguyên
tính toán lớn đến mức không một máy tính đơn lẻ nào có thể đáp ứng nổi. Chẳng
1
hạn, các bài toán dạng "Grand Challenge" (Thách Thức Lớn) [16] nhƣ dự báo thời
tiết, giải mã bộ gene ngƣời, yêu cầu những tài nguyên tính toán đƣợc tính bằng
PetaFlops và PetaBytes [23].
Hình 1 – Các lĩnh vực ứng dụng của xử lý song song
Nguồn: [4]
Những nhu cầu này đã dẫn tới những cơ hội lớn cho xử lý song song, song những
thách thức đi kèm cũng không hề nhỏ. Cụ thể, sẽ khó khăn hơn trong việc phát triển các
phần mềm phục vụ cho xử lý song song do thiếu các môi trƣờng phát triển và các mô
hình lập trình thống nhất và hiệu quả. Việc phát triển thuật toán cũng khó khăn hơn do sự
phức tạp của việc xử lý các tác vụ đồng thời. Đó là chƣa kể đến sự phát triển nhanh
chóng của công nghệ phần cứng dẫn tới sự lạc hậu nhanh chóng của các kiến trúc xử lý
song song. Hệ quả gián tiếp của điều này chính là khả năng mở rộng của hệ thống bị giới
hạn, do các thuật toán xử lý song song hiện hành có thể không còn phù hợp với các kiế n
trúc phần cứng của tƣơng lai.
Tại Việt Nam, đã có một vài hệ thống xử lý song song đƣợc nghiên cứu thành công
và đƣa vào ứng dụng, đem lại hiệu quả bƣớc đầu, nhƣ hệ thống máy tính bó song song do
CADPRO thiết kế cho Trung tâm Quốc gia dự báo khí tƣợng thủy văn [2], hoặc các trung
2
tâm dữ liệu của FPT Telecom, CMC Telecom, Ngân hàng Sài Gòn Thƣơng tín –

Sacombank, Ngân hàng Đông Nam Á [3], … Tuy nhiên, số lƣợng không nhiều các hệ
thống xử lý song song kiểu này đã chứng tỏ xử lý song song chƣa thực sự phát triển mạnh
mẽ ở Việt Nam.
Xét về mặt công nghệ, việc xây dựng, quản trị và ứng dụng một hệ thống xử lý song
song cũng không phải dễ dàng. Thông thƣờng, chi phí phải trả cho việc quản trị một hệ
thống xử lý song song trong 1 năm còn cao hơn nhiều so với chi phí bỏ ra để mua cả hệ
thống. Ví dụ, một cluster có tốc độ tính toán 1 TeraFlops có chi phí vào khoảng 100
nghìn US$, gần bằng chi phí phải trả cho một ngƣời quản trị hệ thống trong một năm
[39].
Nghiên cứu về xử lý song song vì vậy không chỉ mang ý nghĩa khoa học, mà còn có
ý nghĩa thực tiễn rất lớn. Việc nghiên cứu về xử lý song song, từ lý thuyết cho đến ứng
dụng, không chỉ giúp chúng ta nắm đƣợc nền tảng công nghệ, mà còn giúp chúng ta nhìn
thấy tiềm năng to lớn của xử lý song song trong công nghệ nói riêng và các lĩnh vực kinh
tế quốc dân nói chung.
Khóa luận này tập trung nghiên cứu tổng quan về xử lý song song nói chung và
nghiên cứu cách thức cài đặt, quản trị, kiến trúc hệ thống và ứng dụng của hệ thống cụm
máy tính xử lý song song Rocks nói riêng. Ngoài ra, tài liệu còn đƣợc đi kèm với một số
ứng dụng MPI tiêu biểu, trong đó có ứng dụng chuyển đổi video mà nội dung chƣơng 5
chính là mô tả chi tiết.
3
CHƢƠNG 2. CÁC KIẾN TRÚC VÀ CÁC HỆ THỐNG XỬ
LÝ SONG SONG
2. 1.
Các kiến trúc xử lý song song
Vào năm 1966, Michael Flynn đã đƣa ra cách phân loại các kiến trúc xử lý song
song dựa trên sự khác nhau về các dòng trong tiến trình tính toán. Một dòng là một chuỗi
các đối tƣợng (nhƣ dữ liệu), hoặc hành động (nhƣ các chỉ dẫn). Các dòng là độc lập với
nhau. Mỗi một phần tử trong dòng có thể chứa một hoặc nhiều đối tƣợng hoặc hành
động. Trên cơ sở 2 dòng chính là dữ liệu và chỉ dẫn, Flynn đã đƣa ra 4 tổ hợp, đại diện
cho 4 kiểu kiến trúc xử lý song song khác nhau [8]:

• SISD (Single Instruction, Single Data Stream - Đơn dòng chỉ dẫn, đơn dòng
dữ liệu). Đây thực chất chính là kiến trúc Von Neumann [1, 43].
Hình 2 - SISD
Nguồn: [22]
• SIMD (Single Instruction, Multiple Data Stream - Đơn dòng chỉ dẫn, đa
dòng dữ liệu). Kiến trúc này bao gồm các bộ xử lý vectơ cũng nhƣ các bộ xử
lý song song cực lớn (MPP).
4
Hình 3 - SIMD
Nguồn: [22]
• MISD (Multiple Instruction, Single Data Stream - Đa dòng chỉ dẫn, đơn
dòng dữ liệu).
Hình 4 - MISD
Nguồn: [22]
• MIMD (Multiple Instruction, Multiple Data Stream - Đa dòng chỉ dẫn, đa
dòng dữ liệu). Kiến trúc này bao gồm các hệ đa vi xử lý truyền thống cũng
nhƣ các mạng máy trạm.
5
Hình 5 - MIMD
Nguồn: [37]
Mỗi một tổ hợp trên đây đặc trƣng cho một lớp kiến trúc máy tính, đồng thời tƣơng
ứng với một hình thức xử lý song song.
2. 1. 1.
SISD
Kiến trúc SISD là kiến trúc quen thuộc nhất, cũng là kiến trúc ít song song nhất.
Các hệ thống kiểu này chủ yếu xử lý theo kiểu đƣờng ống, trong đó các giai đoạn khác
nhau của tiến trình xử lý một chỉ dẫn đƣợc thực thi song song (kiến trúc này không song
song hóa các tiến trình mà song song hóa các giai đoạn của việc thực thi tiến trình).
Hình 6 – Xử lý đường ống 5 giai đoạn
Nguồn: [37]

Công nghệ cài đặt song song hóa các tiến trình xử lý chỉ dẫn đƣợc gọi là song song
hóa mức chỉ dẫn (ILP – Instruction Level Parallelism). Hai trong số các kiến trúc bộ xử
lý sử dụng phƣơng pháp này là superscalar (siêu thang bậc) và VLIW (Very Long
Instruction Word - Kích thƣớc word lớn). Các kiến trúc này lập lịch cho các tác vụ khác
nhau để thực thi một cách song song bằng cách phân tích sự phụ thuộc lẫn nhau giữa các
tác vụ trong cùng một dòng chỉ dẫn. Với kiến trúc superscalar, việc phân tích đƣợc thực
6
hiện động vào thời điểm chạy, còn với VLIW, việc phân tích là tĩnh vào thời điểm biên
dịch. Cả hai kiến trúc này đều có sự cân bằng giữa độ linh động (adaptability) và độ phức
tạp (complexity) – các bộ xử lý superscalar linh động nhƣng phức tạp, còn các bộ xử lý
VLIW không linh động nhƣng cũng không phức tạp. Cả 2 kiến trúc đều sử dụng các
phƣơng pháp biên dịch nhƣ nhau nhằm đạt đƣợc hiệu năng cao.
Xu hƣớng hiện tại đối với các bộ xử lý SISD là hƣớng tới kiến trúc superscalar
nhằm tận dụng các công nghệ ILP sẵn có.
2. 1. 2.
SIMD
Lớp kiến trúc SIMD của các bộ xử lý bao gồm các bộ xử lý mảng (Array
Processors) và bộ xử lý vectơ (Vector Processors). Các bộ xử lý này là câu trả lời tự
nhiên cho việc sử dụng các cấu trúc dữ liệu thƣờng gặp nhƣ vectơ và ma trận.
Một bộ xử lý mảng bao gồm nhiều khối xử lý (PU - Processor Unit) hoạt động song
song trên nhiều thành phần dữ liệu. Một bộ xử lý vectơ bao gồm một khối xử lý hoạt
động tuyến tính trên nhiều thành phần dữ liệu. Cả 2 loại bộ xử lý đều sử dụng một phép
toán (operation) để thực thi nhiều hành động (action). Một bộ xử lý mảng phụ thuộc vào
kích thƣớc lớn của tập dữ liệu đầu vào để đạt đƣợc hiệu năng cao (vì vậy thƣờng các bộ
xử lý này thƣờng đƣợc gọi là các bộ xử lý song song cực lớn (Massively Parallel
Processors)). Một bộ xử lý mảng đặc trƣng bao gồm từ hàng trăm đến hàng chục nghìn
khối xử lý hoạt động cùng nhau. Một bộ xử lý vectơ cũng phụ thuộc vào sự đơn điệu của
các hành động tƣơng tự nhƣ bộ xử lý mảng, nhƣng trên một tập dữ liệu nhỏ hơn, đồng
thời dựa vào phƣơng pháp đƣờng ống (pipelining) và nhịp đồng hồ cao nhằm giảm độ trễ
của các phép toán.

Trên thị trƣờng hiện nay chƣa có nhiều bộ xử lý đƣợc phát triển theo kiến trúc mảng
do nhu cầu không cao và hạn chế về số lƣợng ứng dụng. Trong khi đó rất nhiều bộ xử lý
theo kiến trúc vectơ đã đƣợc phát triển, đồng thời các bộ xử lý vectơ hiện đại là các bộ xử
lý có hiệu năng cao, có thể tuân theo các kiến trúc SIMD hoặc MIMD.
2. 1. 3.
MISD
Theo Flynn thì không tồn tại máy tính theo kiến trúc này [1].
7
2. 1. 4.
MIMD
Kiến trúc MIMD là kiến trúc song song quen thuộc nhất, cũng là hình
thức cơ bản
nhất của các bộ xử lý song song. Các bộ xử lý MIMD bao gồm nhiều khối
xử lý đƣợc kết
nối với nhau. Không giống nhƣ các bộ xử lý SIMD, mỗi khối xử lý trong
bộ xử lý MIMD
thực thi hoàn toàn độc lập (mặc dù cùng một chƣơng trình).Mặc dù về lý
thuyết các khối
xử lý không cần phải giống nhau, nhƣng thực tế hầu hết các hệ thống
MIMD bao gồm
các khối xử lý giống nhau.
Việc liên lạc giữa các khối xử lý đƣợc thực hiện thông qua một không
gian địa chỉ
dùng chung (không gian địa chỉ này có thể là toàn cục, cũng có thể đƣợc
phân chia giữa
các khối xử lý, khi đó nó có tên gọi là bộ nhớ chia sẻ phân tán (Distributed
Shared
Memory) để phân biệt với bộ nhớ phân tán (Distributed Memory)). Cách xử
lý này dẫn
đến 2 vấn đề: Một là tính ổn định (consistency) và hai là tính thống nhất

(coherence) của
dữ liệu. Tính ổn định nói đến việc tham chiếu bộ nhớ – trên cả 2 phạm trù là
trong một
khối xử lý và giữa các khối xử lý. Tính thống nhất yêu cầu tất cả các khối
xử lý đều phải
“nhìn thấy” cùng 1 giá trị đối với cùng 1 địa chỉ vùng nhớ. Tính ổn định là
hiện, trong khi
tính thống nhất là ẩn đối với ngƣời lập trình. Thƣờng thì tính ổn định có thể
giải quyết
bằng một sự phối hợp giữa các kỹ thuật về phần cứng và phần mềm, trong
khi tính thống
nhất lại đƣợc giải quyết bằng các kỹ thuật về phần cứng.
Các hệ thống tuân theo kiến trúc MIMD bao gồm từ các bộ xử lý
truyền thống đến
các bộ xử lý độc lập hoạt động thông qua một mạng máy tính. Sự khác nhau
giữa các hệ
thống này chủ
yếu là giữa
cách kết nối
giữa các khối
xử lý trên một
bộ xử lý và
cách kết
nối giữa các
bộ xử lý trên
một mạng
WAN. Tuy
nhiên, cả 2
kiểu hệ thống
đều có sự cân

bằng giữa độ
trễ trong liên
lạc và giới hạn
kích thƣớc
của hệ thống.
2. 2.
2. 2. 1.
Các hệ thống xử
lý song song
Các hệ thống tính
toán đa nhân
Vi xử lý
đa nhân
(Multico
re
Process
or) là vi
xử lý
bao gồm
nhiều
khối
chức
năng
(Functional
Unit,
Execution
Unit, hay
“nhân”). Các
vi xử lý đa
nhân khác các

vi xử lý
siêu thang bậc (Superscalar Processor) ở chỗ, các vi xử lý đa nhân có thể
thực thi nhiề u
chỉ dẫn từ nhiều nguồn trong một chu kỳ tính toán, còn các vi xử lý siêu
thang bậc có thể
8
thực thi nhiều chỉ dẫn từ một nguồn trong một chu kỳ tính toán. Mỗi nhân trong vi xử lý
đa nhân có thể là một vi xử lý siêu thang bậc con, theo nghĩa mỗi nhân này có thể thực thi
nhiều chỉ dẫn từ một nguồn trong một chu kỳ tính toán.
Hình 7 – Mô hình bộ xử lý 2 nhân
Nguồn: [36]
2. 2. 2.
Các hệ thống đa xử lý đối xứng
Hình 8 - SMP
Nguồn: [1]
Các hệ thống đa xử lý đối xứng (SMP - Symmetric Multiprocessing) thuộc mô hình
song song kiểu bộ nhớ dùng chung (Shared Memory). Một hệ thống SMP có từ 2 bộ xử
9

×