Biểu đồtrên được gọi là Ethernet Saturation Graph, nó cho thấy tốc độtruyền
thông của các hàm MPICH sẽtăng lên rất nhanh khi kích thước gói tin tăng
lên ứng với khoảng trước điểm Saturation Point, sau đó dù kích thước gói tin
có tăng lên rất nhanh (ứng với sựtăng thời gian truyền thông theo hàm mũcơ
số10) thì tốc độtruyền thông trong mạng cũng chỉtăng lên một cách tuyến
tính
74 trang |
Chia sẻ: lylyngoc | Lượt xem: 2584 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn Đánh giá hiệu năng hệ thống song song phân cụm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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
32
đ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 :
Máy chủ :
• HP NetServer LH6000
• 6 x CPU Intel Pentium III Xeon 700 MHz
• Bộ nhớ trong : 1GB SDRAM
• NetWork Card : 10/100 TX NIC
Máy trạm :
• CPU Intel Pentium III 500 MHz
• Bộ nhớ trong : 256 MB SDRAM
• NetWork Card : 10/100 3COM Ethernet Adapter
33
Switch : BayStack 450-24T 10/100/1000 Switch
-Trung tâm máy tính trường Đại học Bách Khoa Hà Nội nơi thực tập tin đại
cương cho cả trường, thực tập nâng cao và đào tạo các lớp ngắn hạn.
Hàng năm được bổ sung một số thiết bị mới nhằm đáp ứng nhu cầu thực hành
của sinh viên.
Được sự giúp đỡ của trung tâm hiệu năng cao, trung tâm đã xây dựng phòng
thực tập nâng cao sử dụng công nghệ song song phân cụm cluster.
Cấu hình phần cứng của hệ thống:
Máy chủ:
Server IBM xSeries 260
2x CPU Intel Xeon 3.16 MHz
2 GB RAM DDR2
3 x 36 GB HDD- 15K RPM HostSwap Drive
Support RAID 0,1,5
Network Controller Integrated: 10/100/1000 Gigabit
Máy trạm:
IBM Lenovo ThinkCentre E50
CPU P4 3.0 GHz With Hyper Theading Technology
512 MB RAM DDR
80GB HDD 7200RPM SATA. Ethernet 10/100 Mbps
Máy trạm
FPT CPU PIII 800MHz
128MB RAM/ 20GB HDD. Ethernet 10/100Mbps.
34
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át triển ứng dụng
Thư viện truyền thông điệp
Hệ thống quản 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ềm hệ thống
35
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 phát triển. Phiên bản OpenPBS là
phiên bản mã nguồn mở. PBS ra đời sau các hệ thống phân tải khác như DQS,
Condor nên khắc phục được một số nhược điểm của hệ thống trên, hơn nữa
PBS được thiết kế theo hướng mở có khả năng thay đổi và tối ưu cho phù hợp
với hệ thống.
c)Thư viện truyền thông điệp
Hệ thống BKCluster là hệ thống tính toán song song phân cụm theo mô hình
truyền thông điệp.
Hệ thống sử dụng thư viện MPICH phiên bản 1.2.4. Khác với đa số các thư
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.
36
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 sử dụng mã nguồn mở để đánh
giá 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 :
37
Mục đích
Tên phần mềm đánh giá hiệu
năng
Đánh giá hiệu năng tính toán của CPU
đơn trên các máy trạm
Linpack
Đánh giá hiệu năng tính toán của toàn
bộ hệ thống
Nasa Parallel Benchmark
Đánh giá hiệu năng truy cập bộ nhớ
trong trên các máy trạm
Stream
Đánh giá hiệu năng truyền thông mạng
NetPerf
Đánh giá hiệu năng của thư viện
MPICH
NetPIPE
Bảng 2.2 Các phần mềm đo hiệu năng
38
Hình 2.10 Quy trình đo hiệu năng hệ BKCluster
2.6.1 Đo hiệu năng tính toán (năng lực của CPU)
Do mục đích chính của hệ thống là thực hiện việc tính toán kỹ thuật nên cần
phải xác định các số đo phản ánh tốc độ thực hiện các phép toán. Quá trình đo
sẽ được thực hiện trên hai mặt sau của hệ thống :
a) Đo hiệu năng tính toán của từng máy trạm : quá trình này sẽ đưa ra tốc
độ tính toán của một máy trạm riêng lẻ. Bài toán được thực hiện một cách
tuần tự, nói một cách khác là ta tách rời khỏi hệ thống để xác định năng lực
tính toán độc lập của máy trạm .
Phần mềm đo hiệu năng được sử dụng là Linpack, phiên bản viết bằng ngôn
ngữ Fortran. Phần mềm này sẽ gọi hai hàm của thư viện Lapack là một trong
những thư viện phép toán kỹ thuật có sử dụng trong hệ thống BKCluster.
Chương trình Linpack sẽ được biên dịch bằng trình biên dịch g77 và chạy trên
các máy trạm, kết quả thu được dưới dạng MFLOPS.
b) Đo hiệu năng tính toán của toàn bộ hệ thống : quá trình này sẽ đưa ra
tốc độ tính toán của toàn bộ hệ thống đối với một số bài toán song song như
39
một máy tính duy nhất. Quá trình đo hiệu năng được tiến hành bằng cách
chạy một số chương trình song song và đo tốc độ tính toán trên các máy của
hệ thống với sự thay đổi về số lượng máy trạm và độ lớn của bài toán.
Gói phần mềm đo hiệu năng được sử dụng là NPB (Nasa Parallel Benchmark)
của NASA. Gói phần mềm này gồm 5 chương trình hạt nhân EP, CG, MG,
FT, IS và 3 chương trình mô phỏng ứng dụng LU, BT, SP. Mỗi chương trình
trong gói phần mềm có một đặc thù riêng :
EP - Embrassingly Parralel : hạt nhân này được dùng để đo khả năng tính
toán độc lập của các vi xử lý trong một hệ thống máy tính song song. Chương
trình này hạn chế việc sử dụng các thao tác trao đổi dữ liệu giữa các vi xử lý,
do đó kết quả thu được có thể xem là hiệu năng cực đại về khả năng tính toán
mà mọi chương trình ứng dụng có thể đạt được.
MG – MultiGrid : đây là hạt nhân đo hiệu năng của hệ thống về mặt truyền
thông với dữ liệu truyền thông có tính cấu trúc.
CG - Conjugate Gradient : thực hiện các phép toán trên ma trận thưa. Các
giá trị của ma trận thưa được sinh ngẫu nhiên. Kết quả đo của hạt nhân này
phản ánh hiệu năng về mặt truyền thông của bài toán khi dữ liệu là phi cấu
trúc.
FT - 3 D Fast Fourier Transformation : sử dụng phép biến đổi Fourier
nhanh sang miền tần số trong không gian 3 chiều trên tập các giá trị cho
trước. Kết quả của hạt nhân này phản ánh hiệu năng về mặt truyền thông của
hệ thống.
IS - Integer Sort : hạt nhân này sinh ra tập các giá trị nguyên, phân bố đều,
sau đó là thực hiện sắp xếp. Sự phân bố ban đầu của các số nguyên là ảnh
hưởng đến hiệu năng của hệ thống.
40
Ba chương trình mô phỏng LU, BT, SP được xây dựng nhằm biểu diễn chức
năng của chương trình tính toán hoạt động của chất lỏng CFD –
Computational Fluid Dynamic.
Ứng với mỗi chương trình trên, gói phần mềm còn cho phép thay đổi kích
thước bài toán đầu vào. Các kích thước này chia thành 5 lớp có tên tương ứng
là S, W, A, B, C trong đó lớp S là lớp có kích thước nhỏ nhất, lớp C là lớp có
kích thước lớn nhất. Tùy thuộc vào từng mục đích cụ thể mà ta chọn kích
thước thuộc lớp phù hợp, thông thường lớp S (Sample) và W (WorkStation)
được dùng để thử nghiệm chương trình, các lớp A, B, C được dùng để kiểm
tra hiệu năng của hệ thống ứng với những tải thực theo kích thước tăng dần .
Cụ thể tên gọi và kích thước của 5 lớp này như sau :
Lớp
Độ lớn dữ liệu đầu vào
S 224
W 226
A 228
B 230
C 232
Bảng 2.3 Độ lớn của các lớp dữ liệu gói phần mềm NPB
Gói phần mềm này cho phép người quản trị đánh giá được hiệu năng tính toán
của toàn hệ thống và dự đoán được hệ thống thích hợp với những bài toán
song song dạng nào.
Quá trình đo sẽ được thực hiện như sau :
41
Biên dịch các chương trình trong gói phần mềm NPB với các trình biên dịch
gcc và g77, thư viện truyền thông điệp MPICH, kích thước bài toán là lớp A.
Chạy các chương trình đo hiệu năng trên các máy trạm, xác định hiệu năng
tương ứng, vẽ biểu đồ.
2.6.2 Đo hiệu năng truy cập bộ nhớ trong
Một yếu tố ảnh hưởng lớn đến khả năng tính toán trên từng máy trạm đó là
tốc độ truy cập vào bộ nhớ trong (RAM). Đối với hệ điều hành Linux, khi độ
lớn của toàn bộ các tiến trình vượt quá dung lượng của bộ nhớ trong thì sẽ
dẫn đến hiện tượng truy cập vào swap. Quá trình đo hiệu năng truy cập bộ
nhớ trong sẽ cho thấy giới hạn trên của kích thước bài toán để có thể chạy một
cách hiệu quả đối với cấu hình phần cứng của các máy trạm. Chương trình đo
hiệu năng sẽ chạy dưới dạng một bài toán tuần tự trên một nút mạng độc lập.
Phần mềm đo hiệu năng được sử dụng là phần mềm Stream. Phần mềm này
được viết bằng ngôn ngữ C, thực hiện các phép toán trên dữ liệu là các mảng
một chiều với kiểu số thực độ chính xác kép (8 byte). Kích thước của mảng có
thể thay đổi để tìm ra dung lượng bộ nhớ trong cực đại có thể sử dụng cho
một bài toán và kích thước bài toán là như nào thì tốc độ truy cập vào bộ nhớ
trong là lớn nhất.
Quá trình đo sẽ được thực hiện như sau :
Thay đổi kích thước của mảng giá trị đầu vào (tức là độ lớn) của bài toán lần
lượt từ khoảng 50 MB đến một giá trị lớn hơn 256 MB (vì bộ nhớ trong của
mỗi máy trạm là 256 MB).
Xác định khoảng giá trị của kích thước giá trị đầu vào mà tại đó tốc độ truy
cập bộ nhớ trong đối với các phép toán ma trận là lớn nhất.
42
Xác định giá trị lớn nhất của kích thước giá trị đầu vào mà tại đó tốc độ truy
cập bộ nhớ trong giảm xuống đột ngột (lúc này xảy ra hiện tượng truy cập vào
swap).
Thu thập số liệu tại mỗi điểm đo, vẽ thành biểu đồ.
2.6.3 Đo hiệu năng truyền thông.
Khả năng truyền thông giữa các nút trong toàn bộ hệ thống tính toán song
song phân cụm ảnh hưởng rất lớn đến khả năng hoạt động của toàn hệ thống.
Trong hệ BKCluster các máy trạm và máy chủ được nối với nhau thông qua
switch.
Phần mềm đo hiệu năng được sử dụng là phần mềm Netperf (Net
Performance). Netperf cho phép đánh giá hiệu năng truyền thông giữa hai nút
bất kỳ trong mạng Quá trình đo hiệu năng truyền thông mạng sẽ đưa ra những
con số chính xác về tốc độ gửi và nhận gói tin giữa hai nút bất kỳ trong hệ
thống. Những kết quả thu được sẽ cho phép người quản trị rút ra kết luận về
những mặt sau :
Kích thước gói tin truyền thông bằng bao nhiêu thì tốc độ truyền là cao nhất
Ảnh hưởng của vùng đệm socket đến tốc độ nhận gói tin
So sánh tốc độ truyền tin giữa một số giao thức
Quá trình đo sẽ được thực hiện giữa hai máy trạm với nhau và giữa máy trạm
với máy chủ.
2.6.4 Đo hiệu năng của thư viện MPICH
Hiệu năng của thư viện MPICH được đánh giá bằng phần mềm NetPIPE.
Phần mềm náy cho phép đo hiệu năng truyền thông mạng ứng với nhiều giao
thức khác nhau (TCP, MPI …), tuy nhiên khi ứng dụng vào hệ thống
BKCluster, ta chỉ biên dịch để thực hiện đo hiệu năng truyền thông điệp bằng
thư viện MPI (việc đo hiệu năng truyền thông bằng giao thức TCP đã được
thực hiện bằng phần mềm NetPerf). Quá trình đo hiệu năng sẽ thực hiện giữa
43
hai máy trạm. Kết quả quan trọng nhất cần đưa ra là kích thước gói tin ứng
với tốc độ truyền cực đại.
Các số liệu thu được sẽ dùng để vẽ các biểu đồ sau :
Biểu đồ biểu thị tương quan giữa tốc độ truyền thông và dung lượng gói tin
Biểu đồ biểu thị tương quan giữa tốc độ truyền thông và thời gian truyền tin
Biểu đồ biểu thị tương quan giữa dung lượng và thời gian truyền gói tin
Các biểu đồ trên cho ta cái nhìn khách quan về hiệu năng của thư viện
MPICH.
44
CHƯƠNG 3 CÁC PHƯƠNG PHÁP ĐO HIỆU NĂNG
3.1 Đo hiệu năng tính toán
Nguyên tắc hoạt động chung của các chương trình đo hiệu năng tính toán là
thực hiện một số lớn các câu lệnh tính toán, đo thời gian chạy toàn bộ chương
trình, sau đó tính ra kết quả có dạng số phép tính trong một đơn vị thời gian
hoặc tổng số câu lệnh, tổng số hàm thực hiện trong một đơn vị thời gian.
Những chương trình đo hiệu năng tính toán ban đầu như WhetStone,
DhryStone đo hiệu năng bằng cách thực hiện một tập các module con, mỗi
module có chức năng thực hiện phép toán trên các kiểu dữ liệu riêng như : số
nguyên, số thực hay thực hiện các câu lệnh như : lệnh rẽ nhánh, lệnh gọi các
chương trình con. Với mỗi module, người sử dụng có thể thay đổi các tham số
đầu vào cho phù hợp với từng hệ thống cụ thể. Các tham số này liên quan đến
kích thước của dữ liệu đầu vào dưới dạng số nghìn lần đoạn lệnh (instruction)
thực hiện trong mỗi module. Kết quả trả về của chương trình sẽ có thứ nguyên
được định nghĩa riêng như :
MWIPS (số nghìn đoạn lệnh của WhetStone trong 1 đơn vị thời gian) đối với
các kết quả trả về của chương trình WhetStone.
DhryStone Per Second (số vòng lặp DhryStone trong 1 đơn vị thời gian) đối
với kết quả trả về của chương trình DhryStone.
Các chương trình đo hiệu năng tính toán từ dạng mã lệnh đơn giản (Synthetic
Code) được phát triển lên thành các chương trình (hoặc module chương trình)
thực hiện mục đích cụ thể hơn trong tính toán khoa học, đó là các hạt nhân
(kernel) và mô phỏng ứng dụng (Simulation Application). Đối với những
chương trình ở dạng trên, các phép toán chủ yếu thực hiện trên miền số thực
và kết quả được trả về có thứ nguyên là MFLOPS (số triệu lần phép toán số
45
thực trong 1 giây).Tuy nhiên, tuỳ theo từng mục đích đặc biệt, vẫn có thể tồn
tại những thứ nguyên khác (tuy nhiên hiện nay điều này rất ít khi xảy ra), ví
dụ như thứ nguyên kết quả trả về của 2 hạt nhân IS (Interger Sort) và EP
(Embrassingly Parallel) trong gói phần mềm NPB có thứ nguyên là MOPS.
Đối với hạt nhân IS, phép toán được thực hiện là “sắp xếp số nguyên” còn đối
với hạt nhân EP, phép toán được thực hiện là “sinh ngẫu nhiên các số phức”.
Đơn vị đo hiệu năng thông dụng nhất hiện nay là MFLOPS, để tính ra được
kết quả theo thứ nguyên này cần phải xác định thời gian thực hiện chương
trình (Benchmark Time) và tổng số phép toán dấu phẩy động (Floating Point
Operation Count) được thực hiện.
Thời gian thực hiện chương trình (Benchmark Time) ký hiệu là T(N,p) :
được định nghĩa là thời gian để thực hiện bài toán là N (size N) với p vi xử lí.
Bài toán được gọi là có độ lớn N nếu vector biểu diễn các tham số đầu vào
của bài toán có N phần tử.
Số phép toán dấu phẩy động (floating point operation count) ký hiệu là F(N)
đại lượng này được tính bằng số phép toán dấu phẩy động cần được thực hiện
khi giải quyết bài toán có kích thước N. Việc kiểm tra được tiến hành trên cả
bài toán đo hiệu năng và chương trình cài đặt tương ứng để xác định ra số
phép tính dấu phẩy động cần phải thực hiện trong việc giải quyết các bài toán
đơn giản. Hơn nữa có thể còn cần phải có một chương trình đóng vai trò bộ
đếm hoặc một phần cứng chuyên dụng dùng để đếm các phép toán dấu phẩy
động được thực hiện khi giải quyết các bài toán phức tạp. Để phân biệt các
loại phép tính dấu phẩy động, người ta định nghĩa thêm các loại số đo như sau
Benchmark floating point operation count, ký hiệu là FB(N) : là số phép
toán dấu phẩy động được sử dụng để thực hiện bài toán ở dạng tuần tự.
46
Hardware floating point operation count, ký hiệu là FH(N,p) : là toàn bộ số
phép toán dấu phẩy động mà phần cứng phải thực hiện khi giải quyết bài toán
ở dạng song song với p vi xử lí. Giá trị này có thể lớn hơn giá trị FB(N).
Dưới đây là bảng biểu diễn số phép toán trên dấu phẩy động (flop) thực sự đối
với từng phép tính cụ thể :
Kiểu phép toán số thực
Số phép toán số thực (flop)
cộng, trừ, nhân 1
Chia, căn bặc hai 4
Lũy thừa, sin, cos … 8
Bảng 3.1 Sự tương ứng các phép toán số thực và đơn vị flop
Từ hai thông số trên suy ra số phép toán dấu phẩy động thực hiện trong một
đơn vị thời gian (Benchmark Performance) ký hiệu là RB(N,T): được định
nghĩa bằng tỷ lệ của Benchmark floating point operation count so với
Benchmark Time.
),(
)(
),(
pNT
NFpNR BB =
Đơn vị đo của đại lượng này là MFLOP/s
Qua công thức định nghĩa trên, ta thấy rằng hiệu năng của hệ thống được đánh
giá dựa trên benchmark floating point operation count hơn là dựa vào các
phép toán dấu phẩy động đã thực sự được phần cứng thực hiện. Mặc dù việc
tính toán với bộ nhớ phân tán có thể sẽ thực hiện nhiều phép tính hơn là việc
tính toán tuần tự, tuy nhiên chỉ có Benchmark floating point operation count
là được sử dụng để đo hiệu năng của hệ thống.
47
3.2 Đo hiệu năng truy cập bộ nhớ trong
Các phần mềm đo hiệu năng truy cập bộ nhớ trong (RAM) thường được xây
dựng theo nguyên tắc sau :
- Cấp phát một khối lượng lớn bộ nhớ trong cho các biến tĩnh sử dụng trong
chương trình (thường là kiểu mảng 1 chiều với các phần tử số thực).
- Thực hiện các phép toán cộng, trừ, nhân, chia hoặc tổ hợp các phép toán
trên, đo thời gian thực hiện cả chương trình, từ đó tính ra kích thước của
những dữ liệu đã cấp phát được xử lý trong một đơn vị thời gian.
Kết quả trả về của các phần mềm đo hiệu năng truy cập bộ nhớ trong thường
có thứ nguyên là MB/s (MegaByte per Second). Thứ nguyên này biểu diễn dữ
liệu tính theo MegaByte được xử lý trong vòng 1 giây.
Một đặc điểm của hệ điều hành Linux là khi tổng kích thước của bộ nhớ cần
cấp phát vượt dung lượng của bộ nhớ trong thì sẽ dẫn đến việc truy cập vào
vùng đệm swap. Swap thuộc vào bộ nhớ ngoài nên tốc độ truy cập sẽ chậm
hơn tốc độ truy cập vào bộ nhớ trong rất nhiều, điều này sẽ gây ra việc giảm
đột ngột tốc độ thực hiện các phép toán trên. Từ các kết quả đo hiệu năng truy
cập bộ nhớ trong, người quản trị có thể biết được kích thước cực đại của bài
toán là bao nhiêu thì tốc độ tính toán là cao nhất.
3.3 Đo hiệu năng truyền thông
Các chương trình đo hiệu năng truyền thông luôn có hai thành phần, module
server cài đặt trên máy đích và module client cài đặt trên máy nguồn. Module
server sẽ gửi các gói tin có kích thước khác nhau đến máy đích, máy đích sẽ
đo thời gian từ lúc gửi đến lúc nhận, kích thước của gói tin nhận được. Tùy
theo từng phần mềm mà những kết quả này có thê được hiển thị ngay tại máy
đích hoặc được gửi về và hiển thị tại máy nguồn. Để thực hiện điều này, hai
module server và client sẽ tạo ra hai kênh thông tin sau :
48
Kênh điều khiển : kênh này có nhiệm vụ truyền các tham số thiết lập ban
đầu, thông tin về cấu hình (khả năng này cho phép dùng module client để thiết
lập cấu hình của máy đích) … Kênh này cũng đóng vai trò truyền kết quả về
máy nguồn (nếu cần).
Kênh dữ liệu : kênh này độc lập với kênh điều khiển có chức năng truyền các
gói dữ liệu từ máy nguồn đến máy đích để thực hiện phép đo, quá trình kết
nối và giao thức truyền thông tuỳ thuộc vào mục đích đo hiệu năng và tuân
theo sự thiết lập ban đầu của kênh điều khiển.
Tốc độ truyền dữ liệu trên mạng phụ thuộc vào một số yếu tố sau :
- Giao thức gửi và nhận tin.
- Kích thước gói tin gửi.
- Kích thước bộ nhớ đệm của socket tại máy gửi và máy nhận.
Các thông số này có thể được thay đổi khi biên dịch các module hoặc nhập
vào dưới dạng tham số khi thực hiện chương trình. Kết quả đo hiệu năng
truyền thông mạng thường có thứ nguyên là MBps (MegaBit per second).
Đây là tổng số bit truyền được trong 1 giây.
3.4 Đo hiệu năng của thư viện phần mềm
Đo hiệu năng của thư viện lập trình thực chất là việc đo thời gian thực hiện
một số hàm quan trọng trong thư viện với các giá trị đầu vào khác nhau. Tuỳ
vào chức năng của thư viện cũng như mục đích của việc đánh giá hiệu năng
mà có hai cách đánh giá hiệu năng của thư viện trực tiếp và gián tiếp.
Đánh giá hiệu năng thư viện phần mềm một cách trực tiếp : một số
chương trình kiểu này là Linpack đánh giá hiệu năng thư viện tính toán
Lapack, ATLAS đánh giá hiệu năng thư viện tính toán BLAS. Kết quả trả về
có thứ nguyên phụ thuộc vào chức năng của thư viện, ví dụ Linpack trả về kết
quả có thứ nguyên là MFLOPS.
49
Đánh giá hiệu năng thư viện phần mềm một cách gián tiếp : Không phải
thư viện phần mềm nào cũng tồn tại phần mềm riêng đánh giá hiệu năng.
Trong trường hợp này thì quá trình đánh giá hiệu năng có thể thực hiện một
cách gián tiếp dựa vào các phần mềm chuyên dụng khác, ví dụ như phần mềm
đo hiệu năng truyền thông NetPIPE có thể được sử dụng để đánh giá hiệu
năng của các thư viện truyền thông điệp theo chuẩn MPI. Phần mềm này cho
phép định hướng biên dịch có sử dụng các hàm truyền thông điệp hoặc không,
so sánh tốc độ truyền thông mạng trong trường hợp có và không sử dụng thư
viện MPI sẽ cho thấy hiệu năng của thư viện này.
50
CHƯƠNG 4 XÂY DỰNG CHƯƠNG TRÌNH THỰC HIỆN QUI TRÌNH ĐO
HIỆU NĂNG
4.1 Xây dựng chương trình thực hiện quy trình đo hiệu năng
Các phần mềm đo hiệu năng được cung cấp từ nhiều nguồn khác nhau,
viết bằng nhiều ngôn ngữ lập trình như C, C++, Fortran. Có những chương
trình chỉ được viết bằng duy nhất một ngôn ngữ như NetPerf, NetPIPE viết
bằng ngôn ngữ C, Linpack viết bằng Fortran, nhưng cũng tồn tại hiện tượng
trong một gói phần mềm có các chương trình con được viết bằng nhiều ngôn
ngữ khác nhau như các chương trình đo hiệu năng NPB. Hơn nữa, mỗi
chương trình sẽ có thể liên kết đến nhiều thư viện khác nhau, trong đó có thư
viện sẵn có trong hệ điều hành như pthread.h, math.h,… nhưng đồng thời
cũng có những thư viện chuyên dụng như MPICH.
Các phần mềm thường được cung cấp mã nguồn mở dưới dạng một tập các
file nguồn, file header, không phải phần mềm nào cũng được cung cấp kèm
theo hai file trợ giúp biên dịch là config và makefile. Vì vậy khi dịch và chạy
chương trình đôi khi người thực hiện cần phải trực tiếp đưa vào những tham
số hoặc thay đổi một vài tham số trong makefile cho phù hợp với hệ thống cụ
thể.
Kết quả của mỗi phần mềm thường là nhiều thông số, trong đó khi vẽ biểu đồ
và đánh giá hiệu năng, ta chỉ cần chú ý đến một vài giá trị tiêu biểu. Việc đọc
các kết quả trả về của phần mềm cũng cần phải tham khảo thêm một số tài
liệu hướng dẫn (thường là lấy tại trang web của những nhà cung cấp). Điều
này dẫn đến quá trình đánh giá kết quả (thay đổi các giá trị đầu vào, vẽ biểu
đồ, nhận xét) phụ thuộc nhiều vào cá nhân người thực hiện đo hiệu năng.
51
Vì những lý do trên mà ta cần đến một công cụ tương đối trong suốt hơn về
mặt hệ thống để quá trình đánh giá hiệu năng có thể tiến hành một cách thuận
lợi hơn. Các chương trình sẽ tự động hoá việc thực hiện các công việc sau :
- Thay đổi các giá trị đầu vào : Các giá trị đầu vào được xác định dựa trên các
tham số thực tế của hệ thống BKCluster.
- Vẽ biểu đồ dựa trên một số giá trị đầu ra : quá trình vẽ biểu đồ được thực
hiện dựa trên việc sử dụng phần mềm GnuPlot. GnuPlot là chương trình vẽ đồ
thị, biểu đồ dạng 2D và 3D cung cấp kèm theo hệ điều hành Linux 7.3.
Để có thể thực hiện được những điều trên, ta cần phải đưa ra kết quả ở định
dạng tương thích với gnuplot, thông thường để vẽ biểu đồ dạng 2D thì chỉ cần
file dữ liệu chia thành hai cột, trong đó cột thứ nhất là dữ liệu trục hoành, cột
thứ hai là dữ liệu của trục tung. Điều này dẫn đến việc các câu lệnh in giá trị
trong các chương trình cần phải được thay đổi cho phù hợp.
4.2 Chương trình thực hiện các công việc đo hiệu năng.
4.2.1 Chương trình thực hiện việc đo hiệu năng tính toán.
Quá trình đo hiệu năng tính toán được thực hiện với hai phần mềm Linpack
và NPB. Phần mềm Linpack dùng để đo hiệu năng tính toán của CPU đơn,
gói phần mềm NPB được sử dụng để đo hiệu năng tính toán của toàn bộ hệ
thống.
- Chương trình thực hiện quá trình đo hiệu năng tính toán CPU đơn :
Do phần mềm Linpack được cung cấp dưới dạng file nguồn viết bằng ngôn
ngữ Fortran cho nên cần có quá trình biên dịch sang file execute và sau đó
chạy chương trình. Kết quả chương trình sẽ được trả về dưới dạng nhiều cột,
mỗi cột có một ý nghĩa riêng như tốc độ tính toán, độ chính xác. Hơn nữa
phép đo cũng được thực hiện tất cả 8 lần, 8 lần đó có thể cho những kết quả
khác nhau, giá trị duy nhất ta cần là tốc độ tính toán.
- Chương trình được viết để thực hiện những việc sau :
52
Dùng trình biên dịch g77 dịch mã nguồn của Linpack thành dạng execute.
Thực hiện file execute, thống kê kết quả, đưa ra hiệu năng tính toán của CPU
- Chương trình thực hiện quá trình đo hiệu năng tính toán của toàn bộ hệ
thống.
Gói phần mềm NPB đã cung cấp cho người sử dụng makefile viết sẵn. Thực
chất của makefile chính là mộtchương trình đặc biệt cho nên đối với gói phần
mềm NPB, ta không cần phải xây dựng chương trình riêng mà có thể sử dụng
luôn makefile có sẵn theo 1 trong 2 cách :
Biên dịch từng chương trình : người sử dụng biên dịch chương trình bằng
dòng lệnh theo dạng sau :
$make tên_chương_trình NPROCS=# CLASS=kiểu_lớp
Ý nghĩa các tham số trên như sau :
tên_chương_trình : đây là tên của chương trình cần biên dịch, yêu
cầu viết bằng chữ thường (ví dụ is tương ứng với hạt nhân IS)
# : số tiến trình mà bài toán sinh ra, lưu ý rằng gói phần mềm NPB có
những ràng buộc sau về số tiến trình của từng hạt nhân hoặc mô phỏng ứng
dụng :
- Các hạt nhân CG, FT, MG, IS và mô phỏng ứng dụng LU yêu cầu số tiến
trình có dạng luỹ thừa của 2 (2k)
- Các mô phỏng ứng dụng BT và SP yêu cầu số tiến trình có dạng bình
phương của số nguyên a2
- Hạt nhân EP có số tiến trình không bị ràng buộc
kiểu_lớp : thuộc 1 trong số các lớp S, W, A, B, C
Ví dụ để biên dịch hạt nhân EP, số tiến trình bằng 4, lớp dữ liệu W, ta đánh
lệnh sau
$make ep NPROCS=4 CLASS=W
53
Biên dịch nhiều chương trình : trong thư mục config nằm trong thư mục
chứa gói phần mềm NPB có cung cấp file suite.def cho phép biên dịch nhiều
chương trình chỉ bằng một dòng lệnh. File này có dạng 3 cột và nhiều dòng
với mỗi dòng có dạng như sau :
tên_chương_trình số_tiến_trình
lớp_dữ_liệu
Người sử dụng hiệu chỉnh nội dung của file suite.def và thực hiện lệnh sau :
$make suite
Các chương trình tương ứng sẽ được biên dịch, kết quả nằm trong thư mục
NPB/bin. Quá trình chạy các chương trình sẽ được thực hiện bằng lệnh
mpirun với progfile.
4.2.2 Chương trình thực hiện đo hiệu năng truy cập bộ nhớ trong.
Đo hiệu năng bộ nhớ trong được thực hiện bằng chương trình Stream.
Chương trình này được cung cấp mã nguồn viết bằng ngôn ngữ C và có thể
biên dịch bằng gcc. Tuy nhiên một hạn chế của chương trình là kích thước
mảng giá trị đầu vào được định nghĩa thông qua một marco trong chương
trình. Hạn chế trên dẫn đến việc nếu muốn thay đổi giá trị này thì cần phải sửa
trực tiếp trên code.
Trên cơ sở đó, ta viết chương trình thực thi những công việc sau :
- Biên dịch ra một tập các file có khả năng execute với giá trị mảng dữ liệu
đầu vào biến thiên trong khoảng cho trước, điều này được thực hiện thông qua
vòng lặp.
- Thực thi lần lượt các file trên, các số đo tương ứng với từng kích thước
mảng lần lượt được ghi vào file chứa kết quả.
- Gọi chương trình gnuplot vẽ biểu đồ ứng với các kết quả trên, qua biểu đồ ta
thấy được tốc độ truy vào ra bộ nhớ trong cực đại và sự giảm đột ngột của tốc
độ tính toán khi bắt đầu có sự truy cập vào swap.
54
4.2.3 Chương trình thực hiện đo hiệu năng truyền thông
Quá trình đo hiệu năng truyền thông mạng được thực hiện bằng phần mềm
NetPerf. Module client và server của Netperf có tên tương ứng là netperf và
netserver. Việc cài đặt module client và module server trên máy nguồn và
máy đích hoàn toàn có thể tiến hành thông qua makefile được cung cấp kèm
theo phần mềm.
Sau khi biên dịch, ta tiến hành việc chạy module server trên máy đích, mở 1
cổng để giao tiếp với máy nguồn, ngầm định là cổng 12685.
$./netserver –p 12685
NetServer sẽ chạy dưới dạng một daemon độc lập, chờ các yêu cầu từ phía
máy nguồn. Máy nguồn sẽ lần lượt gửi các gói tin có kích thước khác nhau
đến máy đích, sau đó nhận và hiển thị kết quả trả về. Khi thực hiện đo hiệu
năng truyền thông trong hệ thống BKCluster, ta đo tốc độ truyền thông sử
dụng giao thức TCP với gói tin có kích thước lần lượt là 1 byte, 2 byte, 4
byte, 64 byte, 256 byte, 1KB, 4KB, 16KB, 32KB và 64KB
Chương trình thực hiện những việc sau :
- Thực hiện chương trình với các kích thước gói tin thay đổi, việc này sẽ được
tiến hành theo đoạn chương trình sau :
for i in 1 2 4 64 256 1K 4K 16K 32K 64K
do
./netperf –H remote_host -- -m ${i}
done
trong đó remote_host là tên của máy đích
- Nhận giá trị về và đưa ra kết quả dưới định dạng tương thích với gnuplot
55
4.2.4 Chương trình thực hiện đo hiệu năng thư viện MPICH
Hiệu năng của MPICH sẽ được thể hiện qua tốc độ truyền thông của mạng khi
sử dụng các hàm trong thư viện. Quá trình đo tốc độ gửi tin trong mạng có sử
dụng các hàm truyền thông của thư viện MPICH được tiến hành bằng phần
mềm NetPIPE. Việc biên dịch chương trình có thể sử dụng trực tiếp makefile
có sẵn. Sau khi biên dịch, ta sẽ chạy chương trình song song trên hai máy
trạm. Chương trình sẽ tiến hành gửi các thông điệp có kích thước khác nhau
giữa hai máy và đo tốc độ truyền thông.
Chương trình thực hiện các công việc sau :
- Sinh progfile với các thông số nhập vào từ chương trình
- Copy file chạy chương trình vào các thư mục tương ứng trên 2 máy trạm
- Gọi lệnh mpirun để thực hiện chương trình
- Gọi chương trình gnuplot để vẽ biểu đồ dựa trên các kết quả trả về
56
CHƯƠNG 5 K ẾT QUẢ ĐO HIỆU NĂNG
5.1 Kết quả đo hiệu năng tính toán
Trong xử lý tuần tự, chương trình chạy trên một máy tính đơn lẻ, tốc độ tính
toán phụ thuộc vào tốc độ CPU và dung lượng bộ nhớ. Trong hệ thống song
song cluster, một bài toán được chia thành nhiều tiến trình và chạy trên các
máy tính nối mạng. Các tiến trình thực hiện xử lý và giao tiếp với nhau qua
mạng. Do giao tiếp qua mạng, ngoài tốc độ của CPU và dung lượng bộ nhớ,
tốc độ mạng cũng là một yếu tố quyết định đến tốc độ thực hiện bài toán. Với
hệ thống song song cluster, các thành phần quyết định trực tiếp tới hiệu năng
hệ thống là không đồng nhất.
Kết quả đo hiệu năng tính toán thu được sau quá trình thực chương trình
Linpack đo hiệu năng tính toán của CPU đơn và các hạt nhân, mô phỏng ứng
dụng đo hiệu năng tính toán của toàn bộ hệ thống.
Được thực hiện tại Trung tâm máy tính Trường Đại học Bách khoa Hà Nội
5.1.1 Kết quả đo hiệu năng tính toán của CPU đơn
Tiến hành đo hiệu năng tính toán CPU đơn với các máy trạm, ta thu được kết
quả như sau :
57
Kiểu số thực
Thời gian (giây)
Hiệu năng (MFLOPS)
Độ chính xác đơn
2.000E-02
3.433E+01
Độ chính xác kép
1.600E-02
4.292E+01
Bảng 5.1 Kết quả đo hiệu năng tính toán CPU đơn
Đánh giá: CPU có tốc độ khác nhau. Điều này làm cho năng lực xử lý tại mỗi
nút là khác nhau, nhiệm vụ tính toán của một chương trình song song thường
được chia đều cho các tiến trình. Các tiến trình này được phân bố trên các nút
có tốc độ CPU khác nhau. Một điều nhận thấy là tốc độ thực hiện trên nút có
CPU yếu nhất sẽ quyết định tốc độ thực hiện toàn bộ chương trình. Như vậy
hệ số tăng tốc thực hiện chương trình trên hệ thống cluster sẽ đạt cao nhất khi
so sánh với nút yếu nhất.
5.1.2 Kết quả đo hiệu năng tính toán của toàn bộ hệ thống
Phần mềm NPB được sử dụng phổ biến để đánh giá hiệu năng của toàn bộ hệ
thống tính toán song song phân cụm. Tuy nhiên, để thực hiện được các
chương trình trong gói phần mềm này cũng đòi hỏi phải thiết lập một hệ
thống ổn định.
Thứ nguyên của các kết quả trả về đều có dạng là Mops (biểu thị số triệu lần
phép toán được thực hiện trong 1 giây). Giữa các hạt nhân và mô phỏng
chương trình, ý nghĩa của opertion có thể khác nhau :
58
- Đối với hạt nhân EP, operation là phép toán “sinh ngẫu nhiên số phức”.
Theo tài liệu hướng dẫn của NASA công bố có thể tính được 1 operation
tương ứng với khoảng 49.7 flop, từ đó ta có thể quy đổi giữa hai giá trị.
- Đối với hạt nhân IS, operation là phép toán “sắp xếp song song”.
- Đối với hạt nhân CG, MG, FT và các mô phỏng ứng dụng LU, BT, SP,
operation chính là phép toán trên miền số thực, do đó Mops trùng với
MFLOPS.
Thực hiện các hạt nhân EP, IS, CG, MG trên các máy trạm của hệ thống, ta
thu được kết quả như sau :
Kết quả đo hiệu năng bằng hạt nhân EP : hạt nhân này sẽ thực hiện bài
toán song song sinh ngẫu nhiên các cặp số thực. Kết quả hạt nhân EP sẽ cho
thấy hiệu năng tính toán của hệ thống đối với các bài toán thực hiện ít thao tác
truyền thông. EP lần lượt được biên dịch và chạy trên số máy trạm lần lượt là
1, 2, 4, 6, 8 với lớp dữ liệu là A, kết quả thu được như sau :
Số máy trạm
Kết quả (Mops)
Kết quả (MFLOPS)
1 1.08 53.68
2 2.14 106.29
4 4.30 213.58
6 6.02 299.01
8 7.99 396.86
Bảng 5.2 Kết quả đo hiệu năng tính toán bằng hạt nhân EP
Kết quả đo hiệu năng bằng hạt nhân IS :
59
Hạt nhân IS thực hiện bài toán song song sắp xếp dãy số nguyên. Kết quả của
hạt nhân IS phản ánh hiệu năng tính toán đối với bài toán song song cần nhiều
thao tác truyền thông và truy cập vào bộ nhớ trong trên máy trạm khi thực
hiện các phép toán số nguyên.
IS lần lượt được biên dịch và thực hiện trên số máy trạm là 1, 2, 4, 8 với lớp
dữ liệu là A, kết quả thu được như sau :
Số máy
trạm
Mops/s total
Mops/s/process
1 5.33 5.33
2 0.41 0.20
4 0.30 0.08
8 0.21 0.03
Bảng 5.3 Kết quả đo hiệu năng tính toán bằng hạt nhân IS
Kết quả đo hiệu năng bằng hạt nhân CG
Hạt nhân CG thực hiện các phép toán trên ma trận thưa. Kết quả của hạt nhân
CG phản ánh hiệu năng tính toán đối với bài toán song song cần nhiều thao
tác truyền thông và truy cập vào bộ nhớ trong trên máy trạm khi thực hiện các
phép toán số thực.
CG lần lượt được biên dịch và thực hiện với số tiến trình là 1, 2, 4, 8 với lớp
dữ liệu là A, kết quả thu được như sau :
60
Số máy trạm
Mops/s total
Mops/s/process
1 17.36 17.36
2 7.83 3.91
4 1.96 0.49
8 6.35 0.79
Bảng 5.4 Kết quả đo hiệu năng tính toán bằng hạt nhân CG
Kết quả đo hiệu năng bằng hạt nhân MG :
Hạt nhân MG phản ánh hiệu năng tính toán đối với bài toán song song cần
nhiều thao tác truy cập vào bộ nhớ trong trên máy trạm khi thực hiện các phép
toán số thực.
MG lần lượt được biên dịch với số tiến trình là 1, 2, 4, 8 với lớp dữ liệu là A,
kết quả thu được như sau :
Số máy trạm
Mops/s total
Mops/s/process
1 - -
2 31.76 15.88
4 37.83 9.46
8 31.85 3.98
Bảng 5.5 Kết quả đo hiệu năng tính toán bằng hạt nhân MG
61
Một điều đáng lưu ý trong bảng trên đó là thời gian chạy của chương trình
MG đối với dữ liệu kiểu A. Các số liệu thực tế cho thấy thời gian chạy là lớn
hơn 6 tiếng đối với cấu hình máy CPU 500MHz và 256 MB RAM. Lúc này
dung lượng swap phải sử dụng là 70.084 MB.
Tiến hành chạy bài toán MG với các lớp dữ liệu nhỏ hơn lớp A là các lớp S và
W, thời gian giảm xuống còn 0.16 và 10.49 giây và hiệu năng thu được lần
lượt là 47.09 và 57.97 Mops. Các kết quả trên chứng tỏ vai trò quan trọng của
bộ nhớ trong đối với tốc độ tính toán.
Kết quả đo hiệu năng bằng mô phỏng chương trình LU
Chương trình LU phản ánh hiệu năng tính toán đối với bài toán song song cần
nhiều thao tác truy cập bộ nhớ cache và truyền thông.
LU lần lượt được biên dịch với số tiến trình là 1, 2, 4, 8 với lớp dữ liệu là A,
kết quả thu được như sau :
Số máy trạm
Mops/s total
Mops/s/process
1 37.0 37.0
2 52.37 26.19
4 78.91 19.73
8 40.09 5.12
Bảng 5.6 Kết quả đo tính toán bằng mô phỏng chương trình LU
Kết quả đo hiệu năng bằng mô phỏng chương trình SP
Kết quả của chương trình SP phản ánh hiệu năng tính toán đối với bài toán
song song cần nhiều thao tác truy cập vào bộ nhớ trong.
62
SP lần lượt được biên dịch với số tiến trình là 1 và 4, lớp dữ liệu là A, kết quả
thu được như sau :
Số máy trạm
Mops/s total
Mops/s/process
1 39.57 39.57
4 43.87 10.97
Bảng 5.7 Kết quả đo tính toán bằng mô phỏng chương trình SP
Kết quả đo hiệu năng bằng mô phỏng chương trình BT
Kết quả của chương trình BT phản ánh hiệu năng tính toán đối với bài toán
song song cần nhiều thao tác truyền thông và truy cập vào bộ nhớ cache.
BT lần lượt được biên dịch với lớp số tiến trình là 4, lớp dữ liệu là W, kết quả
thu được như sau :
Số máy trạm
Mops/s total
Mops/s/process
1 66.11 66.11
4 67.13 16.78
Bảng 5.8 Kết quả đo tính toán bằng mô phỏng chương trình BT
Dựa vào những kết quả trên, ta biểu diễn sự phụ thuộc giữa hiệu năng tính
toán vào số máy trạm tham gia tính toán :
63
Hình 5.1 Biểu đồ tương quan giữa hiệu năng và số máy trạm
Đánh giá: Qua các giá trị thu được khi đánh giá hiệu năng tính toán của hệ
thống, ta rút ra kết luận sơ bộ sau : khi số máy trạm tham gia tính toán tăng
lên, tốc độ tính toán tổng cộng sẽ tăng lên với những bài toán thực hiện ít thao
tác truyền thông. Tuy nhiên, khi thực hiện những bài toán yêu cầu thực hiện
nhiều thao tác truyền thông, hiệu năng của hệ thống sẽ giảm khi số máy trạm
tham gia tính toán tăng lên. Những điều trên cho thấy tốc độ truyền thông
trong mạng ảnh hưởng bởi nhiều yếu tố như tốc độ của card mạng, đường
truyền, khoảng cách, thiết bị chuyển mạch, thiết bị đầu cuối. Ảnh hưởng trực
tiếp đến khả năng tính toán của toàn bộ hệ thống.
Cũng tương tự như CPU không đồng nhất, nút có tốc độ truyền thông thấp
nhất sẽ chi phối tốc độ truyền thông của hệ thống và làm tốc độ thực hiện
chương trình giảm mạnh nhất.
0
10
20
30
40
50
60
70
80
90
1 2 4 8
Số máy trạm
M
O
PS
EP
IS
CG
MG
LU
SP
BT
64
5.2 Kết quả đo hiệu năng truy cập bộ nhớ trong
Thực hiện đo hiệu năng truy cập bộ nhớ trong bằng phần mềm Stream trên
máy trạm có dung lượng RAM là 256 MB, ta thu được kết quả sau :
- Trước khi xảy ra hiện tượng truy cập vào bộ nhớ swap, tốc độ truy cập bộ
nhớ trong luôn ổn định và bằng 236 – 238 MB/s
- Khi xảy ra hiện tượng truy cập swap, tốc độ truy cập bộ nhớ trong sẽ giảm
xuống đột ngột và sẽ giảm rất nhanh nếu kích thước của bài toán tiếp tục tăng
lên
Kết quả này được biểu diễn trên biểu đồ sau :
Hình 5.2 Biểu đồ tương quan kích thước bài toán - tốc độ truy cập bộ
nhớ trong
Kết quả trên cho thấy khả năng tính toán của máy trạm là ổn định với
những bài toán có tổng giá trị các biến cần cấp phát nhỏ hơn 240 MB.
5.3 Đo hiệu năng truyền thông
Thực hiện đo hiệu năng truyền thông của giao thức TCP giữa máy trạm và
máy chủ, ta thu được kết quả như sau : tốc độ truyền thông rất nhỏ với các gói
65
tin có kích thước nhỏ hơn 10byte, sau đó thì tăng nhanh khi kích thước gói tin
nằm trong khoảng từ 16 đến 64 byte và sẽ không tăng giảm nhiều khi kích
thước gói tin lớn hơn 64 byte (kích thước gói tin lớn nhất chương trình đã
dùng là 64Kbyte). Tốc độ truyền thông cao nhất là 29 Mbps ứng với gói tin có
kích thước 32KB.
Hình 5.3 Biểu đồ tương quan giữa dung lượng gói tin và tốc độ truyền
thông mạng
5.4 Đo hiệu năng của thư viện truyền thông điệp MPICH
Thực hiện quá trình đo hiệu năng truyền thông điệp MPICH giữa hai máy
trạm đóng vai trò nút tính toán bằng phần mềm NetPIPE, ta thu được kết quả
tốc độ truyền thông cực đại là 7.88 Mbps ứng với gói tin truyền đi là 8192
66
byte. Điều này cho ta thấy các hàm truyền thông của thư viện MPICH sẽ hoạt
động tốt nhất với các thông điệp có độ lớn trong khoảng lân cận 8192 byte
Sự phụ thuộc của tốc độ truyền thông vào kích thước gói tin được biểu diễn
qua biểu đồ sau :
Hình 5.4 Biểu đồ tương quan giữa dung lượng gói tin và tốc độ truyền
thông điệp
Dựa vào biểu đồ ta thấy tốc độ truyền thông tăng dần theo kích thước gói
tin đến khoảng lân cận giá trị 8192 byte thì tốc độ cao nhất là khoảng 7.8
67
Mbps. Khi kích thước gói tin tiếp tục tăng thêm thì tốc độ truyền thông lại
giảm đi nhưng vẫn lớn hơn 6 Mbps.
Ngoài biểu đồ trên, các đặc tính của thư viện MPICH còn được thể hiện khách
quan qua hai biểu đồ sau :
Hình 5.5 Biểu đồ tương quan giữa tốc độ và thời gian truyền thông
Biểu đồ trên được gọi là Ethernet Signature Graph, các giá trị thời gian và
tốc độ truyền đã được lấy loga cơ số 10 (log). Vì thời gian truyền tin tỉ lệ với
68
tổng dung lượng tin truyền đi nên có thể coi biểu đồ trên là một dạng khác của
biểu đồ tương quan giữa dung lượng gói tin và tốc độ truyền thông.
Hình 5.6 Biểu đồ tương quan giữa dung lượng gói tin và thời gian truyền
thông
Biểu đồ trên được gọi là Ethernet Saturation Graph, nó cho thấy tốc độ truyền
thông của các hàm MPICH sẽ tăng lên rất nhanh khi kích thước gói tin tăng
lên ứng với khoảng trước điểm Saturation Point, sau đó dù kích thước gói tin
có tăng lên rất nhanh (ứng với sự tăng thời gian truyền thông theo hàm mũ cơ
số 10) thì tốc độ truyền thông trong mạng cũng chỉ tăng lên một cách tuyến
tính
5.5 Đánh giá tổng hợp về hiệu năng hệ thống BKCluster
69
Qua các kết quả đo hiệu năng ở trên ta thấy được những kết quả cụ thể hiệu
năng của hệ thống về các mặt tính toán, truyền thông, truy cập bộ nhớ trong.
Do mục đích của hệ thống BKCluster là thực hiện các bài toán khoa học nên
hiệu năng tính toán của toàn bộ hệ thống là quan trọng nhất. Kết quả của việc
thực hiện gói phần mềm NPB trên 8 máy trạm đóng vai trò nút tính toán cho
thấy hiệu năng lớn nhất đạt được là 396.86 MFLOPS.
Việc tính toán song song có lợi hơn việc tính toán riêng trên 1 máy tính ở chỗ
có thể tận dụng được đồng thời năng lực tính toán của CPU và dung lượng bộ
nhớ trong của từng máy trạm. Kết quả này được thể hiện rõ qua kết quả của
các bài toán EP và MG. Đây là hai bài toán hạn chế sự truyền thông và cần
nhiều thao tác tính toán độc lập (EP) và truy cập vào bộ nhớ trong (MG). Hiệu
năng tính toán tổng hợp sẽ tăng lên gần như tuyến tính đối với số tiến trình
thực hiện bài toán EP (mỗi máy trạm sẽ thực hiện 1 tiến trình). Đối với bài
toán MG dữ liệu lớp A, việc thực hiện trên 1 máy trạm sẽ rất lâu (lớn hơn 6
tiếng) nhưng chỉ với hai máy trạm đã giảm thời gian xuống còn khoảng 122
giây.
Tuy nhiên, kết quả trên cũng phản ánh tốc độ truyền thông trong mạng
LAN là chưa được cao. Với card mạng và switch cho phép tốc độ truyền lên
tới 100Mbps nhưng các kết quả đo chỉ cho giá trị lớn nhất là 29 Mbps đối với
giao thức TCP và là 7.88 Mbps đối với các hàm truyền thông của thư viện
MPICH. Nhược điểm này xuất phát từ nguyên nhân chủ yếu là chưa thiết lập
các thông số cấu hình tối ưu (như kích thước Buffer của Socket) khi cài đặt
thư viện MPICH, việc này đòi hỏi phải thu thập thêm một số kết quả thực
nghiệm và dịch lại mã nguồn của MPICH.
Do tốc độ truyền thông cao nhất của các hàm trong thư viện MPICH là 7.88
Mbps nên dẫn đến hiệu năng tính toán đối với những bài toán đòi hỏi nhiều
thao tác truyền thông là chưa được cao, thậm chí còn xảy ra hiện tượng hiệu
70
năng tính toán tổng cộng sẽ giảm đi khi số máy trạm tham gia tính toán tăng
lên (điều này thể hiện rõ qua kết quả của các bài toán CG, IS). Điều này sẽ có
thể được khắc phục thông qua việc cải tiến các cấu hình của thư viện MPICH
làm tăng tốc độ truyền thông.
Tuy nhiên, dựa vào kết quả của các bài toán EP, MG, LU ta thấy rằng việc
tăng hiệu năng của toàn bộ hệ thống là hoàn toàn có thể đạt được khi tăng số
máy trạm đóng vai trò nút tính toán, điều này cho thấy hệ thống đã đạt được
một số yêu cầu cơ bản của những hệ thống xây dựng theo mô hình song song
phân cụm.
71
CHƯƠNG 6 KẾT LUẬ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 đề tài: Xây dựng hệ thống tính toán song song.
Mục đính của hệ thống là cung cấp một giải pháp tính toán hiệu năng cao, giá
thành rẻ thuận tiện cho việc nghiên cứu và nhu cầu tính toán trong cả nước.
Chuẩn bị cho việc hội nhập, để xây dựng mạng tính toán lưới Việt Nam (VN
Grid).
Sau một thời gian nghiên cứu và triển khai, các phiên bản đã được đóng gói,
cài đặt trên hệ thống của Trung tâm tính toán hiệu năng cao. Đang được triển
khai mở rộng tại một số trung tâm khác như: Trung tâm máy tính thuộc
Trường đại học Bách Khoa Hà nội, Trường kỹ thuật Mật Mã.
Trong đó phần đánh giá hiệu năng của hệ thống được tích hợp vào cùng hệ
thống.
Đề tài : Đánh giá hiệu năng hệ thống song song đã trình bày được mục đích,
nhiệm vụ của hệ thống. Về mặt lý thuyết, đề tài đã khảo sát được một số các
phần mềm đánh giá hiệu năng trên thế giới về các mặt như mục đích, cấu trúc
và ý nghĩa của các thứ nguyên biểu diễn số đo hiệu năng.
Các kết quả thực nghiệm thu được về cơ bản đã cho thấy hiệu năng tính toán
của một hệ thống tính toán song song phân cụm đang trong quá trình xây
dựng và hoàn thiện là hệ thống BKCluster. Các kết quả này cũng đã phản ánh
được các đặc tính riêng của từng thành phần trong hệ thống cả về phần cứng
và phần mềm, đó là hiệu năng tính toán của từng máy trạm riêng biệt, tốc độ
truy cập bộ nhớ trong, tốc đô truyền thông mạng và hiệu năng của thư viện
truyền thông điệp MPICH.
Qua việc đánh giá, phân tích tổng hợp những kết quả trên, ta đã đưa ra được
những hạn chế cần khắc phục trong hệ thống hiện tại và chỉ ra được một số
72
ảnh hưởng của các đặc tính riêng đối với hiệu năng tính toán trung của cả hệ
thống, đặc biệt là sự ảnh hưởng của tốc độ truyền thông.
Bên cạnh những kết quả trên, trong khuôn khổ của đề tài này vẫn còn một số
việc chưa làm được, cụ thể như sau :
Các kết quả thu được mới chỉ đánh giá được một phần của hệ thống, vì vậy
các kết quả thu được vẫn còn hạn chế, có thể chưa sát với thực tế
Đề tài đã chỉ ra được một số yếu tố ảnh hưởng đến hiệu năng của hệ thống
nhưng chưa khắc phục được những yếu tố đó.
Việc giải quyết những hạn chế trên cũng là hướng phát triển của đề tài trong
tương lai. Việc khắc phục những hạn chế trên sẽ có thể nâng cao hiệu năng
tính toán nhưng cũng đồng thời làm thay đổi một số đặc tính của hệ thống, khi
đó lại cần phải áp dụng các phần mềm đo hiệu năng tương ứng để đánh giá sự
hiệu quả của hệ thống mới so với hệ thống cũ.
Việc đánh giá hiệu năng của hệ thống là dùng các phần mềm đo hiệu năng của
những tổ chức, cá nhân nước ngoài. Mặc dù các phần mềm này là chuyên
dụng và được sử dụng rộng rãi nhưng vẫn chưa thể phản ánh chính xác được
các đặc tính riêng của hệ thống. Một nhiệm vụ cần đặt ra là phải xây dựng
những chương trình đo hiệu năng riêng dùng trong thống của Trung tâm tính
toán hiệu năng cao, từ đó phát triển lên thành một quy trình đánh giá hiệu
năng riêng, có thể áp dụng đo hiệu năng của Trung tâm máy tính, thư viện
điện tử thuộc trường Đại học Bách Khoa Hà Nội
Từ các qui trình đánh giá, có thể đưa ra kết luận về hiệu năng thực của từng
máy tính riêng lẻ và cả hệ thống, có thể áp dụng trong việc đo kiểm tra khi
mua thiết bị, cũng như khi muốn thiết kế một hệ thống mới để đạt hiệu quả
cao.
73
TÀI LIỆU THAM KHẢO
[1] Nguyễn Thanh Thuỷ, Đặng Minh Quân. “Ảnh hưởng của các yếu tố
không đồng nhất tới hiệu năng hệ thống xử lý song song NOW”, Hội thảo
các vấn đề chọn lọc của công nghệ thông tin, Đại Học Thái Nguyên, 2003
[2] Karl-Johan Andersson, Daniel Aronsson and Patrick Karlsson. “An
evaluation of the system performance of a Beowulf cluster”, Internal
Report No. 2001:4
[3] Roger Hockney. “A Framework for Benchmark Performance
Analysis”, Supercomputer 48, IX-2, 1992
[4] Atul Kumar. “A Performance Evaluation and Benchmarking Tool,
Department of Computer Science & Engineering”, Indian Institute of
Technology, Kanpur January 1998
[5] D.Bailey, E.Barszcz, J. Barton, D. Browning, R. Carter, L. Dagum, R.
Fatoohi, S. Fineberg, P.Frederickson, T. Lasinki, R. Schreiber, H. Simon, V.
Venkatakrishnan, S. Weeratunga. “THE NAS PARALLEL
BENCHMARKS”, RMR Technical Report RNR-94-007, March 1994
[6] D.Bailey, E.Barszcz, L. Dagum and H. Simon. “NAS Parallel
Benchmark Result”, RNR-94-006, March 211994
[7] Jack J. Dongarra, Piotr Lszczek, Antoine Petitet “The Linpack
Benchmark : Past, Present, and Future”, December 2001
[8] John D. McCalpin. “STREAM : Sustainable Memory Bandwidth in
High Performance Computers”,
[9] Quinn O.Snell, Armin R. Mikler and John L. Gustafson. “NetPIPE : A
Network Protocol Independent Performance Evaluator”, Ames Laborator
Scalable Computing Lab, Ames, Iowa 50011, USA
[10] “Netperf : A Network Performance Benchmark, Revision 2.1”.
Informtion Networks Divison Hewlett-Packard Company February 15, 1996
Các file đính kèm theo tài liệu này:
- Luận văn- Đánh giá hiệu năng hệ thống song song phân cụm.pdf