Chủ Nhật, 13 tháng 4, 2014

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


LINK DOWNLOAD MIỄN PHÍ TÀI LIỆU "nghiên cứu hệ thống cụm máy tính xử lý song song rocks và ứng dụng": http://123doc.vn/document/1045262-nghien-cuu-he-thong-cum-may-tinh-xu-ly-song-song-rocks-va-ung-dung.htm


iii


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. SISD 6
2. 1. 2. SIMD 7
2. 1. 3. MISD 7
2. 1. 4. MIMD 8
2. 2. Các hệ thống xử lý song song 8
2. 2. 1. Các hệ thống tính toán đa nhân 8
2. 2. 2. Các hệ thống đa xử lý đối xứng 9
2. 2. 3. Các hệ thống tính toán phân tán 10
2. 2. 3. 1. Các hệ thống tính toán lƣới 10
2. 2. 3. 2. Các hệ thống xử lý song song cực lớn 12
2. 2. 3. 3. Các hệ thống tính toán cụm 12
iv

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
4. 2. 2. Khả năng mô tả 54
4. 2. 3. Dễ gỡ lỗi hơn 55
4. 2. 4. Hiệu năng 55
4. 3. Giới thiệu về MPI 55
4. 4. Mục tiêu của MPI 56
4. 5. Các đặc điểm của MPI 56
4. 6. Khác biệt giữa các bản cài đặt bằng C và C++ của MPI 58
4. 7. MPI trên Rocks 58
4. 8. Viết chƣơng trình Hello World 59
4. 9. Các hàm MPI cơ bản 64
4. 8. 1. Hàm MPI_Init 64
4. 8. 2. Hàm MPI_Finalize 65
4. 8. 3. Hàm MPI_Comm_size 65
4. 8. 4. Hàm MPI_Comm_rank 65
4. 10. Giá trị trả về của các hàm MPI 66
4. 11. Về các khái niệm Nhóm, Ngữ cảnh và Bộ liên lạc 66
4. 12. Liên lạc giữa các tiến trình 67
4. 13. Xây dựng một ứng dụng tự trị 70
vi

4. 14. Về mối quan hệ giữa kích thƣớc bài toán và chi phí tính toán 75
4. 15. 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. Thiết lập môi trƣờng 78
5. 2. Mã nguồn ứng dụng 79
5. 3. Biên dịch và chạy ứng dụng 86
5. 4. 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







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

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
ix

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
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
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
1

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

Không có nhận xét nào:

Đăng nhận xét