1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đánh giá hiệu năng hệ thống song song phân ụm

74 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đánh Giá Hiệu Năng Hệ Thống Song Song Phân Cụm
Tác giả Phạm Thanh Liêm
Trường học Trường Đại học Bách khoa Hà Nội
Chuyên ngành Xử lý thông tin và truyền thông
Thể loại luận văn thạc sĩ
Năm xuất bản 2006
Thành phố Hà Nội
Định dạng
Số trang 74
Dung lượng 1,75 MB

Nội dung

Hệ thống BKGrid 2006 là sản phẩm của công trình đó.Hệ thống BKGrid 2006 được xây dựng với phần cứng là các máy tính hiện có như máy chủ HP NetServer và các máy trạm là các máy tính cá nh

Trang 2

M L ỤC ỤC

M Ở ĐẦU……… 6 CHƯƠNG 1 TỔNGQUAN VỀ ĐÁNH GIÁ HIỆU NĂNG HỆ THỐNG 8 1.1 Định ngh v ĩa ề đánh giá hi nệu ăng……… 8 1.2 Mục đíc ủah c việc đánh giá hi n ng……… ệu ă 8 1.3 Phân loại ác ần ềm đ c ph m o hiệu n ng………ă ……… 9 1.3.1 Phân loại ựa tr độ ức ạp ủa chươ d ên ph t c ng trình đo hiệu n ng…… ă 10 1.3.2 Phân loại ựa tr d ên mục đích c chươủa ng trình……… 11 1.4 Sự ph át triển c c phủa ác ần mềm đo hiệu n ng……… ă 15 CHƯƠNG 2 KIẾN TRÚC H Ệ THỐNG TÍNH TOÁNSONG SONG….… 18 2.1 Giới thiệu chung……… 18 2.2 Phân loại ác ểu ến tr c ki ki úc song song……… 19 2.2.1 Kiến trúc m t áy ínhVon Newmann……… 19 2.2.2 Phân loại ến tr ki úc m táy ín ủa Flynn………h c … 20 2.3 Các mô h l ình ập trình song song……… 25 2.3.1 Mô h h ìn đa luồng……… 25 2.3.2 Mô h ình truyền th ông i ……… đ ệp 25 2.3.3 Mô h ìnhsong song dữ liệu……… 26 2.4 Các vấn đề ủa ột ệ thống ính to c m h t án song song ph n câ ụm 26 2.4.1 Các kh ni c bái ệm ơ ản 26 2.4.2 Cấu úc ph ctr ần ứng ệ h thốn ính g t toánsong song ph n câ ụm……… 27

2 4 3 Cá hầ ề ửd ệ ốth â 282.5 Kiến trúc h ệthống ính toán t song song BKClus ……… ter 32 2.5.1 Kiến trúc ph cần ứng ủ c a hệ thống BK Cl terus ……… 32 2.5.2 Kiến trúc ph m c ần ềm ài đặt trong hệ ống th BK Cl terus ……… 34 2.6 Quy trình đánh giá hi nệu ăng của ệ ống h th BK Cl er………… 36 us 2.6.1 Đo hiệu năng tính toán (năng ực ủa l c CPU)……… 38

Trang 3

2.6.2 Đo hiệu năng truy cập b nh trong……… ộ ớ 41 2.6.3 Đo hiệu năng truyền ông……… th 42

2.6.4 Đo hiệu ăng của thư ện n vi MPICH……… 42

CHƯƠNG 3 CÁC PHƯƠNG PHÁP ĐO HIỆU Ă N NG……… 44

3.1 Đo hiệu ăng tính toán n ……… 44

3.2 Đo hiệu ăng truy cập ộ ớ n b nh trong……… 47

3.3 Đo hiệu ă truyền th n ng ông……… 47

3.4 Đo hiệu ăng của thư ện ần ềm n vi ph m ……… 48

CHƯƠNG 4 XÂY DỰNG ÁC C CHƯƠNG TRÌNH THỰC HIỆN QUI TRÌNH ĐO HIỆU Ă N NG……… 50

4.1 X y dâ ựng chươ ng trình thực ện hi quy trình đo hiệu n ng……… ă 50 4.2 Ch ng trươ ình thực ện ác hi c công việcđo hiệu ă n ng……… 51

4.2.1 Ch ng trươ ình thực ện ệc đ hi vi o hiệu năng tính toán……… 51

4.2.2 Ch ng trươ ình thực ện đ hi o hiệu năng truy cập b nh trong……… ộ ớ 53 4.2.3 Ch ng trươ ình thực ện đ hi o hiệu năng truyền ông……… th 54

4.2.4 Ch ng trươ ình thực ện đ hi o hiệu năng thư viện MPICH……… 55

CHƯƠNG 5 K ẾTQUẢ ĐO HIỆU Ă N NG……… 56

5.1 Kết quả đo hiệu năng tính toán……… 56

5.1.1 Kết quả đo hiệu năng tính toán c ủaCPU đơn……… 56

5.1.2 Kết quả đo hiệu năng tính toán ủa toàn ộ ệ thống c b h ……… 57

5.2 Kết quả đo hiệu năng truy cập b nh trong……… ộ ớ 64 5 3 Kết ả đ hiệ ă t ề thô 64 5.4 Kết quả đo hiệu năng của ư th viện truyền ông th điệp MPICH……… 65

5.5 Đánh giá tổng ợp ề ệu ă h v hi n ng của ệ thống BK Cl ter h us ……… 68

CHƯƠNG 6 KẾT LUẬN……… 71

T ÀI LIỆU THAM KHẢO……… 73

Trang 4

C ÁC THUẬT NGỮ

Synthetic Code Mã lệnh đơ n

Kernel H nhân ạt

Simulation Application Mô phỏng ứng dụng

Mega Instruction Per Second MIPS Triệu lệnh êtr n giây

Message Passing Interface MPI Thư viện truyền ông th điệp

Open Passing Interface Open MP Thư viện lập trình a luồng đ

NASA Parallel Benchmark NPB Phần mềm o hiệu n ng đ ă song songSingle Intruction Single Da ta S D IS Đơn dòng lệnh, đơ òng d n d ữ liệu Single Instruction Multiple D SIMD ata Đơn dòng lệnh, đa dòng d ữliệu Multiple Instruction Multip D MIMD ata Đa dòng lệnh, đa dòng d ữliệu Nonumiform Memory Access NUMA Truy cập bộ nhớ không đồng nhấtUniform Memory Access UMA Truy cập bộ nhớ đồng nhất

Symmetric Multi Processor SMP Đa b x lý xứng ộ ử đối

Portable Batch System PBS H ệthống phân tải

Trang 5

DANH MỤC HÌNH

H ình 2.1 Nguy n lê ý kiến trúc m t áy ính Von Newmann……… 20

H ình 2.2 Kiến trúc S D……… IS 20 H ình 2.3 Kiến trúc SIMD……… 21

H ình 2.4 Kiến tr MIMD Share Memory……… 22 úc H ình 2.5 Kiến tr MIMD Distributed Memúc ory……… 23

H ình 2.6 Kiến trúc Core Duo Intel……… 24

H ình 2.7 Cấu ình ết nối Cl h k uster……… 24

H ình 2.8 Kiến trúc ph cần ứng ệ h thống BK Cl terus ……… 34

H ình 2.9 Hai phần ềm PBS v m à MPICH……… 36

H ình 2.10 Qui trình đo hiệu ăng BK Cl ter n us ……… 38

H ình 5.1 Biểu đồ ương quan giữa ệu ăng v ố trạm t hi n à s ……… 63

H ình 5.2 Biểu đồ ương quan tốc độ truy cập ộ ớ t b nh ……… 64

H ình 5.3 Biểu đồ ương quan dung lượng t gói - t tin ốc độ truyền th ông… 65

H ình 5.4 Biểu đồ ương quan dung lượng t gói - ttin ốc độ truyền th ông i đ ệp 66 H ình 5.5 Biểu đồ ương quan tốc độ t và thời gian truyền th ng mạng ô …… 67

H ình 5.6 Biểu đồ ương quan dung lượng t gói - tin thời gian truyền ông… th 68

Trang 6

DANH MỤC BẢNG

Bảng 2.1 Kiến trúc ph m h ông……… ần ềm ệ th 34

Bảng 2.2 Các ần ềm ử ụng đo hiệu ă ph m s d n ng……… 37

Bảng 2.3 l c c l d Độ ớn ủa ác ớp ữ liệu gói ph m ần ềmNPB……… 40

Bảng 3.1 Sự ươ ứng ác ép toán ố thực t ng c ph s và đơn vị flop……… 46

Bảng 5.1 Kết ả đo hiệu ăng CPU đơqu n n……… 57

Bảng 5.2 Kết quả đo hiệu ăng tính toán ằng ạt n b h nhân EP……… 58

Bảng 5.3 Kết quả đo hiệu ăng tính toán ằng ạt n b h nhân ……… IS 59 Bảng 5.4 Kết quả đo hiệu ăng tính toán ằng ạt n b h nhân CG……… 60

Bảng 5.5 Kết quả đo hiệu ăng tính toán ằng ạt n b h nhân MG……… 60

Bảng 5.6 Kết quả đo hiệu ăng tính toán ằng ạt n b h nhân LU……… 61

Bảng 5.7 Kết quả đo hiệu ăng tính toán ằng n b mô phỏngchương trình SP 62

Bảng 5.8 Kết quả đo hiệu ăng tính toán ằng n b mô phỏngchương trình BT 62

Trang 7

MỞ ĐẦUHiện nay trên thế giới nh c ờ ác ti n b công ngh cao, ế ộ ệ đã xây dựng được những hệ thống máy tính có khả năng tính toán rất lớn như siêu máy tính, tính toán lưới phục vụ cho việc nghiên cứu khoa học và các ứng dụng thực tế.Bên cạnh đó các nhà sản xuất máy tính cũng luôn thay đổi công nghệ, cho ra những thế hệ máy tính có khả năng tính toán với tốc độ nhanh.

Tuy nhiên ở Việt Nam, với hiện tại các trung tâm nghiên cứu chưa đủ tiền để mua những máy tính lớn, trong khi đó nhu cầu có hệ thống tính toán lớn lạirất cần thiết Một giải pháp là xây dựng hệ thống tính toán song song từ các máy tính hiện có và liên kết các trung tâm lại tạo ra hệ thống tính toán lớn.Trung tâm tính toán hiệu năng cao, Trường đại học Bách Khoa Hà Nội đang triển khai nghiên cứu làm chủ công nghệ lưới và ứng dụng vào thực tiễn Hệ thống BKGrid 2006 là sản phẩm của công trình đó

Hệ thống BKGrid 2006 được xây dựng với phần cứng là các máy tính hiện có như máy chủ HP NetServer và các máy trạm là các máy tính cá nhân, cấu hình mạng Ethernet và sử dụng các phần mềm mã nguồn mở: Hệ điều hành Linux, các thư viện tính toán chuyên dụng, phần mềm quản lý tài nguyên, thư viện truyền thông điệp

Đánh giá hiệu năng của hệ thống là một trong những nhiệm vụ cần thiết để đưa ra những nhận xét, kết luận về tốc độ tính toán, tính hiệu quả của toàn bộ

hệ thống Đối với hệ thống tính toán song song phân cụm, việc đánh giá hiệu năng sẽ được tiến hành dưới hai mức độ Đánh giá hiệu năng từng thành phần trong hệ thống : Gồm phần cứng và phần mềm

- Đánh giá hiệu năng phần cứng được thực hiện dựa trên các số đo : tốc độ tính toán của CPU, tốc độ truy cập vào bộ nhớ trong trên từng máy trạm, tốc

độ truyền tin trong mạng

Trang 8

Đánh giá hiệu năng phần mềm được thực hiện dựa trên việc khảo sát quá trình

hoạt động của các thư viện được cài đặt trong hệ thống như các thư viện tính

toán, các thư viện truyền thông điệp

- Đánh giá hiệu năng tổng hợp của toàn bộ hệ thống: oàn bộ hệ thống được t

coi như một máy tính song song duy nhất Dựa trên quá trình khảo sát tốc độ,

kết thu được khi thực hiện một số bài toán song song mà người quản trị có thể

đánh giá được hiệu năng tính toán của toàn bộ hệ thống cũng như sự tương ,

thích của hệ thống đối với những dạng bài toán cụ thể

Luận văn này sẽ trình bày về quy trình áp dụng các phần mềm đo hiệu

năng mã nguồn mở chuyên dụng để đánh giá hiệu năng của hệ thống tính toán

song song phân cụm BKCLUSTER Cấu trúc của luận v n ă gồm chương với 6

nội dung cụ thể như sau :

Chương 1 Tổng quan về đánh giá hiệu năng hệ thống máy tính

Chương 2 Kiến trúc ủa hệ thống tính toán BKc CLUSTER

Chương 3 Các phương pháp đo hiệu năng

Chương 4 Xây dựng chương trình thực hiện quy trình đo hiệu năng

Chương 5 Các kết quả đo hiệu năng

Chương 6 Kết luận

Luận văn cao học này được hoàn thành tại Trung tâm tính toán hiệu năng cao

và Trung tâm máy tính thuộc Trường đại học Bách Khoa Hà Nội

Tôi xin cảm ơn chân thành nhất đến thầy PGS.TS Nguyễn Thanh Thủy và Ths

Đinh Hùng đã tận tình hướng dẫn và tạo điều kiện cho tôi hoàn thành luận

văn này

Tôi xin chân thành cảm ơn các thầy, cô đã tham gia giảng dạy tại Trung tâm

đào tạo sau đại học, Trường đại học Bách Khoa Hà Nội đã truyền những kiến

thức quý báu của chương trình cao học

Hà Nội, Ngày 30 tháng 10 năm 2006

Trang 9

CHƯƠNG 1 TỔNG QUAN VỀ ĐÁNH GIÁ HIỆU NĂNG HỆ THỐNG

1.1 Định nghĩa về đánh giá hiệu năng.

Đánh giá hiệu năng l ử ụng hần mềm chuyên dụng trên một máy tính đơn à s d phay cả một hệ thống máy tính, từ việc phân tích thời gian chạy chương trình hoặc những kết quả thu được, t ừ đó người quản trị rút ra những kết luận về tốc độ tính toán, tốc độ truyền thông v khả năng truy cập bộ nhớà Sau a đó đư

ra kết luận ề ệu ăng thực ủa ệ thốn v hi n c h g

1 2 Mục đích của việc đánh giá hiệu năng

Khi triển khai một hệ thống tính to án, một yêu cầu đặt ra đối với người quản trị là phải đánh giá được khả năng của hệ thống về các mặt tính toán, truyền thông Sự đánh giá này có được dựa trên các kết quả cụ thể phản ánh tốc độ thực hiện các thao tác trên các kiểu dữ liệu, tốc độ gửi và nhận gói tin, tốc độ truy cập bộ nhớ ngoài và bộ nhớ trong Các kết quả này khi được tổng hợp lại cho phép dự đoán một phần về hiệu năng của những ứng dụng đang được triển khai

Đối với từng máy tính đóng vai trò là nút tính toán, việc đánh giá hiệu năng được thực hiện với mục đích đưa ra những thông số cụ thể phản ánh tốc độ tính toán, tốc độ truy cập bộ nhớ trong khi thực hiện bài toán trên CPU đơn của máy tính Từ những thông số cụ thể trên người quản trị có thể đưa những đánh giá về năng lực tính toán cũng như kích thước của bài toán là bao nhiêu thì sẽ phù hợp với nút mạng

Khả năng truyền thông giữa các nút trong mạng đóng vai trò rất quan trọng khi triển khai một hệ thống tính toán Tốc độ truyền thông chịu ảnh hưởng một cách trực tiếp bởi các cấu hình phần cứng cũng như dung lượng gói tin và

Trang 10

tần số gửi gói tin Từ những thông số đo được khi thực hiện các chương trình

đo hiệu năng truyền thông, người quản trị có thể đưa ra những thông số tối ưu

về dung lượng gói tin và tần số gửi tin của từng giao thức cụ thể đối với hệ thống tính toán đang triển khai

Quá trình đo hiệu năng còn được sử dụng để đánh giá sự tương thích của hệ thống đối với các thư viện lập trình Trong trường hợp này, phần mềm đo hiệu năng sẽ gọi một số hàm tiêu biểu của thư viện, đo thời gian thực hiện các hàm này đối với các kích thước đầu vào cụ thể

Một trong những mục đích của việc xây dựng hệ thống máy tính là để thực hiện các bài toán đòi hỏi số lượng tính toán rất lớn Lúc này cả hệ thống sẽ được xem như một máy tính duy nhất thực hiện quá trình chạy chương trình Các phần mềm đo hiệu năng tính toán song song cho phép người quản trị có được những thông số về tốc độ tính toán đối với những kiểu bài toán, ứng dụng khác nhau Có những chương trình thiên về truyền thông, có những chương trình cho phép giảm thiểu quá trình truyền thông để tập trung đánh giá năng lực tính toán Để đánh giá sự tương thích của hệ thống đối với những ứng dụng đang dự định triển khai, các phần mềm đo hiệu năng có dạng mô phỏng ứng dụng được viết ra và sử dụng Các phần mềm này sẽ mô phỏng ứng dụng trong tương lai ở mức độ nhỏ hơn và đo đạc các thông số về tính toán, truyền thông khi chạy với những giá trị đầu vào thích hợp Qua các thông số thu được, người quản trị hệ thống sẽ có thể đưa ra những đánh giá đúng đắn, những chỉnh sửa để có thể triển khai hệ thống trong tương lai một cách tối ưu nhất về cả cấu trúc phần cứng cũng như các phần mềm cài đặt.1.3 Phân loại các phần mềm đo hiệu năng

Những phần mềm đo hiệu năng ra đời vào đầu những năm 80 với mục đích ban đầu là đo hiệu năng tính toán của những máy tính tuần tự Những chương trình đo hiệu năng n sày dử ụng một tập các câu lệnh được gọi trong nhiều

Trang 11

vòng lặp thực hiện một số lượng lớn các phép toán số học với dữ liệu là số nguyên hoặc số thực Sau này, các phần mềm đo hiệu năng đã được sử dụng trong việc đo đạc, đánh giá các máy tính đơn hoặc cả hệ thống tính toán dưới nhiều khía cạnh như tính toán, truyền thông, truy cập bộ nhớ

Với mỗi mục đích khác nhau sẽ có những phần mềm tương ứng để đánh giá, không có một phần mềm đo hiệu năng nào được viết một cách tổng hợp để đánh giá tất cả các khía cạnh trên Có hai cách phổ biến khi phân loại các phần mềm đo hiệu năng đó là phân loại theo độ phức tạp của chương trình đo hiệu năng và phân loại dựa trên mục đích đo hiệu năng của chương trình.1.3.1 Phân loại dựa trên độ phức tạp của chương trình đo hiệu năng

Phân loại dựa trên độ phức tạp của chương trình gắn liền với quá trình phát triển của các loại phần mềm đo hiệu năng Từ những chương trình đơn giản ban đầu viết để đo khả năng tính toán của một máy tính cá nhân đến những , chương trình phức tạp mô phỏng một hệ thống cụ thể triển khai trên toàn bộ

hệ thống tính toán Dựa trên tiêu chí này, các phần mềm đo hiệu năng có thể được phân chia theo mức độ tăng dần thành 3 loại chính :

Mã lệnh đơn giản (Synthetic Code),

Hạt nhân (Kernel)

Mô phỏng ứng dụng (Simulation Application)

Mã lệnh đơn giản : là chương trình thực hiện một tập các phép toán như

cộng, trừ, nhân, chia trên tập số thực, các thao tác truy cập bộ nhớ như đọc, ghi dữ liệu từ bộ nhớ ngoài hoặc các thao tác truyền dữ liệu như gửi gói tin và chờ tín hiệu phản hồi từ máy đích Những chương trình đo hiệu năng tính toán đầu tiên trên hế t giới thường được xếp vào loại này Ngày nay những chương trình này thường được cải tiến rất nhiều hoặc trở thành một phần của những chương trình đo hiệu năng phức tạp hơn Tuy nhiên các chương trình đo hiệu

Trang 12

năng truyền thông hoặc truy cập bộ nhớ trong hiện nay vẫn được xếp vào dạng mã lệnh đơn giản.

Hạt nhân : là chương trình thực hiện một phần của một ứng dụng cụ thể, hạt nhân thường được sử dụng trong các gói phần mềm đo hiệu năng tính toán Chức năng của hạt nhân có thể chỉ đơn giản là thực hiện việc chuyển vị matrận hay phức tạp hơn như thực hiện biến đổi fourier, nhân ma trận Đa số các chương t ình đo hiệu năng tính toán ngày nay được coi là các hạt nhân.r

Mô phỏng ứng dụng : là những chương trình được viết ra để đánh giá sự tương thích của hệ thống đối với một loại ứng dụng cụ thể Các chương trình loại này thường là một tập hợp của các hạt nhân, giữa các hạt nhân đã có sự tương tác với nhau về truyền thông cũng như kết quả tính toán Hiện nay các chương trình mô phỏng ứng dụng thường được cung cấp dưới dạng một phần của các gói phần mềm đo hiệu năng của các cơ quan, viện nghiên cứu có uy tín trên thế giới Để chạy được các chương trình loại này thì cần phải triển khai toàn bộ hệ thống một cách tương đối hoàn chỉnh về cấu hình phần cứng

và phần mềm

1.3.2 Phân loại dựa trên mục đích của chương trình

Các chương trình đo hiệu năng thường chỉ thực hiện việc đánh giá tốc độ thực hiện của một loại công việc cụ thể cho nên việc phân loại theo mục đích ngày , nay rất hay được sử dụng trong các tài liệu tổng quan về đánh giá hiệu năng

Có thể nói rằng, bất cứ khía cạnh nào của một máy tính đơn hay một hệ thống tính toán phức tạp đều tồn tại những chương trình đo hiệu năng chuyên dụng

để đánh giá hiệu năng

Có thể chia ra thành các phần mềm đo hiệu năng với những mục đích sau :

đo hiệu năng tính toán, đo hiệu năng truyền thông, đo hiệu năng truy cập bộ nhớ trong, đo hiệu năng của thư viện lập trình, đo hiệu năng truy cập bộ nhớ ngoài

Trang 13

Phần mềm đo hiệu năng tính toán

Những chương trình chuyên dụng đo hiệu năng tính toán được ra đời vào đầu thập kỷ 80 Chương trình WhetStone được coi là chương trình đo hiệu năng tính toán đầu tiên trên thế giới Đây là một tập các module con, mỗi module

thực hiện một thao tác riêng như các phép toán số nguyên, các phép toán số thực Kiểu dữ liệu sử dụng trong WhetStone có thể có độ chính xác đơn hoặc chính xác kép Sau WhetStone, xuất hiện các chương trình đo hiệu năng tính toán khác như : DhryStone, Digital Review Đặc điểm chung của các chương trình này là đều thao tác chủ yếu trên các kiểu dữ liệu số thực, giá trị trả về có thứ nguyên được quy ước riêng, ví dụ WhetStone trả về giá trị có thứ nguyên KWIPS (Kilo WhetStone Instrution Per Second), DhryStone trả về giá trị có thứ nguyên DhryStone Per Second, Digital Review trả về giá trị có thứ nguyên MVUPS (MicroVAX units of processing) Các giá trị này là số nghìn hay triệu vòng lặp dùng trong chương trình tương ứng, rõ ràng là các giá trị này chỉ có thể được sử dụng để so sánh hiệu năng tính toán của hai máy khi cùng chạy một chương trình đo hiệu năng

Bên cạnh những chương trình đo hiệu năng hoạt động chủ yếu trên kiểu dữ liệu số thực, đã xuất hiện các chương trình đo hiệu năng thao tác trên kiểu dữ liệu số nguyên Các chương trình này thường được cài đặt theo một số giải thuật cụ thể như HeapSort Giá trị trả về của các chương trình này có dạng MIPS (Mega Instruction Per Second) là số triệu lần các câu lệnh được thực hiện trong 1 giây

Các chương trình đo hiệu năng tính toán được phát triển trong những năm gần đây đều sử dụng chủ yếu các phép toán trên kiểu dữ liệu số thực dấu phẩy động (floating point) Kết quả trả về có thứ nguyên là MFLOPS hàng triệu (phép tính dấu phẩy động trong 1 giây Một trong những chương trình tiêu )biểu đầu tiên có sử dụng kiểu thứ nguyên này là Linpack của tác giả Jack

Trang 14

Dongarra trường đại học Tennesse Linpack là một tập các chương trình con nằm trong thư viện lập trình Lapack Đây là chương trình đo hiệu năng có số lượng phép tính dấu phẩy động rất lớn tuy nhiên cũng có một nhược điểm là không thực hiện phép chia Phần mềm đo hiệu năng này còn được sử dụng rất phổ biến và đã được phát triển thêm các phiên bản viết bằng ngôn ngữ C và Java từ phiên bản ban đầu viết bằng ngôn ngữ Fortran Các chương trình đo hiệu năng sử dụng phép toán dấu phẩy động sau này đa số đều được xếp vào dạng hạt nhân, ngoài Linpack ra còn có thêm một số phần mềm đo hiệu năng tính toán nổi tiếng khác như : Livermore, Nasa Parallel Benchmark (NPB) Đặc biệt gói phần mềm NPB đã cung cấp 5 hạt nhân, 3 mô phỏng ứng dụng được sử dụng rất rộng rãi trong việc đánh giá hiệu năng của các hệ thống tính toán song song

Phần mềm đo hiệu năng truyền thông

Các chương trình đo hiệu năng truyền thông được sử dụng để đánh giá hiệu năng truyền gói tin giữa hai máy đóng vai trò nút mạng trong một hệ thống , tính toán Các chương trình này đều có cấu trúc client server với module – client được cài trên máy nguồn, module server được cài trên máy đích Máy nguồn sẽ gửi gói tin đến máy đích, tùy theo từng chương trình mà máy đích

có gửi lại tín hiệu hay không Người sử dụng có thể tùy chọn nhiều giao thức truyền thông như : TCP, UDP hoặc thay đổi giá trị của các gói tin gửi đi, thay đổi độ lớn của bộ đệm socket máy gửi và máy nhận để có thể khảo sát tốc độ , truyền thông giữa hai máy trong hệ thống dưới nhiều góc độ Dưới đây là một

số phần mềm đo hiệu năng truyền thông mạng phổ biến :

- NetPerf của hãng Hewllet Packard, phần mềm này được viết vào năm -

1996, đến nay đã có phiên bản 3.0

- Iperf của nhóm tác giả tại đại học bang Illinois, phần mềm này được công

bố lần đầu vào năm 1999, đến nay đã có phiên bản 1.7.0

Trang 15

- UDPMoN của tác giả Richard Hughes Jones, phần mềm này được viết vào năm 2000, đến nay đã có phiên bản 3.2

-Các chương trình trên đều được viết bằng ngôn ngữ C, trong các phần mềm trên, phần mềm Netperf hay được dùng nhất khi đánh giá hiệu năng truyền thông trong mạng LAN

Phần mềm đo hiệu năng truy cập bộ nhớ trong

Các chương trình đo hiệu năng truy cập bộ nhớ trong không có nhiều như những chương trình đo hiệu năng tính toán hay đo hiệu năng truyền thông

mạng nhưng đóng vai trò quan trọng khi phân tích sự tương quan của dung , lượng của bộ nhớ trong với tốc độ của CPU với hiệu năng tính toán Các chương trình này sẽ tiến hành đo thời gian, tần suất truy cập bộ nhớ trong khi thực hiện các phép toán đối với các bộ giá trị đầu vào có kích thước khác nhau Các chương trình đo hiệu năng truy cập bộ nhớ trong sẽ cho người quản trị biết được kích thước của bài toán như thế nào là tối ưu nhất đối với từng máy tính của hệ thống

Phần mềm đo hiệu năng của thư viện chương trình

Khi xây dựng các thư viện chương trình, một trong những yêu cầu đặt ra là phải kiểm tra các hàm trong thư viện có hoạt động tốt không, tương thích với

hệ thống không.Tuy nhiên số chương trình đo hiệu năng của thư viện lập trình

là không nhiều, một số đại diện cho những phần mềm thuộc loại này là :

ATLAS đo hiệu năng của thư viện tính toán BLAS

Linpack đo hiệu năng của thư viện tính toán Lapack

NetPIPE đo hiệu năng của thư viện truyền thông điệp MPI Về bản chất NetPIPE là chương trình dùng để so sánh hiệu năng truyền thông giữa một số giao thức, tuy nhiên NetPIPE thường được cấu hình khi biên dịch để đánh giá hiệu năng của môi trường truyền thông thiết lập bởi thư viện MPI trong các hệ thống tính toán song song phân cụm

Trang 16

Phần mềm đo hiệu năng truy cập bộ nhớ ngoài

Quá trình đo hiệu năng của bộ nhớ ngoài có thể xem là việc đánh giá sự đáp ứng của hệ thống đối với các lệnh đọc, ghi, khởi tạo hay xoá

Đối tượng tác động của các câu lệnh này là data hoặc meta-data Data là các file chứa dữ liệu thông thường, còn meta data là các file chứa dữ liệu về cấu -trúc của hệ thống Trong các hệ thống máy tính, bộ nhớ ngoài tồn tại chủ yếu dưới hai dạng sau : bộ nhớ trên máy trạm và hệ thống file mạng (Network File System – NFS Ứng với mỗi loại bộ nhớ ngoài trên sẽ có các phần mềm đo )hiệu năng tương ứng Dưới đây là một số các phần mềm đo hiệu năng truy cập bộ nhớ ngoài thông dụng :

Các phần mềm đo hiệu năng của bộ nhớ trên máy trạm : IOStone, Bonnie++, IOZone trong đó IOStone được coi là chương trình đo hiệu năng truy cập bộ nhớ ngoài đầu tiên trên thế giới

Các phần mềm đo hiệu năng truy cập hệ thống file mạng: NFSStone, NHFStone

Hầu hết các chương trình đo hiệu năng thuộc loại này được viết bằng ngôn ngữ C hoặc C++

1.4 Sự phát triển của các phần mềm đo hiệu năng

Các chương trình đánh giá hiệu năng đầu tiên xuất hiện vào những năm 1980

và được áp dụng cho những kiến trúc máy tính, hệ thống tính toán cụ thể, sau

đó một số chương trình được phát triển để có thể đo hiệu năng của những hệthống máy tính khác Hiện nay các chương trình đo hiệu năng đã phát triển rất phong phú, về số lượng và được áp dụng để đánh giá máy tính đơn hoặc cả hệ thống về nhiều mặt Quá trình phát triển của các phần mềm đo hiệu năng có thể được chia ra thành hai khía cạnh chính sau : sự phát triển các chương trình

để có thể đo hiệu năng của nhiều hệ thống và sự thống nhất thứ nguyên của các chương trình đo hiệu năng

Trang 17

Sự phát triển về khả năng tương thích hệ thống của các chương trình đo hiệu năng : ban đầu các chương trình đo hiệu năng thường được viết để đánh giá hiệu năng của những hệ thống cụ thể Điều này được thể hiện qua một số

Phần mềm Linpack ban đầu được tác giả Jack Dogarra viết để đo tốc độ thực hiện hai hàm DGEFA và DGESL trong thư viện tính toán Lapack viết bằng ngôn ngữ Fortran Sau này Li pack đã được sử dụng rộng rãi để đánh giá hiệu nnăng tính toán của CPU đơn và được phát triển thêm phiên bản viết bằng ngôn ngữ C

Hiện nay đã xuất hiện các công cụ đánh giá hiệu năng được cung cấp dưới dạng các gói Trong gói bao gồm nhiều chương trình đo hiệu năng với những mục tiêu đo khác nhau Những gói chương trình đo hiệu năng phổ biến là : NPB - Nasa Parallel Benchmark), ParkBench Parallel Kernel Benchmark, - SPEC - Standard Performance Evaluation Cooporation, LMBench của hãng Hewllet Packard …

Sự thống nhất thứ nguyên của các chương trình đo hiệu năng : Các chương trình đo hiệu năng ban đầu sử dụng các thứ nguyên được định nghĩa riêng Sau này hầu hết các chương trình đo hiệu năng gần đây đều sử dụng hai thứ nguyên sau : MFLOPS (số triệu lần phép tính số thực trên m ột giây) đối

Trang 18

với kết quả đo hiệu năng tính toán và Mbps (số triệu bit truyền thông trên m ộtgiây) đối với các kết quả đo hiệu năng truyền thông Sự thống nhất này cho phép xây dựng lên các cơ sở dữ liệu về hiệu năng và khả năng so sánh hiệu năng của các hệ thống máy tính khác nhau trên hế t giới

Trang 19

CHƯƠNG 2 KIẾN TRÚC ỦA C HỆ THỐNG TÍNH TOÁN SONG

SONG PH N CỤMÂ2.1 Giới thiệu chung

Trong công cuộc công nghiệp hoá, nhu cầu ứng dụng công nghệ thông tin vào các hoạt động nghiên cứu khoa học và tin học hoá xã hội Đòi hỏi giải quyết nhiều bài toán xử lý lớn với khối lượng khổng lồ mà các máy tính tuần tự không thể thực hiện được Trong thời gian gần đây công nghệ ử ụngs d c ác

m t h áy ín đơn, ghép ối ới nhau th n v ành c usụm(cl ter) v ài đặt ác ần ềmà c c ph m đặc biệt có th tđể ể ính toán như ột m máy tính song song Hệ thống ư ậy nh v được g là h ọi ệ thống tính toán song song ph n cụm, hệ â thống này tạo ra những sức mạnh tính toán cực lớn với tính sẵn sàng cao, dần thay thế vai trò những siêu máy tính với nhiều CPU chia sẻ bộ nhớ trong một thể thống nhất đắt tiền

Công nghệ tính toán song song ph n c đã mở ra cơ hội cho cả các nước â ụmkhông có nền công nghiệp phần cứng mạnh và kinh tế chưa phát triển để chế tạo ra những siêu máy tính cho riêng mình với giá thành rẻ

Ở Việt Nam trong điều kiện kinh tế còn nghèo, chưa đủ kinh phí để đầu tư những máy tính lớn đắt tiền, trong khi đó nhu cầu tính toán lớn phục vụ cho việc nghiên khoa học, cũng như các ứng dụng thực tiễn là rất lớn Giải pháp xây dựng hệ thống tính toán song song phân tán dựa trên liên kết c ác máy tínhriêng lẻ đang được triển khai Tuy nhiên, một nhược điểm là khi phát triển ứng dụng các chuyên gia công nghệ và người sử dụng đầu cuối không chuyên phải biết về hệ thống (hệ điều hành, cơ chế phân công giữa các tiến trình, cân bằng tải và lập trình song song với MPI/PVM) Trong khi đó các hệ thống siêu máy tính đa xử lý, vấn đề này đã được nghiên cứu và giải quyết trong các

cơ chế tự động của chương trình dịch Để giải quyết vấn đề này Trung tâm tính toán hiệu năng cao trường Đại học Bách Khoa tiến hành nghiên cứu, triển

Trang 20

khai xây dựng hệ thống tính toán song song Mục tiêu xây dựng một môi trường tính toán song song ổn định tiến tới hội nhập vào hệ thống tính toán lưới Việt Nam và quốc tế.(Grid Computing).

C yêác u cầu đặt ra cho hệ thốn g:

- Cung c ấp m môột i trường ính toán ổn định, hiệu ăng cao t n

- Cung cấp ột môi trường lập m trình cho những ng l ười ập trình chuyên nghiệp, cũng nh khôư ng hiểu u về ập trình song song Hỗ và sâ l trợ chạy chương trình t xa ừ

- H ệ thốn được triển khai tr n hệ thốngg ê máy tính ện hi có c ủa trung t m hiệuâ

năng và kh nả ăng mở ộng cao Đang được triển r khai mở ộng ở ác trung r c

tâm khác: Trung t m máy ín trường Đại ọc ách khoa Hâ t h h b à N ội

Giải ph áp cho các u cầu ê à m h yê tr n l ột ệ ôth ng tính toán song song dựa tr n ê

kiến trúc m t us áy ính cl ter

2.2 Phân loại các kiểu kiến trúc song song

2.2.1 Kiến trúc máy tính Von Newmann

Các máy tính hi ện nay đều y dựng theo xâ mô h ình Von Ne mann (t n nhw ê à

b h ác ọc John Von Newmann)

M t áy ính Von Ne mann sử ụng ái ệm chương trình đã được ưu trữ sẵn.w d kh ni lCPU chạy m ột chương trình đã được ưu trữ s l ẵn, trong đó chỉ rõ c chu ác ỗithao tác đọc và ghi trên bộ nh ớ

Trang 21

Hình 2.1 Nguyên lý kiến trúc máy tính Von Newmann

B nh ộ ớ chính (Main Memory) được s dử ụng để ư l u giữ ác chương trình c và

d ữ liệu Những ệnh ủa chương trình đã được l c mã hoá nh d ằm chỉ ẫn cho máy

t ính thực ện ng việc ào đó Dữ liệu hi cô n là ôth ng tin được ử ụng s d trong chương trình

B x lý ộ ử trung tâm (Central Proc sor Unit) les ấy ệnh l và d ữ liệu t b nhừ ộ ớ,

gi mã và sau ải đóthực hiện

2.2.2 Phân loại kiến trúc máy tính của Flynn

a) Kiến trúc đơn lệnh đơn dữ li- ệu (Single Intruction- Single Data)

Hình 2.2 Kiến trúc SISD

Trang 22

Có m dòng ột chảy ệnh (nghĩa l là có m ộtchương trình) được CPU thực thi và

m b nh ột ộ ớ chứa ữ liệu ủa Lệnh đầu ti được ận t b nh v r d c nó ên nh ừ ộ ớ ề ồiđược ực th hiện, sau đó ệnh ứ l th hai s ẽ được nhận về ồi th hiện r ực

Trong m ình tuần ự ày, cũngô h t n có thể thực ện ơ chế song song ở ột hi c m

chừng m nhực ất định nào đó Bằng cách trong khi đang thực ện ột ệnh hi m l

những ấn đề v chuyên dụng ư ử ảnh, dự áo thời tiết nh x lý b

c) Kiến trúc đa lệnh đa dữ li (Multiple - ệu Instruction- Multiple D ) ata

- Kiến tr MIMD kiểu úc chia sẻ ộ ớ b nh

Trang 23

Hình 2.4 Kiến trúc MIMD share memory

Máy t ính loại n có nhi ày ều CPU, mỗi CPU thực ện ột chương trình khác hi m nhau, các CPU c thể chia sẻ ộtó m vùng nh ớ chung (share memory) như một không gian toàn ục Tất ả c c những s thay c n ự đổi ủa ội dung của ộ ớ b nh do

m b x lý t ột ộ ử ạo ra được ất ả ác ộ ử t c c b x lý kh bi n ác ết đế

C mác áy tính chia sẻ ộ ớ được chia th b nh ành 2 lớp chính dựa tr n thời ê gian truy cập b nh là ộ ớ UMA NUMA và

Truy cập bộ nhớ đồng nhất (Uniform Mem y Access): phổ ến trong loại or bi

m n là c máy áy ày ác đa bộ ử đối ứng (Symmet ic Multi Processor: SMP) x lý x r

C b x lý ác ộ ử đông nhất, độ ư u tiê à n v thời gian truy cập t b nh là nh ới ộ ớ ưnhau

Truy cập bộ nhớ không đồng nhất (Nonumiform Memory Access: NUMA)

M m tột áy ính loại NUMA t ường được ạo ra bằngh t cách êli n kết ề ặt ật v m v lý hai hoặc nhi m ều áy SMP

- Kiến tr MIMD kiểu b nh phâúc ộ ớ n tán

Trang 24

Hình 2.5 Kiến trúc MIMD istributed MemoryDNhững h ệ thống có kiến trúc b nh phâộ ớ n tán u cầu ột ạng truyền yê m m thông

để ế ối k t n c bác nh c c bộ ớ ủa ác x lý M b x lý ộ ử ỗi ộ ử đều có b nh trong c ộ ớ ục

b c mộ ủa ình Kh ng gian đô ịa chỉ nh c m b x lý khôớ ủa ột ộ ử ng chia sẻ ới ộ v b

x lý khử ác, v ậyì v không có kh ái niệm vùng địa chỉ toàn ục ủa ất ả ác ộ c c t c c b

x lý ì m b x lý có b nh ử V ỗi ộ ử ộ ớtrong của chính mình, n n nê ó ho ạt động độc

lập Những ự s thay đổi mà m ột vi xử thực ện tr n bộ ớ trong kh ng c lý hi ê nh ô ó

hi ệu ứng gì ê ùng nh c nhtr n v ớ ủa ững ộ ử b x lý kh ác

Khi một ộ ử b x lý cần truy cập tới d liữ ệu c b x lý khủa ộ ử ác, người ập l trình

ph có nhi v ải ệm ụ định ngh rõ ràng ĩa khi nào ữ liệu được truyền đi Sự đồng d

b hóộ a giữa ững luồng ử nh x lý là trách nhi c ng l ệm ủa ười ập trình, kết c ấu

mạng ử ụng s d cho sự di chuyển dữ liệu trong hệ thống này có thể có nhi ềuloại

Trang 25

- Kiến trúc lõi đôi (Core Duo)

Hình 2.6 Kiến trúc Core Duo của Intel

Là kiến trúc m c hãng ới ủa Intel, được thiết kế để ạo ức ạnh đột t s m phá và t ối

ưu hiệu n ng c h thă ủa ệ ống Với hai l i biệt lập õ trong cùng một ộ ử b x lý hoạt động cùng tần s , b x lý ố ộ ử cho phép ác ấp p ứng c h th g và lý c c độ đá ủa ệ ốn

tưởng cho m i trường đa nhiệm Hiệu ăng của ệ thống tăô n h ng, i nđ ện ăng ti u êthụ giảm

d) C h kấu ình ết nối song song (cl ter)us

Hình 2.7 Cấu hình kết nối cluster

Trang 26

T c kiừ ác ến tr tr n, người ta x y dựng ệ ống ế ốiúc ê â h th k t n song song (cl ter) usThành ph có b nh dùng ần ộ ớ chung (kiểu SMP), những ộ ử trê b x lý n một SMP

có s dthể ử ụng ộ ớ toàn ục ủa SMP đó Th b nh c c ành ph phâần n tán là s k ự ết

n c mối ủa ạng nhi ều SMP, bởi ậy truyền th ng mạng v ô là c ần thiết để di chuy n d ể ữ liệu ừ SMP này đế SMP khác t n

2.3 Các mô hình lập trình song song

Có r nhi mô h l ất ều ình ập trình song song được ổ ến như chia sẻ ộ ớ, ph bi b nh

đa luồng, truyền ông th điệp, song song dữ liệu Các mô h n t t nh ình ày ồn ại ư

m s ột ự trừu ượng ựa tr n các ến tr t d ê ki úc ph cần ứng Mọi mô h l ình ập trìnhsong song đều có th được thực hiện trê ất k m kiể n b ỳ ột ến trúc phần cứng n ào

2.3.1 Mô hình đa luồng

Trong mô h l ình ập trìnhsong song đa luồng, một ế ti n trình có có r nhi thể ất ều

luồng ử x lý M ồng có ể được coi là m ỗi lu th ột ủ ụcth t con c chương trình ủa

chính và được thực hiện song song cùng các luồng khác ác, c luồng giao tiếp

v ới nhau th ng qua vô ùng nh ớ toàn cục Đ ều ày đòi ỏii n h có m c ột ơchế đồng

b gi c ộ ữa ác luồng ằm tr nh ánh xung đột trong truy cập ộ ớ, các b nh luồng có thể sinh ra hay kết úc nhth ưng ch ng trươ ình chính th ẫn ồn ại cho đến ì v t t khi

ho ành côàn th ng việc Mô h n ình ày thường ắn với ác ến tr chia sẻ ộ g c ki úc b

nh ớ(SMP)

Người l ập trình theo mô h nình ày thường ử ụng ác thư ện l s d c vi ập trình đa luồng ư nh Open MP

2.3.2 Mô hình truyền thông điệp

Truyền ông i th đ ệp (me sage passing) ls à mô h ình được ử ụng ộng ãi trong s d r r

t ính toán song song hiện nay Thường áp ụng cho hệ thống ph n tán, một d â

chương trình theo mô h nình ày bao gồm nhi ều chương trình chạy tr n các nút ê

v chu lới ỗi ệnh và b nh êộ ớ ri ng Mỗi chương trình con có m ột định danh duy

nh và úng tất ch ương tác ới nhau bằng ệc ửi v vi g và nhận thông i êđ ệp tr n các

Trang 27

định danh Việc truyền d liệu ữ thường u cầu yê có s h t gi c n ự ợp ác ữa ác tiếtrình

Phương pháp n ày được ử ụng ất r s d r ộng r êãi tr n thế ới, hiện nay c hai thư gi ó

vi ệntruyền th ông điệp được ử ụng s d là PVM v MPI.à

2.3.3 Mô hình song song dữ liệu

Các phần ệc song song tập trung vào ệc thực hiện ử vi vi x lý êtr n một ập ữ t d

liệu.Tập d ữ ệuli th ường được ổ t chức theo ấu úc ông ường nh m c tr th th ư ảng

m chi ột ềuhay mảng nhi chiều ều Tập ác ác c t v ụ(t k) cùng l việc êas àm tr n một

c úc d ấu tr ữ liệu, tuy nhi n mê ỗi tác v lụ àm vi v m ph kh ệc ới ột ần ác nhau của

c úc d ấu tr ữ liệu đó Với ến tr ki úc b nh ộ ớ chia sẻ, các t v có ác ụ thể truy cập

v cùng m c úc d ào ột ấu tr ữ liệu th ng qua bộ ớ toàn c ô nh ục, tr n kiến trê úc b ộ

nh phâớ n tán, cấu tr úc d ữ liệu ày được chia ra thành t n ừng phần và nằm êtr n

ph b nh cần ộ ớ ục bộ ủa ỗi ác ụ.Việc song song ho ữ c m t v á d liệu được thực

hi v s h c c ện ới ự ỗtrợ ủa ác trình ịch d

2.4 Các v c b c m h ấn đề ơ ản ủa ột ệ thống tính toán song song ph n cụmâ

2.4.1 Các khái niệm cơ bản

Một hệ thống tính toán song song ph n cụm là hệ thống máy tính cục bộ bao âgồm các tập các máy tính độc lập và được liên kết lại thông qua mạng máy

tính Một hệ thống phân cụm là cục bộ với ý nghĩa là toàn bộ các thành phần

hệ thống con nằm trong khu vực địa lý hẹp và được quản lý tập trung như là một hệ thống thống nhất Các nút trong hệ bó có thể là kết hợp của các máy tính đơ bộ xử lý với các máy n nhiều bộ sử lý (SMP: symmertric multiprocesor)

Ưu điểm của hệ thống ph cân ụm là giá thành của hệ thống Hiện nay một hệ thống dựa trên công nghệ LAN và PC có thể đạt hiệu năng rất cao trong khi

đó giá thành lại rẻ hơn nhiều so với các siêu máy tính

Trang 28

Một ưu điểm nữa là hệ thống phân cụm rất linh hoạt về cấu hình: Số lượngnút, dung lượng ộ ớ tr n mỗi b nh ê nút, số lượng ộ ử b x lý êtr n mỗi nút và c ấu

h mình ạng đều có t biính tuỳ ến cao

2.4 .2 Cấu trúc phần cứng của hệ thống tính toán song song phân cụm. Thành ph n c b ầ ơ ản trong hệ thống song song là nút tính toán và m ng n ạ ối

gi c nútữa ác Do vậy ần ứng ơ ản ủa ệ thống song song l ác thiết ị ph c c b c h à c b

c nút và của ác thiết bị mạng

Các thiết bị phần cứng của nút tính toán

Một nút tính toán ph ải cung cấp chức năng tính toán và chứa ăng lưu trữ ữ n d

liệu Do vậy c nút có ác thể là c máác y t h riêng biệt ín

Một hệ thống tính toán song song phân cụm bao gồm một máy chủ (server) và một tập các máy trạm (workstation) được gọi là các nút tính toán Máy chủ và các máy trạm được ghép nối với nhau thông qua Ethernet hay một số kiểu mạng khác Các thiết bị phần cứng không đòi hỏi những yêu cầu kỹ thuật đặc biệt, hoàn toàn có thể được nâng cấp, bổ xung mà không ảnh hưởng nhiều đến các thành phần khác của hệ thống

- Máy chủ đóng vai trò điều phối hoạt động của toàn bộ hệ thống: giao nhiệm

vụ cho những máy trạm, quản lý hệ thống file và làm điểm để hệ thống giao tiếp với bên ngoài (với hệ thống khác hoặc với mạng internet Các hệ thống )lớn có thể có nhiều máy chủ, mỗi máy chủ quản lý một nhiệm vụ

- Các máy trạm có thể chỉ đơn giản là các máy tính cá nhân (Personal Computer : PC) Các thiết bị của một nút là các thiết bị thông dụng trong máy tính cá nhân như: bộ xử lý, bộ nhớ chính, bộ nhớ thứ cấp và các các giao diện với các thiết bị ngoại vi: PCI, PCI express, NIC, I/O Port

Một trong những nguyên tắc của hệ thống phân cụm là hạn chế chức năng của các nút trạm Thông thường các nút trạm được cấu hình chỉ để thực hiện

Trang 29

những nhiệm vụ cố định (chủ yếu là tính toán Người quản trị hệ thống chủ )yếu tương tác với các máy trạm thông qua máy chủ.

Các thiết bị mạng

Công nghệ mạng thường được sử dụng trong hệ thống tính toán song song phân cụm là LAN và SAN (System Area Network) Các ứng dụng song song với nhu cầu truyền thông lớn sẽ cần một nền tảng truyền thông ổn định, tốc độcao Hai đặc tính chính đối với truyền thông của hệ thống phân cụm là băng thông được đ bằng số triệu bit trên giây (Mbps) và độ trễ được tính bằng o micro giây Các hệ thống phân cụm sử dụng mạng LAN thường dùng Ethernet với băng thông khoảng (10-100) Mbps Hiện nay, tốc độ của Ethernet có thể lên đến 1Gbps như các thiết bị Giga Ethernet, Fast Ethernet Trong khi LAN chỉ cho phép tạo nên một hệ thống có bộ nhớ phân tán thì SAN lại có thể hỗ trợ bộ nhớ phân tán chia xẻ (distributed shared memory) cho phép tổ chức một bộ nhớ logic chia xẻ trong khi bộ nhớ vật lý phân tán trên các nút Tuy nhiên, giá cả của các thiết bị SAN đắt hơn LAN rất nhiều.Các nút trong hệ thống được ghép nối bằng cách sử dụng switch, các switch

có thể được ghép nối với nhau tùy theo số lượng nút của hệ thống

2.4.3 Các phần mềm sử dụng trong hệ thống song song phân cụm

Giá thành rẻ là lợi thế của hệ thống tính toán song song phân cụm thì việc triển khai phần mềm trên hệ thống này lại phức tạp Nhưng phần mềm cho hệ thống tính toán song song phân cụm lại rất đa dạng và sẵn dùng, thậm chí có

cả những giải pháp hoàn chỉnh Các hệ thống phân cụm thường được triển khai trên các hệ điều hành dòng Unix như Linux, Unix, Solaris.Với sự ra đời của Linux và xu hướng lập trình mã nguồn mở, hiện nay có rất nhiều công cụ, thư viện mã nguồn mở và các thành phần phần mềm khác hỗ trợ việc triển khai hệ thống song song phân cụm với khả năng tuỳ biến cao

Trang 30

Các thành phần phần mềm dùng trong hệ thống tính toán song song phân cụm

có thể chia thành 3 nhóm chính sau : Thư viện và môi trường lập trình, các phần mềm quản lý tài nguyên và phân tải, các thư viện truyền thông điệp

a)Thư viện và môi trường lập trình

Lập trình song song trong các hệ thống tính toán song song phân cụm là phức tạp hơn các hệ thống máy tính khác Hệ thống song song phân cụm là mô hình

đa máy tính nên các chương trình song song trên các hệ thống đa máy tính có thể tương thích với hệ thống phân cụm, nhưng trong một số trường hợp hiệu năng thực hiện của chương trình không được tối ưu do hệ thống song song phân cụm có một số đặc điểm riêng biệt

Hệ thống tính toán song song phân cụm là hệ thống máy tính có bộ nhớ phân tán, do vậy truyền thông giữa các nút trong quá trình tính toán thường là truyền thông điệp Các thư viện truyền thông điệp dành cho hệ thống phân cụm hiện nay có thể kể đến là MPI, PVM, Active Message và CMMD (Connected Machine Message ), trong đó MPI với nhiều ưu điểm có thể coi

là sự lựa chọn tốt cho các hệ thống tính toán song song phân cụm Hiện nay,

có nhiều phiên bản cài đặt cho MPI với các chức năng chuẩn của MPI 1.2 và một số chức năng mở rộng riêng LAM MPI là bản cài đặt đã hỗ trợ đầy đủ chuẩn MPI 2.0

Tuy nhiên, bên cạnh sự phát triển mạnh mẽ của mô hình truyền thông điệp,

mô hình dữ liệu song song cũng đang được nghiên cứu, triển khai và áp dụng trong hệ thống tính toán song song phân cụm Do đặc thù của mô hình dữ liệu song song là cần có một trình biên dịch chuyên dụng, để tạo ra các chương trình song song có dữ liệu phân tán, nên việc phát triển các trình biên dịch song song là yếu tố cơ bản của mô hình này Các trình biên dịch này dựa trên một số ngôn ngữ lập trình thông dụng như C/C++, Fortran, Java Sự kết hợp của trình biên dịch song song và ngôn ngữ lập trình tạo lên một ngôn ngữ lập

Trang 31

trình song song cho các hệ thống tính toán phân cụm Các ngôn ngữ lập trình song song tiêu biểu hiện nay là: HPF (Hight Performance Fortran), Titanium (kế thừa từ Java), Para++, ABC+, Split-C, BSP…

Một trong những thành phần quan trọng của các chương trình tính toán song song phân cụm nói riêng và các hệ thống tính toán song song nói chung là các giải thuật song song Hiện nay, các thư viện giải thuật song song rất sẵn dùng

và hầu hết là mã nguồn mở Các thư viện này chưa phải là các giải pháp song song hoàn chỉnh nhưng nó là nền tảng cho việc phát triển các chương trình tính toán song song với các đặc thù riêng Có thể nói sự phát triển của các thư viện này rất mạnh mẽ cả về số lượng lẫn chất lượng Chúng là kết quả của các

đề tài nghiện cứu trong các trường đại học, các viện ngiên cứu trên toàn thế giới Các thư viện có thể kể đến là: LAPACK, BLAS, ARPACK, ScaLAPACK, PETS

b) Các phần mềm quản lý tài nguyên và phân tải

Trong khi các thư viện và các ngôn ngữ lập trình song song tạo ra cho người lập trình môi trường lập trình trên hệ thống tính toán song song phân cụm, các phần mềm quản lý tài nguyên và phân tải lại tạo ra một môi trường tính toán hiệu quả và ổn định Các phần mềm này càng có ý nghĩa khi số lượng các nút tính toán càng lớn và số lượng các chương trình thực hiện trên hệ thống là nhiều Phân tải là việc phân bổ các tiến trình tính toán trên tài nguyên hệ thống sao cho hiệu năng hoạt động của hệ thống là tối ưu Do đó trong chính các phần mềm phân tải phải sử dụng các phần mềm quản lý tài nguyên và lập lịch Phần mềm quản lý tài nguyên còn được sử dụng bởi người sử dụng trong việc quản trị hệ thống, đánh giá hiệu năng hệ thống Một số sản phẩ phân tải m

và quản lý tài nguyên thường được sử dụng trong các hệ thống tính toán song song phân cụm là:

Trang 32

- PBS (Portable Batch System) : hệ thống phân tải và quản lý tài nguyên rất mạnh do NASA phát triển Hệ thống này được sử dụng rất phổ biến trong các

hệ thống tính toán hiệu năng cao Chức năng chính của hệ thống là tiếp nhận các công việc từ người sử dụng, bảo vệ công việc đó cho đến khi nó được thực hiện, thực hiện công việc và trả lại kết quả cho người sử dụng PBS có thể được cấu hình chạy trên một hệ thống đơn hoặc một hệ thống đa máy tính

Sự linh động này làm cho PBS có khả năng đáp ứng cho nhiều hệ thống tính toán

- CODINE : phần mềm phân tải dùng cho các hệ thống máy tính máy tính đồng bộ như SMP hoặc các siêu máy tính dạng vector Phần mềm này còn cung cấp các cơ chế để quản lý các chính sách của hệ thống phân c và cân ụmbằng tải động cho các công việc

- CONDOR : thường dùng để phân tải tài nguyên và lập lịch cho các công việc trên hệ thống máy trạm (workstations) Nó hỗ trợ sử dụng các điểm kiểm tra (checkpoint) và chuyển giao các công việc giữa các máy trạm

c) Các thư viện truyền thông điệp

Truyền thông điệp (message passing) là cơ chế giao tiếp phổ biến trong tính toán song song Các chương trình theo mô hình truyền thông điệp sẽ có một trong hai dạng đơn lệnh – đa dữ liệu (SIMD) và đa lệnh đa dữ liệu (M– IMD) Truyền thông điệp được sử dụng nhiều vì nó là cơ chế song song đơn giản, sử dụng các trình biên dịch hiện có như C/C++, Fotran, Java… không cần sự hỗ trợ của một trình biên dịch đặc biệt nào Hơn nữa, các thư viện truyền thông điệp rất linh hoạt và sẵn dùng, người lập trình có thể tự điều khiển việc song song của chương trình, tối ưu nó để tăng hiệu năng thực hiện Các thư viện truyền thông điệp phổ biến hiện nay có thể kể đến là MPI (Message Passing Interface), PVM (Parallel Virtual Machine) và Active Message Mỗi thư viện đều có các ưu nhược điểm riêng nhưng MPI được coi là thư viện truyền thông

Trang 33

điệp ổn định, hiệu quả, linh hoạt và thích hợp cho các chương trình theo mô hình truyền thông điệp.

MPI là một chuẩn được phát triển bởi MPIF (Message Passing Interface Forum) Nó định ra một giao diện lập trình thích hợp cho việc viết các chương trình theo mô hình truyền thông điệp với mục tiêu linh hoạt và hiệu quả MPIF, với sự tham gia của hơn 40 tổ chức, bắt đầu đưa ra chuẩn này từ năm

1992 với phiên bản 1.0 Hiện nay tồn tại hai thư viện truyền thông điệp theo chuẩn MPI phổ biến là LAM và MPICH

2.5 Kiến trúc hệ thống tính toán song song phân cụm BKCLUSTER BKCluster là hệ thống tính toán song song phân cụm được xây dựng tại Trung Tâm Tính Toán Hiệu Năng Cao trường Đại Học Bách Khoa Hà Nội

Hệ thống có mục đích chính làm dịch vụ tính toán để thực hiện các bài toán

kỹ thuật có yêu cầu tính toán lớn

2.5.1 Kiến trúc phần cứng của hệ BKCLUSTER

- Hệ thống BKLUSTER được xây dựng theo mô hình song song phân cụm với 1 máy tính đóng vai trò máy chủ, 32 máy tính đóng vai trò máy trạm, các máy tính được nối với nhau theo kiểu Ethernet – thông qua switch

Cấu hình phần cứng của các máy trong hệ thống :

Trang 34

Switch : BayStack 450 24T 10/100/1000 Switch

Trung t m máy ính trường Đại ọc ách Khoa Hâ t h B à N n ội ơi thực ập tin đại t

cương cho cả trường, thực ập ng cao v đào ạo ác ớp ắn ạn t nâ à t c l ng h

Hàng năm được ổ sung một ố thiết bị m nh b s ới ằm đáp ứng nhu cầu thực hành

c ủasinh viên

Được s giúp c ự đỡ ủa trung t m hiệu ănâ n g cao, trung tâm đã xây dựng phòng thực tập nâng cao sử ụng ng nghệ song song ph n cụ cluster d cô â m

C h ph cấu ình ần ứng ủa ệ thốn c h g:

Máy chủ:

Server IBM xS ies 260er

2x CPU Intel Xeon 3.16 MHz

IBM Lenovo ThinkCentre E50

CPU P4 3.0 GHz With HyperTheading Technology

Trang 35

Hình 2.8 Kiên trúc phần cứng của hệ thống BKCLUSTER

2.5.2 Kiến trúc phần mềm cài đặt trong hệ BKCluser

Các máy chủ và máy trạm trong hệ thống BKSupComp đều cài đặt hệ điều hành RedHat Linux 7.3

Giao diện ph n át triể ứng ụng d

Thư vi ệntruyền th ông i đ ệp

H ệthống ản qu lý phân tải

HĐH LINUX Các n tút ính toán

Bảng 2.1 Kiến trúc phần ềm ệ thống m h

Trang 36

a) Thư viện và môi trường lập trình :

Trình biên dịch C : gcc, cc

Trình biên dịch C++ : g++

Trình biên dịch Fortran : g77

Thư viện tính toán : Linpack, Scalapack

b) Phần mềm quản lý tài nguyên và phân tải

OpenPBS là h ệ thống ph n tải của NASA át triển Phiâ ph ên bản OpenPBS là phiên bản mã ngu mồn ở PBS ra đời sau các ệ thống ph n tải ác ư DQS, h â kh nh Condor nên khắc ục được ột ố ược đ ểm ủa ệ thống tr n, hơn nữa ph m s nh i c h êPBS được thiết kế theo hướng mở có kh nả ăng thay đổi và t ối ưu cho ph ợpù h

v h ới ệthống

c)Thư viện truyền thông điệp

Hệ thốn BKCl terg us là h ệ thống tính toán song song ph n cụm theo m ìnhâ ô h truyền ông i th đ ệp

Hệ thốn sử dụng thư viện MPICH phiên bản 1.2.4 Khác với đa số các thư g viện truyền thông điệp đã được biên dịch thành dạng các gói RPM để có thể

dễ dàng cài đặt, MPICH là thư viện duy nhất được cung cấp dưới dạng mã nguồn mở Do đặc tính mã nguồn mở, khi cài đặt MPICH yêu cầu các bước cấu hình và thiết lập tham số tương đối phức tạp, tuy nhiên người sử dụng có thể sửa đổi mã lệnh của MPICH để có thể xây dựng riêng một thư viện truyền thông điệp có thêm những đặc tính phù hợp với hệ thống của mình Trên thế giới đã có một số dự án nghiên cứu xây dựng môi trường truyền thông điệp có khả năng chịu lỗi (Fault Tolerant Message Passing Interface – FTMPI) dựa trên nền thư viện MPICH mà tiêu biểu là MPICH-V1 và MPICH-V2 Một yêu cầu đặt ra với hệ BKCluster là phải có khả năng chống lỗi cho nên đã sử dụng thư viện MPICH thay cho thư viện LAM -MPI là thư viện có sẵn khi cài đặt

hệ điều hành Linux 7.3

Trang 37

Hình 2.9 Hai phần mềm PBS và MPICH trong hệ thống BKCluster

2.6 Quy trình đánh giá hiệu năng của hệ thống BKCluster

Một số phần mềm đo hiệu năng thông dụng ử ụng mã nguồn mở để đánh s dgiá hiệu năng của hệ BKCluster Các phần mềm này sẽ được biên dịch và chạy trên toàn bộ hệ thống để đưa ra những thông số về tốc độ tính toán, tốc ,

độ truy cập bộ nhớ trong, tốc độ truyền thông, và tốc độ gửi thông điệp của thư viện MPICH Từ những thông số trên, ta có thể đánh giá một cách tổng quát về hệ thống tính toán song song phân cụm BKCluster Việc triển khai cài đặt và sử dụng các phần mềm đo hiệu năng trên hệ thống cụ thể như sau :

Ngày đăng: 26/01/2024, 15:34

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN