Cỏc phần việc song song tập trung vào việc thực hiện xử lý trờn một tập dữ
liệu.Tập dữ liệu thường được tổ chức theo cấu trỳc thụng thường như mảng một chiều hay mảng nhiều chiều. Tập cỏc tỏc vụ (task) cựng làm việc trờn một cấu trỳc dữ liệu, tuy nhiờn mỗi tỏc vụ làm việc với một phần khỏc nhau của cấu trỳc dữ liệu đú. Với kiến trỳc bộ nhớ chia sẻ, cỏc tỏc vụ cú thể truy cập vào cựng một cấu trỳc dữ liệu thụng qua bộ nhớ toàn cục, trờn kiến trỳc bộ
nhớ phõn tỏn, cấu trỳc dữ liệu này được chia ra thành từng phần và nằm trờn phần bộ nhớ cục bộ của mỗi tỏc vụ.Việc song song hoỏ dữ liệu được thực hiện với sự hỗ trợ của cỏc trỡnh dịch
2.4 Cỏc vấn đề cơ bản của một hệ 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 đơn bộ xử lý với cỏc mỏy nhiều bộ sử lý (SMP: symmertric multiprocesor).
Ưu điểm của hệ thống phõn cụ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
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ượng nỳt, dung lượng bộ nhớ trờn mỗi nỳt, số lượng bộ xử lý trờn mỗi nỳt và cấu hỡnh mạng đều cú tớnh tuỳ biế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ữa cỏc nỳt. Do vậy phần cứng cơ bản của hệ thống song song là cỏc thiết bị
của nỳt và cỏ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 năng lưu trữ dữ
liệu. Do vậy cỏc nỳt cú thể là cỏc mỏy tớnh riờng biệt.
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
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 đo bằng số triệu bit trờn giõy (Mbps) và độ trễ được tớnh bằng 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.
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
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ẩm phõn tải 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à:
- 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ụm và cõn bằ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 (MIMD). 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
đ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
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
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
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ú