Tải bản đầy đủ (.doc) (80 trang)

Giải hệ phương trình tuyến tính bằng phương pháp phân rã LU

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.69 MB, 80 trang )

Thiết kế giải thuật song song
Mở đầu................................................................................................3
Chơng I Tổng quan về tính toán song song .......................7
1. 1 Kiến trúc Von Neumann ..........................................................7
1. 2. Phân loại Flynn........................................................................7
1. 3 Các kiến trúc bộ nhớ máy tính song song..............................9
1. 3. 1 Bộ nhớ dùng chung ................................................................................9
1. 3. 2 Bộ nhớ phân tán ..................................................................................10
1. 3. 3 Bộ nhớ kết hợp .....................................................................................11
1. 4 Các mô hình lập trình song song..........................................11
1. 4. 1 Lập trình bộ nhớ dùng chung ..............................................................11
1. 4. 2 Truyền thông điệp ................................................................................12
1. 4. 3 Mô hình song song dữ liệu....................................................................12
1. 4. 4 Mô hình hớng đối tợng..........................................................................13
1. 4. 5 Mô hình logic ........................................................................................13
1. 5 Truyền thông trong mô hình Multicomputer .......................13
...........................................................................................................15
Chơng 2 Thiết kế Giải Thuật song song...............................16
2. 1 Mô hình thiết kế......................................................................16
2. 2 Phơng pháp thiết kế................................................................17
2. 3 Phân rã ..................................................................................19
2. 3. 1. Phân rã theo miền...............................................................................20
2. 3. 2 Phân rã chức năng ...............................................................................21
2. 3. 3 Các vấn đề cần quan tâm ....................................................................23
2. 4 Truyền thông..........................................................................23
2. 4. 1 Truyền thông cục bộ............................................................................24
2. 4. 2 Truyền thông toàn cục.........................................................................25
2. 4. 3 Các vấn đề cần quan tâm ....................................................................27
2. 5 Tích tụ.....................................................................................27
2. 5. 1Gia tăng kích thớc tác vụ.......................................................................28
2. 5. 2 Duy trì khả năng linh động....................................................................31


2. 5. 4 Các vấn đề cần quan tâm....................................................................31
2. 6 ánh xạ ......................................................................................32
2. 6. 1 Các giải thuật cân bằng nạp.................................................................33
2. 6. 2 Các giải thuật lập lịch trình tác vụ.........................................................34
2. 6. 3 Các vấn đề cần quan tâm ...................................................................35
Chơng 3 Mạng kết nối..................................................................36
3. 1 Các mạng kết nối thông dụng ..............................................36
3. 1. 1 Mạng Mesh...........................................................................................37
3. 1. 2 Mạng bus/star.......................................................................................37
3. 1. 3 Mạng cây nhị phân...............................................................................38
3. 1. 4 Mạng Hypertree....................................................................................38
3. 1. 5 Mạng hình chóp ...................................................................................39
.......................................................................................................................39
3. 1. 6 Mạng Butterfly ......................................................................................39
3. 1. 7 Mạng Hypercube..................................................................................40
3. 1. 8 Mạng Cube-Connected Cycles.............................................................41
Vũ Trung Hiếu Tin3-K42 1
Thiết kế giải thuật song song
3. 1. 9 Mạng shuffle-exchange ......................................................................42
3. 1. 10 Mạng de Bruijn....................................................................................43
3. 2 ánh xạ dữ liệu..........................................................................44
3. 2. 1 Ring sang 2-D Mesh ............................................................................45
3. 2. 2 Mesh 2-D sang Mesh 2-D.....................................................................45
3. 2. 3 Cây nhị phân hoàn chỉnh sang 2D Mesh ............................................46
3. 2. 4 Cây nhị thức sang Mesh2-D ................................................................46
3. 2. 5 Nhúng đồ thị vào trong mạng Hypercube.............................................46
3. 2. 6 Cây nhị thức sang Hypercube..............................................................47
3. 2. 7 Rings và Meshes sang Hypercube.......................................................47
Chơng 4 cơ sở đánh giá giải thuật song song..................50
4. 1 Thời gian thực hiện................................................................50

4. 1. 1 Thời gian tính toán ...............................................................................51
4. 1. 2 Thời gian truyền thông .........................................................................51
4. 1. 3 Thời gian rỗi (Idle)................................................................................53
4. 2 Tăng tốc và hiệu quả. ...........................................................53
4. 3 Tính qui mô.............................................................................54
Chơng 5 giải hệ phơng trình tuyến tính...............................56
5. 1 Tách A = L*U dựa theo giải thuật khử Guassian..................56
5. 1. 1 Giải thuật song song theo hàng ...........................................................59
5. 1. 2 Giải thuật song song theo cột...............................................................61
5. 1. 3 Giải thuật song song hai chiều.............................................................62
5. 1. 4 Khử Gauss với kỹ thuật lựa chọn phần tử xoay ...................................64
5. 2 Giải hệ phơng trình với ma trận hệ số tam giác...................65
5. 2. 1 Giải thuật song song tích tụ theo hàng................................................67
5. 2. 2 Giải thuật song song tích tụ theo cột...................................................70
5. 2. 3 Giải thuật song song hai chiều ............................................................73
5. 3 Thực thi giải thuật...................................................................75
5. 3. 1 Xây dựng chơng trình............................................................................75
5. 3. 3 Các hạn chế và hớng phát triển chơng trình.........................................78
..........................................................................................................78
Kết luận...........................................................................................79
...........................................................................................................79
Tài liệu tham khảo .......................................................................80
Vũ Trung Hiếu Tin3-K42 2
Thiết kế giải thuật song song
Mở đầu
áy tính điện tử là một trong những phát minh vĩ đại nhất của thế kỷ 20,
vừa ra đời sau chiến tranh thế giới hai nhng nó đã phát triển một cách
nhanh chóng và có sức sống mãnh liệt. Trong những thập niên 60, nền tảng
để thiết kế máy tính số đều dựa trên mô hình của John von Newman với một
đơn vị xử lý đợc nối với một vùng lu trữ làm bộ nhớ và tại một thời điểm chỉ có

một lệnh máy đợc thực thi. Kiến trúc truyền thống này ngày có nhiều hạn chế
do thúc đẩy của các bài toán xuất phát từ những yêu cầu thực tế và đợc khoa
học hiện nay coi nh những thánh thức lớn grand challenges , đây là các bài
toán đặt ra để mô phỏng thế giới thực của một vấn đề, hiện tợng có yêu cầu
về tính toán và khả năng lu trữ lớn.
M
Để đáp ứng nhu cầu của khoa học, kiến trúc máy tính cũng thay đổi
nhanh chóng nhằm tăng cờng sức mạnh tính toán và xử lý theo từng thế hệ.
Sức mạnh của máy tính theo kiến trúc John von Newman có thể đợc cải thiện
theo hai xu hớng khác nhau:
- Thứ nhất : Dựa vào sự phát triển của công nghệ
- Thứ hai : Dựa vào sự cải tiến về kiến trúc
Các cải tiến về kiến trúc có thể tăng khối lợng công việc thực hiện cho
mỗi chu kỳ lệnh, trong khi tiến bộ về công nghệ có thể giảm thời gian cần thiết
cho mỗi chu kỳ lệnh.
Sự cải tiến về công nghệ đã trải qua nhiều giai đoạn phát triển khác
nhau và trở thành một chỉ tiêu quan trọng trong khi phân chia các thế hệ máy
tính. Từ thế hệ thứ nhất dùng đèn điện tử, thế hệ thứ hai dùng công nghệ bán
dẫn, đến thế hệ thứ ba dùng công nghệ mạch tích hợp lớn VLSI
( Very Large Scale Intergrated Circuit). Với công nghệ này, các VLSI có thể
tích hợp từ hàng trăm nghìn đến hàng triệu transistors trên một đơn chíp và có
thể tạo ra các tần số đồng hồ hàng trăm MHz. Sự cải tiến về mặt công nghệ
hy vọng còn tiếp tục phát triển nhờ vào sự tích hợp ngày càng lớn mật độ các
thành phần trên một chip, do đó giảm đợc thời gian trễ vận chuyển giữa các
thành phần trên chíp.
Vào giữa thập niên 1970, các tiến bộ kiến trúc quan trọng nh bộ nhớ
song song bit( bit-parallel memory), số học song song bit ( bit-parallel
arithmetic), bộ nhớ truy nhập nhanh (cache memory), pipeline lệnh
(instruction pipelining), khối đa chức năng (multiple functional units), pipeline
dữ liệu (data pipelining) - đã đợc kết hợp trong thiết kế máy supercomputer

hay mainframe. Từ đó, để năng cao hiệu năng của các bộ xử lý đơn ngời ta có
ý định giảm thời gian chu kỳ lệnh.
Tuy nhiên với công nghệ VLSI kết hợp với những tiến bộ kiến trúc cho
phép máy tính đơn có khả năng tính toán cao, thực hiện hàng trăm triệu
phép tính trên một giây nhng điều này vẫn cha đáp ứng đợc các thách thức
khoa học với các bài toán nh mô hình thời tiết và môi trờng toàn cầu, tính
toán chu trình đại dơng. vũ trụ học và thiên văn học, y học và mô hình các x-
ơng và cơ quan con ngời, phản ứng hoá học và hạt nhân. v. v.
Ngày nay, các ứng dụng có tính thơng mại đang tác động đến việc phát
triển máy tính song song bởi những ứng dụng này yêu cầu xử lý số lợng lớn
dữ liệu theo các cách thức phức tạp. Ví dụ nh cơ sở dữ liệu song song, khai
Vũ Trung Hiếu Tin3-K42 3
Thiết kế giải thuật song song
phá dữ liệu, tìm kiếm dầu mỏ, chuẩn đoán dới sự trợ giúp của máy tính trong
y học, quản lý của các công ty kinh doanh, tổ chức đa quốc gia, công nghệ
multimedia và video trên mạng. v. v.
Nguyên nhân chính hạn chế trong việc phát triển máy tính đơn có tốc
độ cao là do sự hạn chế vật lý của IC, chúng ta không thể gia tăng mãi khả
năng tích hợp các linh kiện bán dẫn trên cùng một chíp và tốc độ truyền tải
tín hiệu của mạch điện bị hạn chế không vợt quá tốc độ ánh sáng.
Để tăng cờng sức mạnh tính toán giải quyết các bài toán lớn có độ tính
toán cao, ngời ta phát triển theo hớng kiến trúc máy tính, với ý tởng kết hợp
nhiều bộ xử lý vào trong một máy tính mà ngời ta hay gọi là máy tính song
song Multiprocessor hoặc kết hợp sức mạnh tính toán của nhiều máy tính dựa
trên kết nối của mạng cục bộ đã có, ngời ta gọi là máy tính song song
Multicomputer. Điều này đã đợc Daniel Slotnick ở trờng đại học Illinois thực
hiện với thiết kế hai máy tính song song là máy Solomon đợc xây dựng bởi
công ty Westinghouse Electric Company vào đầu những năm 1960 và sau đó
vào đầu những năm 1970, máy tính ILLIAC IV đợc lắp ráp tại công ty
Burroughs Corporation. Tại trờng đại học Carnegie-Mellon, hai máy tính song

song là C. mmp và Cm* - đợc xây dựng trong suốt những năm 1970. Trong
những năm đầu 1980, các nhà nghiên cứu tại Caltech đã xây dựng ra máy
Cosmic Cube, một hình thức sơ khai của máy tính song song Multicomputer.
Sự hội tụ giữa kiến trúc song song và công nghệ xây dựng các máy lớn
truyền thống đã dẫn đến sự phát triển các máy tính song song có hàng chục,
trăm, hoặc thậm chí hàng nghìn các microprocessor. Với hiệu năng cao nhất,
các máy tính song song nh Intel s Paragon XP/S
TM
, MasPar s MP-2
TM

Thinking Machines Cm 5
TM
, đã vợt qua tốc độ của các máy supercomputer
đơn bộ xử lý truyền thống nh Cray Y/MP
TM
và NEC SX-3
TN
.
Đối với việc xây dựng các máy tính song song có hàng trăm đến hàng
ngàn bộ xử lý với bộ nhớ chính có kích thớc lớn sẽ rất tốn kém, không hiện
thực đối với nhu cầu thực tế nhng bù lại sẽ có môi trờng tính toán ổn định và
sức mạnh tính toán lớn. Với máy tính song song kết nối nhiều máy tính sẵn có
thông qua mạng cục bộ sẽ đáp ứng đợc về giá thành, tận dụng đợc máy tính
sẵn có, khả năng lu trữ dữ liệu sẽ lớn hơn và hiện nay với mạng LAN tốc độ
cao sẽ cho phép ta thực hiện đợc điều này. Tuy nhiên với môi trờng tính toán
không đồng nhất về tốc độ xử lý trên mỗi máy tính, khả năng lu trữ. . sẽ làm
cho việc thực hiện bài toán trở nên khó khăn. Để giải quyết vấn đề này các
phần mềm đợc xây dựng ra nh PVM ( Parallel Virtual Machine ), MPI, Linda,
P4, . v. v. cho phép thực thi song song bài toán trên mô hình Multicomputer.

Ngoài việc có sức mạnh tính toán nhanh, máy tính song song có khả
năng lu trữ lớn với mô hình bộ nhớ phân tán và khả năng chịu hỏng tốt hơn
máy tính đơn bộ xử lý. Đối với máy tính đơn, khi bộ xử lý bị sự cố thì cả hệ
thống dừng hoạt động còn các máy tính song song vẫn có thể thực hiện công
việc khi một vài bộ xử lý hay máy tính có sự cố. Việc bảo đảm độ tin cậy cao
có tầm quan trọng khi sử dụng máy tính trong các lĩnh vực mà sự cố có thể
xảy ra thảm hoạ nh điều khiển phóng vệ tinh, kiểm soát và điều khiển các nhà
máy điện nguyên tử. . v. v.
Tuy nhiên, để khai thác đợc sức mạnh tiềm tàng trong các máy tính
song song lớn yêu cầu sự phát triển và kết hợp hợp lý của kiến trúc, hệ điều
Vũ Trung Hiếu Tin3-K42 4
Thiết kế giải thuật song song
hành, ngôn ngữ lập trình và giải thuật, phần mềm tính toán song song. Bởi vì
giải thuật tuần tự không còn phù hợp nữa khi thực hiện trên máy song song,
nên việc xây dựng, thiết kế giải thuật song song là điều quan trọng từ đó có
thể phân rã công việc trên các phần tử xử lý khác nhau. Việc phân rã có thể
đợc tiến hành theo hai cách, phân rã theo miền và phân rã theo chức năng.
Tiếp theo là mã hoá công việc đó theo một ngôn ngữ hỗ trợ việc tính toán
song song và hệ điều hành điều khiển hoạt động tính toán phải có sự hỗ trợ.
Nếu trong quá trình tính toán mà lựa chọn không tốt kiến trúc song song sẽ
làm cho hiệu quả thực hiện giảm đi.
Để xây dựng một giải thuật song song ta phải có sự phân tích bài toán
hoặc giải thuật tuần tự, từ đó cho phép ta có kết luận có thể song song bài
toán hay không. Nếu đợc, ta sẽ tiếp tục xây dựng giải thuật bằng cách phân
rã bài toán ra thành các công việc nhỏ, xây mối liên hệ giữa các công việc,
quyết định đợc có thể song song đợc những tác vụ nào, sau đó ấn định vào
mô hình máy tính song song cụ thể. Trong khi xây dựng có thể có nhiều ph-
ơng hớng thiết kế khác nhau tạo ra các giải thuật khác nhau. Việc đánh giá
hiệu quả của từng giải thuật cho phép ta quyết định giải thuật nào sẽ đợc áp
dụng dựa trên mô hình hiệu năng. Để đánh giá tốt hiệu quả giải thuật, chúng

ta cần xem xét các chỉ tiêu nh tốc độ ( Speedup), hiệu quả (Efficiency), linh
động ( Scalability). Điều này cần có kiến thức về tính toán độ phức tạp giải
thuật, tổ chức mạng kết nối giữa các phần tử xử lý, chi phí truyền thông giữa
các phần tử trong giải thuật.
Những vấn đề này sẽ đợc đề cập trong đồ án tốt nghiệp với mong ớc
góp phần nhỏ bé của mình vào việc phát triển nghiên cứu về lĩnh vực tính
toán song song. Đề tài cho đồ án tốt nghiệp là : Thiết kế giải thuật song
song
Nhiệm vụ của đồ án bao gồm:
1. Tìm hiểu kỹ thuật tổ chức giải thuật tính toán song song.
2. Nghiên cứu các vấn đề liên quan đến phơng pháp phân rã bài toán,
phục vụ cho việc xây dựng giải thuật song song và đánh giá đợc các ph-
ơng pháp phân rã.
3. áp dụng cho bài toán giải hệ phơng trình tuyến tính bằng phơng pháp
phân rã LU. Đa ra các giải thuật song song cho bài toán và đánh giá
hiệu quả của các giải thuật.
4. Mô phỏng một số giải thuật phân rã bài toán giải hệ phơng trình tuyến
tính.
Nội dung của đồ án tốt nghiệp gồm 5 chơng và tài liệu tham khảo.
Chơng 1 sẽ đề cập tổng quan về tính toán song song với các vấn đề
liên quan đến việc thiết kế giải thuật song song nh các mô hình tính toán song
song, kiến trúc bộ nhớ máy tính song song, các mô hình lập trình song song.
Chơng 2 đề cập đến mô hình thiết kế giải thuật, các công đoạn trong
quá trình thiết kế. Trong mỗi công đoạn sẽ đa ra đợc những vấn đề cần quan
tâm cho ngời thiết kế.
Chơng 3 sẽ đề cập đến mạng kết nối giữa các bộ xử lý và đi sâu vào
vấn đề ánh xạ tĩnh các tác vụ phân rã theo miền vào kiến trúc máy tính song
song cụ thể.
Vũ Trung Hiếu Tin3-K42 5
Thiết kế giải thuật song song

Chơng 4 đề cập đến mô hình hiệu năng đánh giá hiệu quả của giải
thuật song song sau khi thiết kế và phân tích tính qui mô của giải thuật.
Những đánh giá này sẽ giúp cho ngời thiết kế có khả năng chọn lựa giải thuật
trong công đoạn thiết kế.
Chơng 5 sẽ đi sâu thiết kế giải thuật song song cho bài toán giải hệ ph-
ơng trình tuyến tính theo phơng pháp tách LU. Mô phỏng một số giải thuật và
thử nghiệm một số bài toán giải hệ.
Vũ Trung Hiếu Tin3-K42 6
Thiết kế giải thuật song song
Chơng I Tổng quan về tính toán song song

Trong chơng này đề cập sơ lợc đến các vấn đề cơ bản trong tính toán
song song nh phân loại kiến trúc song song của Flynn, kiến trúc bộ nhớ, mô
hình lập trình song song. v. v. v, qua đây sẽ đa đến cái nhìn tổng quan để
định hớng khi thiết kế giải thuật.
1. 1 Kiến trúc Von Neumann

Hơn 40 năm qua, hầu hết các máy tính đều thiết kế dựa theo mô hình
phổ biến đợc biết đến nh máy Von Neumann. Tên máy tính đợc đặt theo tên
nhà toán học ngời Hungarian Jon Von Neumann.
Máy tính Von Neumann sử dụng khái niệm chơng trình lu trữ ( stored-
program), CPU sẽ thực hiện theo dãy các phép toán đọc, ghi trên bộ nhớ do
chơng trình lu trữ chỉ định.
Hình 1. 1: Mô tả kiến trúc Von Neumann
Đối với kiến trúc Von Neumann thì bộ nhớ đợc sử dụng để lu trữ cả lệnh
cho chơng trình lẫn dữ liệu. Lệnh chơng trình là dữ liệu đã đợc mã hoá, chơng
trình sẽ dựa vào đây để thực hiện, còn dữ liệu đơn giản chỉ là thông tin đợc
chơng trình sử dụng. Khi đó CPU sẽ lấy các lệnh hay dữ liệu từ bộ nhớ, giải
mã các lệnh và sau đó thực hiện tuần tự các lệnh này.
1. 2. Phân loại Flynn

Một trong những phân loại kiến trúc máy tính song song đợc biết nhiều
nhất là phân loại của Flynn, đợc sử dụng từ năm 1966. Michael Flynn phân
loại kiến trúc máy tính thành 4 loại dựa trên sự biểu hiện của cặp khái niệm :
dòng lệnh ( instruction stream) và dòng dữ liệu ( data stream), mỗi loại nằm
trong một trong hai trạng thái là Đơn (Single) hoặc Đa( Multiple).
Theo Flynn các kiến trúc máy tính gồm 4 loại đợc thể hiện trong ma
trận sau:

Vũ Trung Hiếu Tin3-K42 7
Memory
CPU
Fetch
Execute
Thiết kế giải thuật song song
SISD
Single Instruction Single Data
SIMD
Single Instruction Multiple Data
MISD
Multiple Instruction Single Data
MIMD
Multiple Instruction Multiple Data

Hình 1. 2: Mô tả phân loại kiến trúc của Flynn
Đơn dòng lệnh đơn dòng dữ liệu (SISD). Đây là kiến trúc của một máy
tuần tự, trong bất kỳ một chu kỳ đồng hồ nào chỉ có một dòng lệnh đang đợc
thực hiện bởi CPU và chỉ một dòng dữ liệu đang đợc sử dụng nh là đầu vào
cho chơng trình. Kiến trúc này chỉ sử dụng một thanh ghi đợc gọi là bộ đếm
chơng trình để đảm bảo cho dòng lệnh đợc thực hiện tuần tự. Kiến trúc này đ-
ợc sử dụng cho hầu hết các máy tính cá nhân, các workstation và mainframe

đơn CPU.


Hình 1. 3. Mô tả kiến trúc SISD
Đơn dòng lệnh đa dòng dữ liệu ( SIMD). Với kiến trúc này, tất cả các
đơn vị xử lý sẽ thực hiện cùng một lệnh tại bất kỳ chu kỳ đồng hồ nào nhng
mỗi đơn vị này có thể thao tác trên một phần tử dữ liệu khác nhau. Trong
kiến trúc này thờng có một đơn vị điều khiển lệnh ( Control Unit ), có mạng
kết nối bên trong giữa các đơn vị xử lý, có băng thông rất lớn và mảng rất lớn
các đơn vị lệnh có dung lợng rất nhỏ. Kiến trúc này đặc biệt phù hợp cho các
bài toán có mức độ đồng đều cao nh trong lĩnh vực xử lý ảnh. Kiến trúc này
là cơ sở xây dựng các máy tính song song kiểu bộ xử lý mảng ( array
processor) nh Connection Machine CM-2, Maspar MP-1, MP-2.

Hình 1. 4. Mô tả kiến trúc SISD
Vũ Trung Hiếu Tin3-K42 8
Thiết kế giải thuật song song
Đa dòng lệnh đơn dòng dữ liệu ( MISD). Kiến trúc này cho phép một
vài lệnh cùng thao tác trên cùng một dữ liệu. Có rất ít máy tính song song
dựa trên kiến trúc này.
Có hai cách để mô tả cách tổ chức của MISD. Cách thứ nhất đợc xét
đến các lớp máy yêu cầu các đơn vị xử lý riêng nhận các lệnh riêng biệt xử lý
trên cùng một dữ liệu. Cách thức thứ 2 đợc xét đến lớp các máy tính, trong đó
dữ liệu chuyển qua một dãy các đơn vị xử lý.
Đa dòng lệnh đa dòng dữ liệu (MIMD). Hiện nay, đây là kiến trúc song
song phổ biến nhất với mỗi bộ xử lý có thể thực hiện một dòng lệnh và một
dòng dữ liệu khác nhau. Hầu hết các máy tính supercomputer, máy tính
Multicomputer và Multiprocessor đều đợc xây dựng dựa trên kiến trúc này.

Hình 1. 4 Mô tả kiến trúc MIMD


1. 3 Các kiến trúc bộ nhớ máy tính song song
Có 3 kiến trúc bộ nhớ cơ bản là dùng chung ( shared memory), phân
tán ( distributed memory) và kết hợp giữa hai kiến trúc trên Hybrid (
distributed-shared memory).
1. 3. 1 Bộ nhớ dùng chung

Các máy tính song song dùng chung có nhiều dạng, biến đổi trong
phạm vi rộng nhng có đặc điểm chung là khả năng cho các bộ xử lý truy nhập
tới toàn bộ nhớ nh là không gian địa chỉ toàn cục( global address space).

Vũ Trung Hiếu Tin3-K42 9
Thiết kế giải thuật song song

Hình 1. 5 Mô tả máy tính song song bộ nhớ dùng chung

Các bộ xử lý có thể thao tác một cách độc lập nhng chia sẻ cùng tài
nguyên bộ nhớ, sự thay đổi trong một vị trí bộ nhớ bởi một bộ xử lý thì tất cả
các bộ xử lý còn lại sẽ nhận thấy đợc.
Tuy nhiên còn có thể phân ra thành 2 loại chính dựa vào thời gian truy
nhập bộ nhớ là truy nhập bộ nhớ đồng bộ- UMA ( Uniform Memory Access)
và truy nhập bộ nhớ không đồng bộ-NUMA ( Non-Uniform Memory Access).
Thuận lợi của mô hình này là lập trình thân thiện đối với ngời sử dụng
với việc chia sẻ dữ liệu, môi trờng tính toán ổn định nhng kém linh động giữa
bộ nhớ và các CPU. Nếu thêm nhiều CPU ta sẽ gặp phải các vấn đề do tăng
dung lợng trên đờng truyền thông giữa bộ nhớ và bộ nhớ, quản lý đồng bộ
việc truy nhập đồng thời của các bộ xử lý đến cùng vị trí bộ nhớ, truy nhập có
chính xác vị trí bộ nhớ trên không gian bộ nhớ dùng chung. Ngoài ra sẽ chi
phí rất tốn kém để thiết kế và sản xuất các máy tính kiểu này khi gia tăng số l-
ợng bộ xử lý.

1. 3. 2 Bộ nhớ phân tán
Cũng nh kiến trúc dùng chung, kiến trúc phân tán có nhiều dạng nhng
chia sẻ một đặc điểm chung là hệ thống bộ nhớ phân tán yêu cầu một mạng
truyền thông kết nối giữa bộ nhớ bộ xử lý.


Hình 1. 6 Mô tả kiến trúc bộ nhớ phân tán
Mỗi bộ xử lý đều có bộ nhớ cục bộ riêng, địa chỉ bộ nhớ không ánh xạ
tới các bộ xử lý khác, bởi vậy không có khái niệm không gian địa chỉ toàn cục
ngang qua tất cả bộ xử lý. Các bộ xử lý sẽ thao tác độc lập trên bộ nhớ riêng
của nó. Sự thay đổi dữ liệu tạo ra đối với bộ nhớ riêng không ảnh hởng đến bộ
Vũ Trung Hiếu Tin3-K42 10
Thiết kế giải thuật song song
nhớ của các bộ xử lý khác, bởi vậy không có sự đụng độ do truy nhập đồng
thời từ nhiều bộ xử lý.
Khi một bộ xử lý cần truy nhập đến dữ liệu trong bộ xử lý khác hoặc hai
bộ xử lý cần trao đổi dữ liệu cho nhau thì cần có truyền thông giữa chúng qua
mạng kết nối.
Thuận lợi của kiến trúc này là bộ nhớ khả chuyển với số lợng bộ xử lý,
gia tăng số lợng bộ xử lý và kích thớc bộ nhớ tỷ lệ với nhau. Chí phí xây dựng
máy tính không lớn, có thể dùng hệ thống mạng máy tính sẵn có. Tuy nhiên,
kiến trúc này sẽ khó khăn cho ngời lập trình bởi cần có những công đoạn thực
hiện truyền thông giữa các máy tính khi trao đổi dữ liệu, việc ánh xạ cấu trúc
dữ liệu hiện có lên kiến trúc bộ nhớ của máy tính và thời gian truy nhập dữ liệu
không đồng bộ.
1. 3. 3 Bộ nhớ kết hợp
Ngày nay, các máy tính song song lớn nhất và nhanh nhất cung cấp cả
kiến trúc bộ nhớ chung và phân tán. Mô hình này hình thành dựa theo việc
liên kết nhiều máy tính song song kiến trúc bộ nhớ chung thành máy tính lớn
hơn thông qua mạng truyền thông.



Hình 1. 7. Mô tả kiến trúc bộ nhớ kết hợp
Kiến trúc này kết hợp u và nhợc điểm của cả hai kiến trúc trên.
1. 4 Các mô hình lập trình song song
Mô hình lập trình cung cấp cho ngời lập trình cái nhìn đơn giản và trong
suốt với hệ thống phần cứng và phân mềm của máy tính. Các mô hình lập
trình song song đợc thiết kế chuyên dụng cho các mô hình máy tính song
song điển hình nh Multiprocessors, Multicomputers và Array Processor. Đơn
vị song song trong các mô hình lập trình là tiến trình ( process) hay tác vụ
(task) tơng ứng với các thao tác thực hiện bởi đoạn mã lệnh tuần tự, độ lớn
đoạn mã lệnh này thay đổi trong các ứng dụng và mô hình lập trình khác
nhau. Ngoài ra còn có một số mô hình lập trình khác nh hớng đối tợng, song
song theo logic.
1. 4. 1 Lập trình bộ nhớ dùng chung

Trong mô hình này đợc thiết kế cho máy tính Multiprocessors, các tác
vụ chia sẻ không gian địa chỉ dùng chung, đợc đọc/ghi một cách không đồng
Vũ Trung Hiếu Tin3-K42 11
Thiết kế giải thuật song song
bộ. Có một số kỹ thuật nh khoá (locks) hay cờ(semaphores) đợc sử dụng để
điều khiển truy nhập đến bộ nhớ dùng chung. Truyền thông giữa các tác vụ
thông qua các biến dùng chung.
Hình 1. 8: Mô tả truyền thông giữa các tác vụ sử dụng biến dùng chung
Hiện nay, mô hình này đợc hỗ trợ theo các cáh khác nhau trong hầu
hết các hệ điều hành 32-bit, điển hình trong các th viện liên kết của Unix có
hỗ trợ việc tạo các tiến trình, khối bộ nhớ dùng chung, cờ và kỹ thuật truyền
thông giữa các tiến trình.
1. 4. 2 Truyền thông điệp
Trong máy tính Multicomputers cung cấp kỹ thuật truyền thông điệp

( message passing) để trao đổi giữa các tác vụ. Hai tác vụ nằm trên hai máy
khác nhau có thể trao đổi với nhau bằng kỹ thuật truyền thông điệp trên mạng
kết nối. Các thông điệp có thể là các lệnh, dữ liệu, tín hiệu đồng bộ hay ngắt.
Hai mô hình truyền thông điệp đợc thực thi và sử dụng là đồng bộ hay không
đồng bộ.

Hình 1. 9 Mô tả truyền thông giữa hai tác vụ trên hai máy tính khác nhau
Hiện nay, PVM và MPI là hai mô hình lập trình song song điển hình sử
dụng kỹ thuật mày.
1. 4. 3 Mô hình song song dữ liệu

Trong mô hình này, hầu hết các công việc song song đều tập trung
thực hiện các phép toán trên một tập dữ liệu. Tập dữ liệu này thờng đợc tổ
chức trong một cấu trúc dữ liệu thông dụng nh mảng hoặc khối.
Một tập tác vụ sẽ làm việc trên cùng cấu trúc dữ liệu nhng mỗi tác vụ sẽ
làm việc trên một phần dữ liệu khác nhau với cùng phép toán. Mô hình này
thiết kế chủ yếu dành cho máy tính song song kiểu bộ xử lý mảng (array
processor)
Vũ Trung Hiếu Tin3-K42 12
Shared Memory
Task A
Task C
Task B
Thiết kế giải thuật song song

Hình 1. 10 Mô tả mô hình song song dữ liệu
1. 4. 4 Mô hình h ớng đối t ợng

Trong mô hình này, ánh xạ các đơn vị thực hiện vào các đối tợng. Các
đối tợng đợc tạo ra và thao tác theo cách tự động, việc xử lý đợc thực hiện

thông qua gửi và nhận giữa các đối tợng. Các mô hình lập trình hiện nay đều
xây dựng các đối tợng từ mức thấp nh tiến trình, tác vụ, hàng đợi và cờ tín
hiệu đến mức cao nh monitor hay module chơng trình.
Các ngôn ngữ lập trình song song hớng đối tợng nh CORBA, DCE,
JAVA, CC++
1. 4. 5 Mô hình logic

Dựa trên cơ sở logic tiên đề, lập trình logic phù hợp cho xử lý trí thức
giải quyết cơ sở tri thức lớn. Mô hình này chấp nhận một chiến lợc tìm kiếm ẩn
và hỗ trợ song song trong xử lý suy luận logic. Một câu hỏi đợc trả lời nếu hợp
với các sự kiện đợc tìm thấy trong cơ sở dữ liệu. Hai sự kiện hợp nhau nếu tiền
đề của chúng và các đối kết hợp là nh nhau. Xử lý việc hợp và thống nhất có
thể đợc song song dới các điều kiện chắc chắn. Mô hình này đợc áp dụng
song song cho các ứng dụng trí tuệ nhân tạo.
1. 5 Truyền thông trong mô hình Multicomputer
Nét nổi bật giữa các máy tính Multicomputer trớc đây và các hệ thống
ngày nay là sự thay đổi cách thức truyền thông giữa các bộ xử lý. Thế hệ đầu
tiên cuả mô hình Multicomputer, nh Intel iPSC/10
TM
, nCUBE/10
TM
và các
hệ thống dựa trên T800 Transputerr
TM
, đợc đặc trng bởi phần mềm quản lý
truyền thông điệp store and forward ( store and forward message passing).
Để gửi một message từ một bộ xử lý tới một bộ xử lý không liền kề, mỗi bộ xử
lý trung gian dọc theo đờng truyền message phải lu trữ toàn bộ message sau
đó đẩy message xuống đờng truyền tới bộ xử lý tiếp theo. Thậm chí truyền dữ
liệu đợc hoàn thành thông qua các kênh DMA thì CPU bị ngắt mỗi lần truyền

theo kiểu DMA đợc khởi tạo.

Vũ Trung Hiếu Tin3-K42 13
Thiết kế giải thuật song song
Hình1. 11 Mô tả cơ chế định đờng store and forward
Ngợc lại, đối với các mô hình máy tính song song thế hệ thứ hai, chẳng
hạn nh Intel iPSC/2
TM
, và nCUBE 2, có cơ chế định đờng message chuyển
mạch. Chẳng hạn nh mỗi nút trong mô hình iPSC/2 và iPSC/860 có một Card
con logic định đờng gọi là module kết nối trực tiếp (Direct Connect Module).
Các module kết nối trc tiếp thiết lập một mạch từ nút nguồn đến nút đích. Mỗi
lần mạch đợc thiết lập, message truyền trong một dạng đợc pipeline từ nút
nguồn tới nút đích mà không có một nút trung gian nào lu message này. Khi
một message đợc truyền từ một nút tới một nút không liền kề thì không cần
ngắt CPU của các nút trung gian và chỉ tác động vào các module kết nối trực
tiếp. Hình dới đây mô tả cơ chế này.
Vũ Trung Hiếu Tin3-K42 14
Processor 1
Processor 1
Y
Processor 1
T Y
Processor 1
R T Y
Processor 2
E
Processor 2
E R
Processor 2

E R T Y
Processor 2
E R T
Processor 3
Processor 3
Processor 3
Processor 3
R T Y
Processor 1
Processor 1
Processor 1
Processor 1
Processor 2
Processor 2
R T Y
Processor 2
T Y
Processor 2
Y
Processor 3
E
Processor 3
E R
Processor 3
E R T
Processor 3
E R T Y
80386
Numeric
Coprocessor

Memory
Direct-Connect
Routing Module
80386
Numeric
Coprocessor
Memory
Direct-Connect
Routing Module
80386
Numeric
Coprocessor
Memory
Direct-Connect
Routing Module
Thiết kế giải thuật song song
Hình 1. 12 Mô tả các module kết nối trực tiếp trên máy tính Intel iPSC/2
hỗ trợ cơ chế định đờng message.
Cơ chế truyền thông khác nhau sẽ ảnh hởng rất nhiều đến tính toán chi
phí truyền thông trong khi thiết kế giải thuật.
Sau chơng đầu tiên, ta đã tìm hiểu đợc sơ bộ các kỹ thuật tổ chức giải
thuật tính toán song song khác nhau phụ thuộc vào mô hình máy tính cụ thể.
Những tìm hiểu này là cơ sở đi vào lĩnh vực tính toán song song, tạo bớc nền
trớc khi đi vào thiết kế giải thuật song song trong chơng sau.

Vũ Trung Hiếu Tin3-K42 15
Thiết kế giải thuật song song
Chơng 2 Thiết kế Giải Thuật song song
Trong chơng này đề cập đến phơng pháp thiết kế giải thuật song song
cho bài toán, quá trình thiết kế không dễ dàng để có thể rút gọn thành công

thức đơn giản nh công thức giải hệ phơng trình bậc hai, giải hệ phơng trình
tuyến tính. v. v. mà yêu cầu có sự sắp xếp t duy thông nhất mà thờng đợc đề
cập đến nh là sự sáng tạo . Mục đích của ch ơng này là đa ra một khung
thiết kế, một sự đánh giá mang tính toán học nhằm giảm bớt những chi phí do
phải quay lui lại sau khi lựa chọn phơng án không hợp lý.
2. 1 Mô hình thiết kế

Trong mô hình thiết kế này, đơn vị để thực hiện song song là tác vụ.
Mỗi tác vụ bao gồm chơng trình thực hiện tuần tự và bộ nhớ cục bộ. Khi đó
tính toán song song là thực hiện đồng thời hai hay nhiều tác vụ, số lợng tác vụ
có thể biến đổi trong suốt thời gian thực hiện chơng trình. Các tác vụ có thể
ánh xạ tới các bộ xử lý theo nhiều cách khác nhau, trong đó nhiều tác vụ có
thể ánh xạ lên cùng một bộ xử lý.
Các tác vụ đợc kết nối với nhau thông qua các kênh truyền (chanel) và
thực hiện việc gửi và nhận các message trên kênh. Để thực hiện việc kết nối
đồng thời với nhiều tác vụ khác, một tác vụ sẽ có thêm một tập các cổng vào,
ra, mỗi cổng sẽ giao tiếp với một tác vụ khác. Tác vụ gửi sẽ đặt các message
lên kênh tại cổng ra, còn tác vụ nhận thì xoá bỏ message trên kênh thông
qua cổng vào.
Phép toán gửi là không đồng bộ, dữ liệu đợc gửi đi ngay lập tức, trong
khi đó phép toán nhận thì đồng bộ, bởi vậy việc thực hiện tác vụ sẽ dừng lại
cho đến khi message đợc nhận. Khi không còn message thì kênh truyền sẽ bị
huỷ bỏ.


Hình 2. 1 Mô tả kết nối giữa các tác vụ.
Sự đóng gói đối với tác vụ cho ta thấy tính cục bộ, dữ liệu nằm trong bộ
nhớ cục bộ của tác vụ ta gọi đó là dữ liệu gần , còn dữ liệu khác là dữ liệu
xa . Trong khi đó, kênh truyền sẽ chỉ ra sự phụ thuộc dữ liệu giữa các tác vụ
trong khi quá trình tính toán.

Bởi vì các tác vụ giao tác với nhau sử dụng kỹ thuật kênh truyền mà
không quan tâm đến việc định vị tác vụ, do đó kết quả tính toán bởi một ch-
Vũ Trung Hiếu Tin3-K42 16
Thiết kế giải thuật song song
ơng trình không phụ thuộc vào nơi mà tác vụ thực hiện. Các giải thuật phải đ-
ợc thiết kế và thực thi mà không quan tâm đến số lợng bộ xử lý trên máy tính
song song sẽ thực hiện bài toán. Thông thờng việc thiết kế bài toán sẽ tạo ra
số tác vụ lớn hơn nhiều so với số bộ xử lý, điều này sẽ làm cho giải thuật đạt
đợc khả năng linh động cao và có thể xen kẽ giữa tính toán và truyền thông
để tăng hiệu năng.
Các kênh truyền kết nối giữa các tác vụ có thể hoặc không tơng ứng với
đờng kết nối giữa các bộ xử lý trong mạng. Hai tác vụ trao đổi dữ liệu thông
qua kênh truyền có thể đợc ấn định tới:
Trên cùng một bộ xử lý, khi đó không cần truyền thông trên mạng.
Nằm trên hai bộ xử lý đợc kết nối trực tiếp, khi đó chỉ truyền thông trực
tiếp giữa hai bộ xử lý.
Nằm trên hai bộ xử lý không kết nối trực tiếp, khi đó yêu cầu định đờng
message trên mạng.

2. 2 Phơng pháp thiết kế
Hầu hết các bài toán lập trình đều có một vài lời giải song song. Phơng
án tốt nhất có thể khác so với phơng án đợc đề nghị bởi các giải thuật tuần tự
đang tồn tại. Phơng pháp thiết kế đa ra ở đây có xu hớng tiếp cận ban đầu
trên mô hình độc lập với máy tính song song, vấn đề đựợc chú trọng là tính
đồng thời và các khía cạnh thiết kế trên kiến trúc máy tính cụ thể đợc đề cập
sau trong tiến trình thiết kế. Phơng pháp này hình thành lên tiến trình thiết kế
gồm có 4 công đoạn: phân rã, truyền thông, tích tụ và ánh xạ. Trong hai công
đoạn đầu, chúng ta chú trọng vào tính đồng thời và linh động, tìm kiếm để
khám phá giải thuật với những tiêu chuẩn này. Trong hai công đoạn sau, thứ
3 và 4, chuyển tập trung sang tính cụ bộ và các vấn đề liên quan đến hiệu

năng khác. Bốn công đoạn đợc tóm lợc và mô tả nh sau:
Phân rã (Partitioning ): Công việc tính toán và dữ liệu đợc phân rã
thành các tác vụ nhỏ. Trong công đoạn này chúng ta bỏ qua các vấn đề
thực tế nh truyền thông, số bộ xử lý trên máy đích. Chúng ta chỉ tập
trung vào vấn đề nhận ra đợc các khả năng để thực thi song song.
Truyền thông (Communication ): Sau khi phân rã bài toán thành các tác
vụ nhỏ, yêu cầu về truyền thông giữa các tác vụ đợc đặt ra. Trong công
đoạn này cũng xác định các cấu trúc và giải thuật truyền thông thích
hợp.
Tích tụ ( Agglomeration). Các cấu trúc truyền thông và tác vụ đợc định
nghĩa trong hai công đoạn đầu của quá trình thiết kế đợc đánh giá đối
với yêu cầu hiệu năng và chi phí thực thi. Trong công đoạn này, các tác
vụ có thể đợc tích tụ vào trong tác vụ lớn hơn nhằm năng cao hiệu năng
hoặc giảm chi phí khác.
ánh xạ ( Mapping). ấn định các tác vụ vào trong bộ xử lý, mục đích là cố
gắng thoả mãn hai mục tiêu đối ngợc nhau : cực đại hoá khả năng của
bộ xử lý và cực tiểu hoá chi phí truyền thông. ánh xạ có thể thực hiện
tĩnh trớc khi tính toán hoặc tự động trong thời gian thực hiện bởi các giải
thuật cân bằng tải.
Vũ Trung Hiếu Tin3-K42 17
ThiÕt kÕ gi¶i thuËt song song
Vò Trung HiÕu Tin3-K42 18
Thiết kế giải thuật song song

Hình 2. 2 : Mô tả các công đoạn thiết kế giải thuật song song.

Kết quả của quá trình thiết kế là hớng đến một chơng trình có thể tạo ra
hoặc huỷ bỏ các tác vụ một cách tự động, sử dụng các kỹ thuật cân bằng tải
để điều khiển ánh xạ các tác vụ đến các bộ xử lý. Các công đoạn thiết kế giải
thuật đợc trình bày ở đây thực hiện tuần tự. Tuy nhiên, trong thực tế đây là

tiến trình song song mức cao, với nhiều vấn đề liên quan đợc xem xét đồng
thời. Mặc dù chúng ta tìm kiếm để tránh quay lui nhng việc đánh giá từng
phần hoặc toàn bộ thiết kế có thể yêu cầu thay đổi quyết định thiết kế đợc tạo
ra trong các công đoạn trớc đó.
Chi tiết của bốn công đoạn sẽ đợc trình bày trong các mục tiếp theo,
trong đó sẽ tìm hiểu sâu về công đoạn và vấn đề cần quan tâm khi thiết kế
giải thuật.
2. 3 Phân rã

Mục đích của công đoạn này là khám phá đến mức tối đa khả năng
song song của bài toán, do đó chú trọng đến việc định nghĩa một tập lớn các
Vũ Trung Hiếu Tin3-K42 19
Thiết kế giải thuật song song
tác vụ nhỏ không có sự liên kết, đợc gọi là các tác vụ fine-grain. Khi đó, khối l-
ợng công việc đợc thực hiện thông qua truyền thông giữa các tác vụ là không
có.
Khi phân rã một giải thuật, ngời thiết kế đầu tiên thờng chú trọng nhất
về dữ liệu kết hợp với một bài toán, sau đó xác định một phân rã thích hợp
cho dữ liệu và công việc cuối cùng là kết hợp tính toán với dữ liệu nh thế nào.
Kỹ thuật này đợc gọi là phân rã theo miền ( domain decomposition). Một cách
tiếp cận khác là phân rã tính toán đợc thực hiện đầu tiên và sau đó kết hợp dữ
liệu với tính toán - đợc gọi là phân rã theo chức năng( functional
decomposition).
2. 3. 1. Phân rã theo miền
Thông thờng, hớng tiếp cận này quan tâm đến phân chia dữ liệu của
bài toán. Nếu có thể, chúng ta phân chia dữ liệu thành các phần nhỏ có kích
thớc xấp xỉ nhau. Tiếp theo phân chia tính toán đợc thực hiện. Thông thờng là
kết hợp mỗi phép toán với phần dữ liệu mà phép toán thao tác trên đó. Việc
phân chia này thờng đem lại một số lợng lớn tác vụ, mỗi tác vụ bao gồm một
số dữ liệu và một tập các phép toán thực hiện trên dữ liệu này. Khi phép toán

yêu cầu dữ liệu từ một vài tác vụ khác thì dữ liệu sẽ đợc vận chuyển giữa các
tác vụ thông qua truyền thông. Yêu cầu này sẽ đợc chỉ ra trong pha tiếp theo
của tiến trình thiết kế.

Hình 2. 3 Mô tả phân rã bài toán theo miền
Dữ liệu đợc phân rã có thể là đầu vào, đầu ra hay các giá trị trung gian
của chơng trình. Có thể có các phân rã khác nhau dựa trên cấu trúc dữ liệu
khác nhau hoặc cấu trúc dữ liệu đợc truy xuất tuần tự nhất.
Các pha khác nhau của tính toán có thể thao tác trên các cấu trúc dữ
liệu khác nhau hoặc yêu cầu phân rã khác nhau trên cùng một cấu trúc dữ
liệu. Trong trờng hợp này, ta nên xem xét mỗi pha một cách riêng biệt và sau
đó xác định các giải thuật phân rã và song song phát triển cho mỗi pha phù
hợp cùng nhau.
Ví dụ ta cần phân rã một bài toán đơn giản liên quan đến khung lới 3
chiều nh bài toán mô hình thời tiết, khung lới 3 chiều thể hiện trạng thái của
khí quyển hoặc thể hiện không gian 3 chiều trong bài toán xử lý ảnh. Tính
toán đợc lặp lại trên mỗi điểm của khung lới. Khi đó phân rã bài toán có thể
theo 1, 2 hoặc 3 chiều x, y, z. Tuy nhiên trong công đoạn đầu tiên này, ngời
Vũ Trung Hiếu Tin3-K42 20
Thiết kế giải thuật song song
thiết kế thờng quan tâm đến phân rã có tính linh hoạt nhất và khi đó mỗi tác
vụ sẽ đợc xác định tơng ứng cho mỗi điểm.
Hình 2. 4 Mô tả các phơng pháp phân rã theo miền khác nhau cho bài
toán liên quan đến khung lới 3 chiều.

2. 3. 2 Phân rã chức năng

Phân rã chức năng cho ta một hớng nhìn khác, mang tính bổ xung về
bài toán. Trong hớng tiếp cận này, ngời thiết kế chú trọng đầu tiên vào tính
toán đợc thực hiện hơn là dữ liệu đợc thao tác bởi phép tính. Nếu hớng tiếp

cận này thành công, sẽ phân chia quá trình tính toán thành các tác vụ riêng
rẽ. Sau đó ta sẽ tiến hành kiểm tra yêu cầu dữ liệu cho những tính toán của
tác vụ này. Khi yêu cầu dữ liệu riêng rẽ nhau thì phân chia là hoàn toàn, còn
không thì có thể yêu cầu vận chuyển dữ liệu giữa các tác vụ để tránh lặp lại
dữ liệu. Việc lặp lại dữ liệu sẽ đợc giải quyết thông qua việc phân rã theo
miền.
Hình 2. 4 Mô tả phân rã bài toán theo chức năng
Một ví dụ quen thuộc cho phơng pháp phân rã theo chức năng là bài
toán mô hình tính toán thời tiết. Xác định thời tiết thông qua việc tổng hợp dữ
liệu từ các mô hình thành phần là : mô hình khí quyển ( Atmospheric Model),
mô hình thuỷ học(Hydrology Model ), mô hình mặt đất( Land Surface Model)
và mô hình đại dơng( Ocean Model).
Vũ Trung Hiếu Tin3-K42 21
Thiết kế giải thuật song song
Hình 2. 5 Mô tả phân rã chức năng trong mô hình tính toán thời tiết

Khi đó, mỗi thành phần chức năng có thể xem nh là một tác vụ riêng
biệt và tiếp tục đợc song song bởi phân rã theo miền đối với dữ liệu tơng ứng
cho từng tác vụ. Các mũi tên biểu hiện sự trao đổi dữ liệu giữa các thành phần
trong suốt thời gian tính toán chẳng hạn nh mô hình khí quyển tạo ra ra dữ
liệu về tốc độ gió sẽ đợc sử dụng trong tính toán của mô hình đại dơng, mô
hình đại dơng tạo ra dữ liệu về nhiệt độ mặt biển sẽ đợc sử dụng trong mô
hình khí quyển.
Đối với hầu hết các giải thuật song song thì phân rã theo miền hình
thành cơ bản cho giải thuật. Phân rã chức năng chỉ đợc đánh giá là cách nhìn
khác về bài toán, bổ xung cho phơng pháp phân rã theo miền. Tuy nhiên đối
với các bài toán phức tạp thì phân rã theo miền cũng đóng vai trò quan trọng
nh là một kỹ thuật để cấu trúc chơng trình, đơn giản hoá bài toán phức tạp
bằng tập các bài toán đơn giản hơn, liên kết với nhau. Phân rã chức năng sẽ
giảm bớt đợc đáng kể chi phí thiết kế. Giải thuật song song tốt sẽ kết hợp đợc

cả phơng pháp phân rã theo miền và phân rã theo chức năng.
Trong công đoạn phân rã, đôi khi giải thuật tuần tự không thể hiện cho
ta khả năng song song. Khi đó cần có sự phân tích theo các hớng khác nhau
về bài toán, ta mới có thể phân rã đợc. Một ví dụ điển hình là bài toán tính số
đỉnh của một cây duyệt theo thứ tự trớc. Nếu nhìn vào giải thuật tuần tự, ta
thấy bài toán có vẻ tuần tự vốn có. Bởi vì, chúng ta không thể gán nhãn cho
các nút bên phải khi cha biết bao nhiêu nút ở cây bên trái và cũng không thể
gán nhãn cho các nút ở cây con bên phải của cây con bên trái và cứ thế.
Ta hãy xem xét mô tả đệ qui về bài toán này.

PREORDER. TRAVERSAL (nodeptr):
Begin
If nodeptr

null then
nodecount

nodecount + 1
nodeptr. label

nodecount
PREORDER. TRAVERSAL (nodeptr. left)
PREORDER. TRAVERSAL(nodeptr. right)
Endif
End
Vũ Trung Hiếu Tin3-K42 22
Thiết kế giải thuật song song
Để có thể chuyển sang giải thuật song song, ta hãy xem xét bài toán
trên quan điểm khác. Quan điểm về lu trữ dữ liệu, về mối liên hệ giữa các nút.
Thay vì chú trọng đến các đỉnh (vertices) của cây, ta quan tâm đến các cạnh

(edges). Khi thực hiện duyệt theo thứ tự trớc, giải thuật sẽ tiến hành một cách
hệ thống thông qua tất cả các cạnh của cây.
Thực tế, giải thuật duyệt cây dọc theo mỗi cạnh hai lần, lần thứ nhất từ
đỉnh cha tới đỉnh con, sau đó thì duyệt ngợc lại. Nếu chia mỗi cây thành hai
cây, một cây ứng với duyệt từ trên xuống còn cây kia ứng với duyệt trở lại. Khi
đó, bài toán duyệt cây sẽ chuyển sang bài toán duyệt một danh sách liên kết
đơn, bài toán này có thể phân rã để thực hiện song song đợc.




Hình 2. 6 Mô tả phơng pháp phân rã bài toán tính số đỉnh cây duyệt theo thứ
tự trớc
2. 3. 3 Các vấn đề cần quan tâm
Trong công đoạn này, ta nên đa ra một hoặc nhiều hớng phân rã cho
một bài toán. Trớc khi tiến hành đánh giá các yêu cầu truyền thông, ta nên
xem xét các vấn đề đợc liệt kê dới đây để tránh gặp phải những sai sót không
dễ nhận ra trong quá trình thiết kế.
Hầu hết công việc của bài toán khoa học và kỹ thuật lớn thờng đợc
hoàn thành trong một số đoạn mã, ngời ta thờng gọi đó là các hotspots
của bài toán. Khi phân rã bài toán, ta lên chú trọng vào các đoạn mã
này, bỏ qua các đoạn mã chiếm thời gian CPU không đáng kể.
Phân chia bài toán thành các tác vụ với số lợng lớn hơn nhiều so với
số bộ xử lý. Nếu không, sự linh hoạt khi áp dụng vào mô hình cụ thể sẽ
không có.
Tránh yêu cầu tính toán và lu trữ d thừa. Bởi nếu không sẽ không có
khả năng mở rộng đối với các bài toán lớn hơn.
Ta có thể so sánh đợc kích thớc của các tác vụ, nếu không sẽ khó
khăn khi ta định vị số lợng ngang nhau giữa các bộ xử lý.
Số lợng tác vụ phải linh hoạt với kích thớc bài toán, nếu không có thể

khó giải bài toán lớn hơn khi có nhiều bộ xử lý hơn.
2. 4 Truyền thông
Vũ Trung Hiếu Tin3-K42 23
D
A
CB
F
G
E
H
A
CB
F
G
D
E
H
Thiết kế giải thuật song song
Các tác vụ đợc tạo ra trong công đoạn phân rã có xu hớng đợc thực
hiện đồng thời nhng nhìn chung không thể thực hiện một cách độc lập. Tính
toán đợc thực hiện trong một tác vụ thờng sẽ yêu cầu dữ liệu kết hợp với tác
vụ khác. Sau đó, dữ liệu phải đợc truyền giữa các tác vụ để cho phép tính
toán đợc thực hiện. Luồng thông tin này đợc chỉ ra trong công đoạn truyền
thông của một tiến trình thiết kế.
Trong mô hình thiết kế, ta đã khái niệm hoá truyền thông giữa hai tác
vụ nh một kênh kết nối, trên đó một tác vụ có thể đợc gửi và những tác vụ
khác có thể nhận. Bởi vậy, truyền thông kết hợp với một giải thuật có thể đợc
chỉ ra trong hai pha.
Đầu tiên là xác định cấu trúc kênh là trực tiếp hoặc không trực tiếp kết
nối các tác vụ yêu cầu dữ liệu ( consumers) với các tác vụ chiếm giữ dữ liệu (

producers).
Thứ hai, chỉ ra các message đợc gửi và nhận trên những kênh này.
Việc định nghĩa ra các kênh truyền sẽ làm phức tạp bài toán còn gửi
message sẽ tăng chi phí truyền thông. Bởi vậy, chúng ta tránh đa ra các
kênh và phép toán truyền thông không cần thiết. Hiệu năng có thể năng cao
bằng cách phân tán các phép toán truyền thông trên nhiều tác vụ và tổ chức
các phép toán truyền thông sao cho có thể thực hiện đồng thời.
Trong các bài toán phân rã theo miền, có thể sẽ khó khăn khi xác định
yêu cầu truyền thông bởi vì ta không nhận thấy đợc sự phụ thuộc dữ liệu
giữa các tác vụ. Sau khi thực hiện công đoạn phân rã sẽ hình thành ra tập
các tác vụ không liên kết. Tuy nhiên, sự phụ thuộc dữ liệu giữa các tác vụ
vẫn còn khi mà một số phép toán trong tác vụ này yêu cầu dữ liệu từ các tác
vụ khác. Tổ chức truyền thông một cách hiệu quả có thể đang trở thành
thách thức, thậm chí các phân rã đơn giản có thể có cấu trúc truyền thông
phức tạp. Ngợc lại, các yêu cầu truyền thông trong các giải thuật song song
đạt đợc bằng phân rã chức năng thờng là đơn giản, chúng tơng ứng với
luồng dữ liệu trao đổi giữa các tác vụ. Chẳng hạn nh bài toán mô hình thời
tiết, truyền thông tơng ứng với luồng dữ liệu liên kết giữa các thành phần của
mô hình.
Thông thờng có hai kiểu truyền thông là truyền thông cục bộ, mỗi tác
vụ truyền thông với một tập nhỏ các tác vụ khác gọi là các tác vụ kề bên của
nó, còn lại gọi là truyền thông toàn cục, yêu cầu mỗi tác vụ truyền thông với
nhiều tác vụ.
2. 4. 1 Truyền thông cục bộ

Cấu trúc truyền thông cục bộ đạt đợc khi một phép toán yêu cầu từ một
số nhỏ các tác vụ bên cạnh khác. Khi đó sẽ đơn giản để xác định các kênh
kết nối giữa tác vụ thực hiện phép toán (consumer) với các tác vụ nắm giữ dữ
liệu (producer) để tính toán và đa ra các phép toán nhận và gửi thích hợp
trong các tác vụ này.

Để mô tả kiểu truyền thông này, ta xem xét các yêu cầu truyền thông
trong tính toán số của phơng pháp vi phân hữu hạn Jacobi. Trong bài toán
này, một lới đa chiều các điểm đợc tạo ra, điểm ở giữa sẽ đợc cập nhật
theo các điểm bên cạnh.
Sau đây là công thức tính cho lới 2 chiều.
Vũ Trung Hiếu Tin3-K42 24
Thiết kế giải thuật song song
Truyền thông giữa các tác vụ đợc biểu diễn nh sau:
Hình 2. 7 Mô tả truyền thông cục bộ giữa các tác vụ
Tác vụ T
ji,
sẽ gửi X
ji,
sang các vụ bên cạnh và nhận dữ liệu là X
ji ,1
+
, X
ji ,1

, X
1,

ji
, X
1,
+
ji
từ các vụ bên cạnh.
2. 4. 2 Truyền thông toàn cục
Một phép toán truyền thông toàn cục sẽ đợc thực hiện với sự tham gia

của nhiều tác vụ. Khi phép toán đợc thực hiện, sẽ không đơn giản để nhận ra
các cặp producer/consumer. Với cách tiếp cận trên thì có thể dẫn đến quá
nhiều truyền thông hoặc hạn chế khả năng tính toán đồng thời.
Ví dụ, xem xét bài toán thực hiện phép toán rút gọn song song, rút gọn
N giá trị phân tán trên N tác vụ.
S =


=
1
0
N
i
i
X
Giả sử rằng có một tác vụ làm nhiệm tính toán tổng S, khi đó tác vụ
này cần yêu cầu các giá trị X
0
, X
1
, . . . từ các tác vụ 1, 2, . . . Bởi vậy, ta có thể
định nghĩa một cấu trúc truyền thông cho phép mỗi tác vụ truyền thông giá trị
của nó tới tác vụ tính S một cách độc lập. Tuy nhiên, tác vụ tính S chỉ có thể
nhận và tính tổng chỉ một số tại một thời điểm, nên cách tiếp cận này có độ
phức tạp O(N) về thời gian để tính tổng N số, đây không phải là giải thuật tốt.
Hình 2. 8 Mô tả truyền thông toàn cục trong bài toán tính tổng
Ví dụ trên đã mô tả hai vấn đề chung ngăn cản thực hiện song song
hiệu quả trong các giải thuật dựa trên quan điểm hoàn toàn cục bộ về truyền
thông.
Giải thuật này đợc tập trung hoá, không phân tán tính toán và

truyền thông. Một tác vụ đơn phải tham gia trong tất cả phép toán.
Giải thuật là tuần tự, không cho phép nhiều phép toán truyền
thông và tính toán xử lý đồng thời.
Vũ Trung Hiếu Tin3-K42 25

×