Cỏc mụ hỡnh lập trỡnh song song

Một phần của tài liệu Luận văn: Đánh giá hiệu năng hệ thống song song phân cụm potx (Trang 26 - 74)

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

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

một sự trừu tượng dựa trờn cỏc kiến trỳc phần cứng. Mọi mụ hỡnh lập trỡnh song song đều cú thểđược thực hiện trờn bất kỳ một kiến trỳc phần cứng nào.

2.3.1 Mụ hỡnh đa luồng

Trong mụ hỡnh lập trỡnh song song đa luồng, một tiến trỡnh cú thể cú rất nhiều luồng xử lý. Mỗi luồng cú thể được coi là một thủ tục con của chương trỡnh 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. Điều này đũi hỏi cú một cơ chế đồng bộ giữa cỏc luồng nhằm trỏnh xung đột trong truy cập bộ nhớ, cỏc luồng cú thể sinh ra hay kết thỳc nhưng chương trỡnh chớnh thỡ vẫn tồn tại cho đến khi hoàn thành cụng việc. Mụ hỡnh này thường gắn với cỏc kiến trỳc chia sẻ bộ

nhớ (SMP).

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

2.3.2 Mụ hỡnh truyền thụng điệp

Truyền thụng điệp (message passing) là mụ hỡnh được sử dụng rộng rói trong tớnh toỏn song song hiện nay. Thường ỏp dụng cho hệ thống phõn tỏn, một chương trỡnh theo mụ hỡnh này bao gồm nhiều chương trỡnh chạy trờn cỏc nỳt với chuỗi lệnh và bộ nhớ riờng. Mỗi chương trỡnh con cú một định danh duy nhất và chỳng tương tỏc với nhau bằng việc gửi và nhận thụng điệp trờn cỏc

định danh. Việc truyền dữ liệu thường yờu cầu cú sự hợp tỏc giữa cỏc tiến trỡnh.

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

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

2.3.3 Mụ hỡnh song song dữ liệu

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

Một phần của tài liệu Luận văn: Đánh giá hiệu năng hệ thống song song phân cụm potx (Trang 26 - 74)

Tải bản đầy đủ (PDF)

(74 trang)