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



ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Bùi Ngọc Linh

ĐẠ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

ii 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.

CHƢƠNG 3. HỆ THỐNG ROCKS 16
3. 1. Giới thiệu 16
3. 1. 1. Tổng quan 16
3. 1. 2. Kiến trúc của HPC Cluster sử dụng Rocks 17
3. 1. 3. Rocks và Rolls 18
3. 2. Cài đặt 20
3. 2. 1. Cấu hình 20
3. 2. 2. Cài đặt frontend 20
3. 2. 3. 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. Quy tắc đặt tên của Rocks 25
3. 3. 2. Về cơ sở dữ liệu cluster 28
3. 3. 3. 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. Tổng quan 39
3. 4. 2. Frontend quản trị cluster nhƣ thế nào? 40
3. 4. 3. Các tác vụ quản trị cơ bản 43
3. 4. 3. 1. Cài đặt lại một compute node trong lần boot PXE tiếp theo 43
3. 4. 3. 2. 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. Mô hình bộ nhớ chia sẻ 50
4. 1. 2. Mô hình đa luồng 51
v

4. 1. 3. Mô hình truyền thông điệp 52
4. 1. 4. 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. Phổ biến 54

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

vii

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

viii

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
x

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

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
2

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
3

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ệ


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).

5 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.

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].
8

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.

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ử
10

lý giống nhau trở lên, các bộ xử lý này dùng chung bộ nhớ và hệ thống vào – ra, đồng
thời đƣợc điều khiển bởi một hệ điều hành duy nhất.
Tính đối xứng của các hệ thống SMP thể hiện ở chỗ, thời gian truy cập bộ nhớ là
bằng nhau với các bộ xử lý, quyền truy cập (read / write) tới bộ nhớ của các bộ xử lý
cũng là nhƣ nhau.
Các hệ thống SMP có nhiều ứng dụng trong khoa học, công nghiệp và kinh doanh.
Tuy nhiên, những ứng dụng phổ biến nhất nhƣ các hệ xử lý văn bản hoặc các trò chơi
trên máy tính thì lại đƣợc viết theo cách không tận dụng đƣợc lợi thế từ các hệ thống xử
lý đồng thời. Chẳng hạn, với các trò chơi trên máy tính, nếu nhƣ đƣợc viết để có thể chạy
tốt trên các hệ thống SMP, thì lại khiến hiệu năng giảm sút trên các hệ thống đơn vi xử lý
(uniprocessor).
Các hệ thống đơn vi xử lý và các hệ thống SMP yêu cầu hai phƣơng pháp lập trình
khác nhau để đạt đƣợc hiệu năng cao nhất. Vì thế nhà phát triển có thể sẽ phải phát triển
và bảo trì cả 2 phiên bản của cùng 1 ứng dụng. Các ứng dụng chạy trên các hệ thống
SMP có thể đạt đƣợc hiệu năng cao hơn so với khi chạy trên các hệ thống đơn vi xử lý,
ngay cả khi chúng đƣợc viết ra dành cho các hệ thống đơn vi xử lý. Nguyên nhân là vì
các ngắt phần cứng thƣờng tạm dừng việc thực thi ứng dụng, trong khi ứng dụng có thể
tiếp tục đƣợc thực thi trên một bộ xử lý rỗi. Đối với một số ứng dụng, đặc biệt là các trình
biên dịch và các dự án tính toán phân tán, hiệu năng của ứng dụng đƣợc tăng lên khi thêm
mới một bộ xử lý.
Trong trƣờng hợp có nhiều ứng dụng cùng chạy một lúc, một hệ thống SMP có thể
cho hiệu năng tốt hơn một hệ thống đơn vi xử lý, do các ứng dụng có thể đƣợc đồng thời

(Distributed Memory). Các hệ thống MPP khắc phục nhƣợc điểm của mô hình bộ nhớ
chia sẻ: Các CPU có bộ đệm (Cache) và bộ nhớ (Memory) riêng nên tránh đƣợc xung đột
bộ nhớ. Đồng thời, MPP cũng khắc phục nhƣợc điểm của mô hình bộ nhớ phân tán:
Đƣờng mạng kết nối có tốc độ cao hơn, độ trễ thấp, các bộ đệm cũng đƣợc kết nối với
nhau và sử dụng phần cứng hỗ trợ.

Hình 10 - MPP
Nguồn: [1]
Cách đây một vài năm, các siêu máy tính mạnh nhất đều là các hệ thống MPP [30],
nhƣ Earth Simulator, Blue Gene, ASCI,… với số bộ xử lý lên tới hàng nghìn [1].
2. 2. 3. 3. Các hệ thống tính toán cụm
Cụm (Cluster) là khái niệm dùng để chỉ các máy tính độc lập đƣợc kết nối với nhau
thành một hệ thống thống nhất thông qua việc sử dụng các phần mềm và các công nghệ
13

kết nối mạng thích hợp. Ở mức độ đơn giản nhất, khi hai hoặc nhiều hơn máy tính đƣợc
sử dụng cùng với nhau để giải quyết một vấn đề nào đó, hệ thống hai hoặc nhiều máy
tính này đƣợc xem nhƣ một cluster. Ở mức độ tổng quát, ta có thể định nghĩa cluster nhƣ
là một nhóm các máy tính độc lập có khả năng làm việc cùng nhau nhƣ một máy tính duy
nhất, nhằm mục tiêu tăng cƣờng sức mạnh tính toán, khả năng đáp ứng và giảm rủi ro khi
xảy ra lỗi cục bộ cho các ứng dụng hoặc các dịch vụ.
Trong số 500 siêu máy tính (danh sách cập nhật mới nhất là vào tháng 11 / 2009) thì
hầu hết đều là các hệ thống cluster. Hình 11 – Thống kê về kiến trúc của 500 siêu máy tính
Nguồn: [45]
HPC Cluster, viết tắt của High Performance Computing Cluster, là loại cluster đƣợc
sử dụng để tăng cƣờng hiệu năng cho các ứng dụng tính toán phức tạp bằng cách "chia
nhỏ" các tác vụ tính toán này ra các máy con trong cluster. Các cluster kiểu này thƣờng


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status