Thuật toán sẽ tính ñiểm mỗi trang web trên mạng, khi người sử dụng thực hiện truy vấn, các trang web trả về sẽ ñược sắp xếp theo ñiểm ñược tính trước ñó, trang web có ñiểm số cao xuất hi
Trang 1KHÓA LUẬN TỐT NGHIỆP
SONG SONG HÓA THUẬT TOÁN PAGERANK VÀ ỨNG DỤNG
Giáo viên hướng dẫn : PGS.TS Nguyễn Phi Khứ
Sinh viên thực hiện : Trần Hoàng Anh
Lớp : CNTN02
TPHCM-2011
Trang 2LỜI CẢM ƠN
Em xin chân thành cảm ơn Ban giám hiệu, Khoa Khoa học máy tính
trường Đại Học Công Nghệ Thông Tin ñã tạo ñiều kiện thuận lợi ñể em ñược
học tập và tham gia làm khoá luận tốt nghiệp
Em xin chân thành cảm ơn thầy Nguyễn Phi Khứ ñã tận tình chỉ bảo,
hướng dẫn, hỗ trợ về vật chất và tinh thần cho em trong quá trình làm khoá
luận
Mặc dù em ñã nỗ lực hoàn thành báo cáo khoá luận song vẫn không tránh
khỏi thiếu sót kính mong sự góp ý của các thầy cô và các bạn
TPHCM, ngày 18/7/2011 Sinh viên: Trần Hoàng Anh
Trang 3Nhận Xét Của Giáo Viên Hướng Dẫn
Trang 4
Nhận Xét Của Giáo Viên Phản Biện
Trang 5
MỤC LỤC
LỜI CẢM ƠN 2
LỜI MỞ ĐẦU 9
1 TỔNG QUAN 10
1.1 Đặt Vấn Đề 10
1.2 Các Nghiên Cứu Gần Đây 11
1.3 Mục Tiêu Đề Tài 12
1.4 Phạm Vi Đề Tài 13
1.5 Phương Pháp Nghiên Cứu 13
2 CƠ SỞ LÝ THUYẾT 14
2.1 Bộ Máy Tìm Kiếm Và Vai Trò Của Thuật Toán Xếp Hạng Trang Web 14
2.1.2 Tại sao lại chúng ta sử dụng bộ máy tìm kiếm web? 14
2.1.3 Các thành phần chính của bộ máy tìm kiếm 15
2.1.4 Hoạt ñộng của bộ máy tìm kiếm 17
2.1.5 Vai trò của thuật toán xếp hạng trang web 19
2.2 Thuật Toán Xếp Hạng PageRank 19
2.2.1 Cơ sở của thuật toán 19
2.2.2 Chuyển sang ma trận 20
2.2.3 Mô hình chuỗi Markov 22
2.2.4 Mô hình Random Surfer 26
2.2.5 Phương pháp Power Method 28
2.2.6 Tốc ñộ hội tụ của phương pháp Power Method 30
2.3 Tính Toán Song Song 31
2.3.1 Giới thiệu tính toán song song 31
2.3.2 Các ñịnh luật cơ bản 32
Trang 62.3.3 Các mô hình tính toán song song 34
2.3.4 Các yêu cầu của thuật toán song song 39
2.3.5 Phương pháp thiết kế thuật toán song song 39
2.3.6 Độ phức tạp thuật toán song song 41
3 LẬP TRÌNH SONG SONG 44
3.1 Các Mô Hình Lập Trình Song Song 44
3.2 Mô Hình Truyền Thông Điệp 46
3.2.1 Cơ chế gửi nhận thông ñiệp 46
3.2.2 Kiến trúc lập trình truyền thông ñiệp 48
3.2.3 Truyền thông theo nhóm 49
3.3 Giao Thức MPI 54
3.3.1 Các hàm cơ bản 54
3.3.2 Các hàm truyền thông nhóm 57
4 SONG SONG HÓA PAGERANK 62
4.1 Cấu Trúc Dữ Liệu 62
4.2 Thiết Kế Thuật Toán 63
4.3 Hệ Thống Và Giải Thuật 66
4.4 Phân Tích Độ Phức Tạp 70
4.4.1 Độ phức tạp về thời gian 70
4.4.2 Độ phức tạp về không gian 73
5 CHƯƠNG TRÌNH THỬ NGHIỆM 74
5.1 Hệ Thống 74
5.1.1 Môi trường cài ñặt 74
5.1.2 Dữ liệu thử nghiệm 74
5.2 Cài Đặt Hệ Thống Song Song 75
5.2.1 Chuẩn bị hệ thống 75
5.2.2 Cài ñặt phần mềm 76
Trang 75.2.3 Chạy chương trình song song 77
5.3 Chương Trình Thử Nghiệm 80
5.4 Kết quả Và Nhận Xét 84
5.4.1 Phương pháp thí nghiệm 84
5.4.2 Kết quả và nhận xét 85
6 KẾT LUẬN VÀ ĐỀ NGHỊ 87
6.1 Kết Luận 87
6.2 Đề Nghị 89
Tham Khảo 90
Trang 8DANH MỤC HÌNH VẼ
Hình 1: Cấu trúc công cụ tìm kiếm 17
Hình 2: Đồ thị thể hiện một mạng gồm 6 trang web 21
Hình 3: Biểu diễn ma trận phân phối xác suất H 21
Hình 4: Đồ thị thể hiện ñịnh luật Amdahl 33
Hình 5: Hệ thống theo mô hình SPMD 34
Hình 6: Hệ thống ña trình 35
Hình 7: Hệ thống theo nguyên lý hình ống 37
Hình 8: Hệ thống theo mô hình MPMD 38
Hình 9: Mô hình thiết kế thuật toán song song 40
Hình 10: Mô hình ñường ống 48
Hình 11: Mô hình vòng tròn 49
Hình 12: Quá trình Broadcast 50
Hình 13: Quá trình Reduce 51
Hình 14: Quá trình Scatter 52
Hình 15: Quá trình Gather 53
Hình 16: Tổng quan các hàm chuyển dịch dữ liệu 59
Hình 17: Tổng quan hàm xử lý dữ liệu nhóm 61
Hình 18: Cấu trúc dữ liệu mạng thô 62
Hình 19 : Cấu trúc dữ liệu ñã qua xử lý 63
Hình 20: Mô hình ñối tượng tính toán cơ bản 63
Hình 21a: Phương pháp kết hợp theo khối 64
Hình 22: Phương pháp két hợp theo vòng tròn 65
Hình 23: Mô hình hệ thống song song hóa PageRank 67
Hình 24: Thuật toán song song hóa PageRank 69
Hình 25: Đăng ký tài khoản bằng giao diện 78
Hình 26: Giao diện chương trình thử nghiệm 81
Hình 27: Thiết lập thí nghiệm mới 82
Hình 28: Thực hiện thí nghiệm 83
Hình 29: Bảng kết quả thử nghiệm của hệ thống 2 CPU trên cùng một máy 85
Hình 30: Bảng kết quả thử nghiệm của hệ thống 4 CPU trên hai máy 86
Trang 9LỜI MỞ ĐẦU
PageRank là thuật toán sắp xếp dựa trên liên kết ñược sử dụng
bởi bộ máy tìm kiếm Google Thuật toán sẽ tính ñiểm mỗi trang
web trên mạng, khi người sử dụng thực hiện truy vấn, các trang
web trả về sẽ ñược sắp xếp theo ñiểm ñược tính trước ñó, trang
web có ñiểm số cao xuất hiện trước, trang web có ñiểm số thấp
xuất hiện sau Điều này giúp người xử dụng có thể nhanh chóng
tiếp cận với những trang web ñược bộ máy tìm kiếm xem là tốt
hơn và từ ñó sẽ tiết kiệm ñược thời gian tìm kiếm Tuy nhiên, các
trang web và liên kết trên mạng thay ñổi liên tục, số ñiểm của mỗi
trang web cũng phải ñược liên tục ñược tính lại ñể trả lại kết quả
sắp xếp chính xác nhất, ñiều này ñặt ra yêu cầu phải cải tiến thuật
toán ñể thực hiện nhanh hơn với dữ liệu ngày càng lớn hơn Trong
nghiên cứu này, em chọn giải pháp song song hóa, chia nhỏ khối
lượng tính toán trên một mạng các máy tính song song qua ñó rút
ngắn ñược thời gian tính toán Em cũng ñưa ra mô hình hệ thống,
thuật toán và thực hiện thử nghiệm với dữ liệu mạng WikiVote và
Stanford Kết quả bước ñầu khá khả quan
Trang 101 TỔNG QUAN
Ngày nay với sự phát triển nhanh chóng của mạng toàn cầu, bộ máy tìm kiếm (search engine) ñã trở thành công cụ thiết yếu ñể nhanh chóng tiếp cận và khai thác lượng thông tin khổng lồ trên mạng Tuy nhiên, một truy vấn ñơn giản có thể trả lại hàng chục ngàn trang web kết quả và có lẽ không người sử dụng nào có ñủ thời gian
ñể lướt qua hết lượng kết quả lớn này ñể tìm thông tin mình muốn Để giúp người xử dụng tiết kiệm thời gian tìm kiếm, các công cụ tìm kiếm sẽ ñánh giá ñể sắp xếp các kết quả tìm kiếm trước khi trả lại cho người dùng, các trang web ñược ñánh giá là tốt hơn
sẽ ñược hiển thị trước, các trang web ñược ñánh giá kém hơn sẽ ñược hiển thị sau giúp người dùng nhanh chóng tiếp cận ñược với những nguồn thông tin tốt Các trang web ñược ñánh giá bằng bộ sắp xếp (ranker) [1] sử dụng một thuật toán xếp hạng Với bộ máy tìm kiếm Google, bộ sắp xếp xử dụng thuật toán PageRank
Thuật toán PageRank là thuật toán sắp xếp dựa trên liên kết [2,3,4] Một trang web ñược ñánh giá dựa trên ñiểm số, ñiểm số này phụ thuộc vào các trang web mà nó
có liên kết tới cũng như các trang web có liên kết tới nó Dựa trên ý tưởng này, ta có thể kể ñến một thuật toán sắp xếp khác cũng khá nổi tiếng là HITS [5] Điểm khác biệt
cơ bản giữa hai thuật toán là với mỗi truy vấn của người sử dụng, HITS dựa trên truy vấn của người dùng ñể lấy ra một tập các trang web kết quả và tính ñiểm các trang này ngay tại thời ñiểm truy vấn, trong khi ñó PageRank không phụ thuộc vào truy vấn của
Trang 11người dùng mà thực hiện tính ñiểm cho tất cả các trang web vào thời ñiểm trước ñó
Do ñó, sử dụng thuật toán PageRank, bộ máy tìm kiếm có thời gian trả lời truy vấn
nhanh hơn, ñiều này ñặc biệt quan trọng với những bộ máy tìm kiếm lớn có số truy
vấn nhiều như Google Tuy nhiên, thuật toán PageRank cũng có mặt hạn chế là ñiểm
ñược tính không phải ở thời ñiểm truy vấn nên kết quả sắp xếp có thể chưa chính xác
Để khắc phục hạn chế này, bộ máy tìm kiếm sử dụng thuật toán PageRank phải thực
hiện tính toán lại ñiểm liên tục ñể ñưa ra kết quả chính xác Điều này dẫn ñến yêu cầu
cải tiến thuật toán ñể tính toán nhanh hơn với khối lượng dữ liệu ngày càng lớn hơn
Nhiều nghiên cứu về thuật toán PageRank ñã ñược thực hiện David Gleich và
Paul G Constantine ñã thực hiện các nghiên cứu về tham số damping factor của thuật
toán PageRank [6,7] Trong khi ñó, Ilse C F Ipsen và Teresa M Selee thực hiện
nghiên cứu về các trang web ñặc biệt gọi là dangling node ñể tăng tốc ñộ tính toán Về
mặt lý thuyết toán, P Sargolzaei và F Soleymani ñã nghiên cứu khá toàn diện về các
vấn ñề toán của thuật toán PageRank[10], Taher H Haveliwala và Sepandar D
Kamvar ñã sử dụng công cụ toán học ñể tìm ra tốc ñộ hội tụ của thuật toán PageRank
[8] Về mặt ứng dụng, Yushi Jing ñã áp dụng thuật toán PageRank ñể xây dựng một hệ
thống tìm kiếm ảnh lớn [9] Tuy nhiên các nghiên cứu này cũng chưa thật sự giải quyết
triệt ñể bài toán tăng tốc tính toán thuật toán PageRank do bị giới hạn bởi các tài
nguyên máy tính như bộ nhớ, tốc ñộ xử lý, dẫn ñến yêu cầu phải tìm ra một giải pháp
cả về phần cứng lẫn phần mềm ñể có thể giải quyết triệt ñể bài toán này
Trang 121.3 Mục Tiêu Đề Tài
Mục tiêu của ñề tài nguyên cứu là tìm ra một giải pháp tăng tốc thuật toán
PageRank dựa trên các cải tiến cả về phần cứng và phần mềm
Tính toán song song là một nhánh của tính toán hiệu năng cao (HPC) [12] ứng
dụng ñể tăng tốc ñộ tính toán với những bài toán phức tạp có dữ liệu lớn Kỹ thuật này
ñược sử dụng trong nhiều ứng dụng như: dự báo thời tiết, mô phỏng vật lý và ngày
càng ñược sử dụng nhiều trong các tính toán khoa học Trong tính toán song song,
khối lượng tính toán của bài toán sẽ ñược chia ñều cho các máy tính trong mạng do ñó
cần phải có một thuật toán song song ñể thực hiện nhiệm vụ này Một thuật toán song
song phải thỏa các tính chất sau [13] : (1)Tính ñồng thời: các nhiệm vụ phải ñược thực
hiện ñồng thời không chờ ñợi lẫn nhau (2)Tính mở rộng: càng tăng thêm số lượng máy
tính, thời gian thực hiện càng nhanh (3)Tính cục bộ: mỗi máy cần xử dụng tài nguyên
cục bộ trên máy tránh tối ña việc truyền tải dữ liệu từ máy khác (4)Tính phân chia:
thuật toán phải có khả năng phân chia nhiệm vụ phức tạp thành càng nhiều nhiệm vụ
con có thể thực hiện ñồng thời càng tốt
Nghiên cứu sẽ bao gồm thực hiện song song hóa thuật toán PageRank trên
một mạng máy tính song song giá rẻ hay còn gọi là PC Cluster Mô hình hệ thống,
thuật toán cũng ñược ñề nghị và thực hiện thử nghiệm với dữ liệu mạng WikiVote và
Stanford Trong quá trình thử nghiệm, thuật toán ñược cài ñặt theo cả giải thuật tuần tự
và giải thuật song song ñể so sánh hiệu quả cũng nhưng kiểm tra ñộ chính xác của
thuật toán
Trang 131.4 Phạm Vi Đề Tài
Đề tài tập trung thực hiện tăng tốc tính toán thuật toán PageRank bằng hệ thống
song song qua việc tính toán các dữ liệu liên kết mạng ñể tính ra số ñiểm của mỗi
trang web qua ñó có thể xếp hạng các trang web Đề tài không thực hiện mô phỏng lại
toàn bộ một bộ máy tìm kiếm
Quá trình nghiên cứu ñược chia làm hai giai ñoạn là nghiên cứu lý thuyết và
thực nghiệm Giai ñoạn nghiên cứu sẽ tập trung vào các kiến thức nền tảng, từ ñó phân
tích và tìm ra phương pháp giải quyết vấn ñề Giai ñoạn thực nghiệm sẽ thực hiện cài
ñặt ñể thử nghiệm phương pháp ñược ñưa ra
Các nguồn chính ñể thu thập thông tin là từ mạng internet, các bài báo khoa
học Phần lớn các tài liệu này là bằng tiếng Anh do các tài liệu tiếng Việt và các
nghiên cứu về song song hóa ở nước ta chưa nhiều
Trang 142 CƠ SỞ LÝ THUYẾT
Trang Web
Các bộ máy tìm kiếm là cơ sở cho việc hình thành các thuật toán sắp xếp trang
web Do ñó việc hiểu ñược sự ra ñời, các thành phần cơ bản và quá trình hoạt ñộng của
bộ máy tìm kiếm sẽ giúp ta hiểu ñược vai trò và tầm quan trọng của các thuật toán sắp
xếp trang web
Trong thời ñại ngày nay, thông tin là nhu cầu thiết yếu ñối với mọi người trên
mọi ngành nghề, mọi lĩnh vực Mỗi phút trôi qua hàng triệu triệu, hàng tỉ lượng thông
tin ñược ñưa lên Internet khiến nó ngày càng thêm vô tận Điều này khiến cho Internet
là một nguồn tài nguyên, nguồn tham khảo thông tin to lớn nhưng cũng ñặt ra những
thách thức trong việc tìm kiếm những nguồn tài nguyên này Việc ra ñời các bộ máy
tìm kiếm là ñiều cần thiết hơn bao giờ hết vì nó giúp chúng ta có thể tìm kiếm nhanh
chóng và chính xác bất cứ thông tin gì trên mạng Internet Do ñó bộ máy tìm kiếm
web ñã trở thành công cụ không thể thiếu của chúng ta trong thời ñại này
Trang 152.1.3 Các thành phần chính của bộ máy tìm kiếm
Bộ máy tìm kiếm bao gồm ba thành phần chính là bộ thu thập thông tin, bộ lập
chỉ mục và bộ tìm kiếm thông tin Các bộ phận này hoạt ñộng liên tục từ lúc khởi ñộng
hệ thống, chúng phụ thuộc lẫn nhau về mặt dữ liệu nhưng ñộc lập với nhau về mặt
hoạt ñộng
a Bộ thu thập thông tin – Web Crawler
Để có thể tìm kiếm nhanh chóng các thông tin trên mạng Internet, bộ máy tìm
kiếm phải thực hiện lưu trữ các nội dung của mạng Internet Điều này ñược thực hiện
bằng bộ thu thập thông tin Về bản chất, bộ thu thập thông tin là một trình duyệt web
tự ñộng khám phá ra các trang mới bằng cách lần theo các liên kết trong trang web
hiện tại Khi tìm ñược trang web mới, bộ thu thập thông tin sẽ gửi nội dung trang web
cho bộ lập chỉ mục ñể phân tích và lưu trữ các thông tin cần thiết
b Bộ lập chỉ mục – Indexer
Bộ lập chỉ mục hay còn gọi là hệ thống phân tích và xử lý dữ liệu, thực hiện
việc phân tích, trích chọn những thông tin cần thiết (các từ khóa, liên kết) từ những dữ
liệu mà web crawler thu thập ñược và tổ chức thành cơ sở dữ liệu riêng ñể có thể tìm
kiếm trên ñó một cách nhanh chóng, hiệu quả Hệ thống chỉ mục là danh sách các từ
khoá, chỉ rõ các từ khoá nào xuất hiện ở trang nào, ñịa chỉ nào
Trang 16Thông tin ñược lưu trữ cũng khác nhau với những bộ máy tìm kiếm khác nhau
Ví dụ trong bộ máy tìm kiếm Google, bộ thu thập thông tin sẽ lưu lại một phiên bản
của trang web hay còn gọi là cache, trong khi với công cụ tìm kiếm Alta Vista, bộ thu
thập thông tin chỉ lưu lại tất cả các từ khóa trên mỗi trang web
c Bộ tìm kiếm thông tin – Search Engine
Bộ tìm kiếm tương tác với người xử dụng thông qua giao diện web, có nhiệm
vụ tiếp nhận và trả về những tài liệu thoả yêu cầu của người xử dụng Mỗi lần người
sử dụng thực hiện nhập thông tin cần tìm và thực hiện tìm kiếm, bộ máy tìm kiếm sẽ
thực hiện một truy vấn xuống dữ liệu ñã thu thập và lập chỉ mục trước ñó Sau khi thực
hiện truy vấn bộ tìm kiếm thông tin sẽ trả lại một loạt các trang web có chứa chuỗi mà
người dùng nhập vào Tập các trang web kết quả cũng sẽ ñược xử lý trước khi trả về
kết quả cuối cùng cho người dùng
Ngày nay, các bộ máy tìm kiếm thông tin không chỉ có thể trả lời các truy vấn
chính xác theo từ khóa mà còn có thể hiểu ý nghĩa thực sự của câu hỏi thông qua
những câu chữ do người dùng cung cấp Điều này ñược thể hiện qua chức năng sửa lỗi
chính tả, tìm cả những hình thức biến ñổi khác nhau của một từ Ví dụ : khi nhập từ
khóa “tiếng An” bộ máy tìm kiếm có thể tự ñộng diễn giải thành từ “tiếng Anh” và hỏi
người sử dụng xem có phải họ muốn tìm từ “tiếng Anh” hay không
Trang 172.1.4 Hoạt ñộng của bộ máy tìm kiếm
Để bộ máy tìm kiếm có thể tìm kiếm các thông tin cần thiết như trang web, tài
liệu, tập tin trên mạng internet Bộ máy tìm kiếm ñó phải có ñược các thông tin cần
thiết về tình hình của mạng Internet như cập nhật các trang web, tài nguyên mới trong
mạng hay cập nhật các trang web hay tài nguyên không còn tồn tại trong mạng nữa
Điều này ñược thực hiện tự ñộng bởi bộ thu thập thông tin (crawler)
Hình 1: Cấu trúc công cụ tìm kiếm
Trang 18Bộ thu thập thông tin sẽ tự ñộng lần theo các liên kết trên trang web hiện tại ñể
thu thập thêm những trang web khác Máy chủ URL (URL Server) sẽ gửi một danh
sách của các URL (ñịa chỉ trang web) ñược thu thập tới Máy chủ lưu trữ (Store
Server) Máy chủ lưu trữ sau ñó sẽ nén và lưu trữ các trang web tìm thấy vào kho lưu
trữ (repository) Mỗi trang web sẽ có một số phân biệt gọi là docID ñược gán bất cứ
khi nào có một URL mới ñược tìm thấy
Bộ ñánh chỉ mục (Indexer) và bộ sắp xếp (Sorter) sẽ thực hiện ñọc mỗi trang
web lưu trữ và chuyển thành một tập hợp các từ khóa gọi là hits list Sau ñó, các hits
list này sẽ sẽ ñược chuyển vào một tập hợp các thùng chứa (Barrel) ñể tạo thành tập
các chỉ mục ñược sắp xếp Bộ ñánh chỉ mục cũng thực hiện phân tất cả các liên kết của
mỗi trang web và chứa các thông tin quan trọng về chúng trong anchors file Các tập
tin này sẽ chứa các thông tin ñể xác ñịnh nơi một liên kết bắt ñầu và trỏ tới
Bộ phân giải URL sẽ ñọc các anchors file và chuyển thành các URL tương ñối
ví dụ như các trang web con nằm trong một trang web lớn sẽ có URL tương ñối của
trang web lớn ñó Bộ phân giải cũng sinh ra một cơ sở dữ liệu các liên kết với các cặp
trang web nguồn và ñích ñược thay bằng các docID tương ứng Cơ sở dữ liệu này cung
cấp các thông tin cần thiết ñể sử dụng các thuật toán sắp xếp dựa trên liên kết như
PageRank Bộ sắp xếp sẽ lấy thông tin trong các thùng chứa nơi mà các trang web ñã
ñược sắp xếp theo docID và tạo ra các chỉ mục mục ngược (inverted index) theo
wordID trong mỗi trang web Các chỉ mục ngược này ñược bộ máy tìm kiếm sử dụng
ñể tìm ra các trang web có chứa từ khóa hoặc cụm từ khóa tương ứng
Sau khi tìm ñược một tập các trang web phù hợp với nội dung tìm kiếm Tập
kết quả trả về này sẽ ñược sắp xếp theo một thuật toán sắp xếp trang web Ví dụ, với
công cụ tìm kiếm Google ñó là thuật toán PageRank
Trang 192.1.5 Vai trò của thuật toán xếp hạng trang web
Việc sắp xếp các trang web kết quả rất quan trọng vì với lượng thông tin khổng
lồ trên mạng ngày nay thì việc trả lại hàng trăm ngàn thậm chí hàng triệu kết quả tìm
kiếm là ñiều có thể Do ñó, nếu kết quả không ñược sắp xếp thì sẽ gây khó khăn rất lớn
cho người sử dụng Quá trình sắp xếp các trang web kết quả ñược thực hiện bằng một
thuật toán xếp hạng trang web Mỗi công cụ tìm kiếm sử dụng một thuật toán xếp hạng
khác nhau và thuật toán xếp hạng trang web ñược xem như là thành phần quan trọng
nhất, quyết ñịnh sự thành công hay thất bại của công cụ tìm kiếm
Cấu trúc của mạng toàn cầu có thể ñược mô tả bằng mô hình ñồ thị có hướng
Trong ñó, mỗi trang web là một ñỉnh và liên kết giữa hai trang web là một cung có
hướng giữa hai ñỉnh Điểm số của một ñỉnh(trang web) phụ thuộc vào các ñỉnh mà nó
có cung trỏ tới và các ñỉnh có cung trỏ tới nó Quy luật tính ñiểm ở ñầy là nếu trang
web trỏ tới N trang khác thì trang web ñó phải chia ñều ñiểm hiện tại của mình cho các
trang web mà nó trỏ tới Nói cách khác, một trang web ñược nhiều trang web khác trỏ
tới thì sẽ có ñiểm số cao và ñược ñánh giá là tốt hơn Tuy nhiên, ñôi khi trang web chỉ
ñược một vài trang web có ñiểm số cao trỏ tới lại có ñiểm số cao hơn trang web ñược
nhiều trang web bình thường trỏ tới
Trang 20Gọi u là một trang web bất kỳ trong mạng, Bu là tập hợp các trang web trỏ tới u
Đặt Nu là số lượng các liên kết trỏ ra ngoài của u Gọi PR(u) là chỉ số PageRank của u,
ta có công thức ñơn giản thể hiện quy luật tính ñiểm ở trên như sau:
Để chuyển công thức cơ sở sang dạng ma trận, chúng ta sẽ tạo một ma trận xác
suất H từ tập các trang web trong ñó mỗi vị trí trong ma trận thể hiện khả năng ñể
người dùng chuyển từ một trang web này sang trang web khác theo liên kết Gọi Ni là
tổng số liên kết mà trang web i trỏ tới trang web khác, ta có công thức như sau
Hij =
Ví dụ ta thực hiện tạo ma trận kề H cho mạng 6 trang web và 10 liên kết dưới ñây
ଵ
ே, Nếu có liên kết từ i tới j
0, Nếu không có liên kết từ i tới j
Trang 21Hình 2: Đồ thị thể hiện một mạng gồm 6 trang web
H =
Ta có những nhận xét sau:
1 Ma trận H là ma trận rất thưa hay nói cách khác là có rất nhiều giá trị không do
mỗi trang web chỉ có một lượng rất nhỏ liên kết tới các trang khác Do ñó có thể
0 1/2 1/2 0 0 0
0 0 0 0 0 0
1/3 1/3 0 0 1/3 0
0 0 0 0 1/2 0
0 0 0 1/2 0 1/2 0 0 0 1 0 0
Hình 3: Biểu diễn ma trận phân phối xác suất H
Trang 22giảm chi phí ta chỉ cần lưu các phần tử khác 0 của ma trận mà không cần phải
lưu toàn bộ ma trận
2 Trang web có toàn bộ dòng mang giá trị bằng 0 (như dòng số hai trong ví dụ
trên) ñược gọi là dangling node Các dangling node làm sai lệch kết quả tính
toán do ñó phải tìm cách ñể loại bỏ dangling node khỏi ma trận H
Chúng ta sẽ tính ñiểm số cho mỗi trang web dựa vào các thông tin trong ma trận
H Giả sử một người sử dụng truy cập vào một tập hợp các trang web ngẫu nhiên theo
một thứ tự ngẫu nhiên Điểm số của môi trang web sẽ ñược ñịnh nghĩa như là một xác
suất mà người sử dụng sẽ truy cập vào trang ñó từ trang web trước ñó hay nói cách
khác trạng thái hiện tại chỉ liên quan ñến trạng liền trước nó mà không phụ thuộc vào
các trạng thái trước ñó Tương tự như thế, nếu có hàng triệu người ñang lướt web trong
cùng một thời ñiểm thì ñiểm số của một trang web bằng với phần trăm số người truy
cập vào trang web ñó trong thời ñiểm bất kỳ Từ ñây, ta có thể xem hoạt ñộng lướt
web của người sử dụng có thể ñược mô hình hóa thành một chuỗi Markov với ma trận
phân phối xác suất là H Do ñó, ta có thể coi vector ñiểm số hay nói cách khác là
vector xác suất truy cập vào mỗi trang web là vector hội tụ (stationary vector) cho một
chuỗi Markov
Một vector phân phối có ñặc ñiểm là tổng các thành phần trong vector có giá trị
luôn ñúng bằng 1 Vector phân phối là vector phân phối xác suất rời rạc nếu tất cả các
phần tử mang giá trị dương và có tổng là 1 Cụ thể với vector m như sau:
Trang 23m =
Vector m ñược xem là vector phân phối xác suất cho một tập hợp gồm bốn
trang web trong ñó một người dùng bình thường có xác suất 60% truy cập vào trang
hai và 20% truy cập vào trang ba và bốn Do ||m||1 = ∑ = 1 nên vector m là vector
Mỗi phần tử của vector mk thể hiện xác suất trong ñó một người sử dụng truy cập một
trang cụ thể tại bước k Cứ tiếp tục thực hiện lặp tiếp tục mk+1T = mkTP thì ta sẽ có
vector m sẽ hội tụ ở một vector hội tụ q, ñộc lập với vector m khởi ñầu m0
qTP = qT
Vector hội tụ q có thể ñược xem như là xác suất phân phối ổn ñịnh của mỗi
trang web trong mạng Ví dụ ở lúc bắt ñầu ta có tập hợp bốn trang web với xác suất
ñược thống kê là m0
0 60 20 20
Trang 24m0 =
và cuối cùng hội tụ ở
q =
Ở lúc bắt ñầu, ta có thể thấy trang web 1 không có người truy cập Tuy nhiên sau khi
tính lại với ma trận xác suất và có ñược vector hội tụ, ta nhận ñược xác suất với trang
1 Điều nay chứng tỏ vẫn có khả năng truy cập tới trang 1, tuy nhiên do một số yếu tố
ngẫu nhiên mà chưa có người sử dụng truy cập ñến
Theo công thức cơ bản, ta có ñiểm số của một trang web ñược tính bằng tổng
ñiểm số của các trang web trỏ tới nó chia cho số liên kết ngoài của các trang web ñó
Áp dụng với ma trận ta có như sau:
Pr1 = H11Pr1 + H21Pr2 + + Hn1Prn
Pr2 = H12Pr1 + H22Pr2 + + Hn2Prn
0 60 20 20
.10 50 15 25
Trang 25Prn = H1nPr1 + H2nPr2 + + HnnPrn Gọi π = (Pr1, Pr2, Prn) là vector chứa toàn bộ ñiểm số của các trang web, ta có công
thức cơ sở (1) ñược viết lại như sau:
π = HT
π Chúng ta nhận thấy π là vector riêng của ma trận HT với trị riêng là λ = 1 Do ñó, việc
tính vector ñiểm số hay nói cách khác là tìm vector hội tụ của chuỗi Markov chỉ là
công việc tìm vector riêng tương ứng với trị riêng ñược biết trước λ = 1 của ma trận
HT
Một ma trận ngẫu nhiên (stochastic) P là ma trận có các tất cả các phần tử Pij
>=0 có tổng các phần tử trên mỗi hàng bằng 1 Một chuỗi Markov là tối giản
(irreducible) nếu mỗi trang thái ñều có thể nhảy ñến ñược từ tất cả các trạng thái khác
Khi ma trận P dương hay nói cách khác là tất cả các phần tử Pij > 0 thì ñiều kiện trên
ñược ñảm bảo do tất cả các phần tử ñều lớn hơn không và bất cứ trạng thái nào cũng
có thể ñược nhảy ñến trong một bước.Do ñó, nếu P dương thì chuỗi Markov là tối
giản Một chuỗi Markov tối giản sẽ ñảm bảo cho việc tồn tại một vector hội tụ phù
hợp Điều này ñược chứng minh bởi ñịnh lý Perron – Frobenius:
“ Nếu một ma trận vuông A dương, ngẫu nhiên và tối giản thì nó có một trị riêng ñơn giản là 1 và vector riêng tương ứng Tất cả các trị riêng khác ñều nhỏ hơn 1.“
Trang 26Do H là ma trận phân phối xác suất cho một chuỗi Markov nên ñịnh lý trên ñảm bảo
luôn tồn tại một vector ñiểm số duy nhất cho mỗi ma trận H nếu như H ñạt ñủ ñiều
kiện ñể làm cho chuỗi Markov trở nên tối giản Trong phần sau ta sẽ chỉnh sửa ma
trận H ñể thỏa mãn ñiều kiện này
Tại thời ñiểm này, ta có ma trận phân phối xác suất H ñặc trưng cho chuỗi
Markov chưa thỏa mãn tính chất Hij>0 do còn tồn tại các dangling node hay nói cách
khác là các trang web không có liên kết tới bất cứ trang web nào khác trong mạng nên
ma trận này không phải là ma trận ngẫu nhiên cũng như tối giản
Mặc khác, mô hình xác suất hiện tại cũng chưa mô tả ñược chính xác quá trình lướt
web của người dùng Một trong những tồn tại này là các trang web không có liên kết
ra ngoài hay dangling node Khi người sử dụng truy cập vào các trang này, về mặt lý
thuyết họ không thể thoát ra do không thể truy cập vào trang khác theo liên kết, tuy
nhiên trên thực tế người sử dụng lúc này sẽ nhảy vào một trang web khác bằng cách
ñánh ñịa chỉ trực tiếp của trang web bất kỳ trên thanh ñịa chỉ Do nhảy sang một trang
bất kỳ nên xác suất ñể chuyển từ một dangling node sang một trang web khác ñược
chia ñều và bằng 1/N với N là tổng số trang web trong mạng Ta tiến hành chỉnh sửa
ma trận H thành ma trận P bằng cách ứng với mỗi dòng có tất cả các phần tử bằng 0, ta
chỉnh sửa các phần tử của dòng mang giá trị 1/N
P = H + a.ଵ
ே eTVới a là vector có N phần tử ñược ñịnh nghĩa như sau:
Trang 27ai =
Với sự chỉnh sửa này, ma trận P có các phần tử lớn hơn hoặc bằng không và tổng các
phần tử trên mỗi hàng bằng 1 do ñó P là ma trận ngẫu nhiên (stochastic)
Trong thực tế, một người lướt web có thể vào một trang mới theo một trong hai
kịch bản như sau: (1) người ñó mở trang mới bằng cách nhấn vào một liên kết của
trang hiện thời; (2) người ñó tắt trang hiện thời và ñánh một ñịa chỉ bất kỳ ñể mở trang
mới Để bổ sung xác suất nhảy ngẫu nhiên từ một trang này ñến một trang khác ta
chỉnh sửa ma trận P thành ma trận G Gọi α thuộc khoảng [0 1] là xác suất ñể người
dùng thực hiện theo kịch bản thứ nhất ta có 1- α là xác suất ñể người xử dụng thực
hiện theo kịch bản thứ hai Ta có công thức chỉnh sửa ñể thể hiện cả hai kịch bản như
sau:
G = α * P + (1- α) ଵ
ே E Trong ñó N là số trang web trong mạng và E là ma trận ñơn vị có kích thước N với tất
cả các phần tử bằng 1 Ma trận ଵ
ே E bao gồm các phần tử có giá trị 1/N thể hiện kịch bản lướt web thứ hai với xác suất ñể nhảy ngẫu nhiên từ trang này sang trang khác
ñược chia ñều cho tất cả các trang trong mạng Tham số α còn ñược gọi là damping
factor có vai trò rất quan trọng trong thuật toán PageRank và công cụ tìm kiếm Google
mặc ñịnh cài ñặt với giá trị 0.85 nghĩa là có 85% thời gian người sử dụng duyệt theo
liên kết và 15% thời gian người sử dụng duyệt ngẫu nhiên
1, nếu dòng i trong H có tất cả các phần tử bằng 0
0, nếu ngược lại
Trang 28Ta ñịnh nghĩa mô hình Random Surfer là một mô hình chuỗi Markov với ma
trận xác suất ñược chỉnh sửa G Ma trận G có tính ngẫu nhiên do P có tính ngẫu nhiên
ñược chứng minh ở trên Nhờ việc cộng thêm ma trận xác suất (1- α) ଵ
ே E, ma trận G ñảm bảo mỗi phần tử của ma trận luôn lớn hơn 0, từ ñó ta có ma trận G là ma trận tối
giản Quay trở lại với ñịnh lý Perron – Frobenius, ta có ma trận G dương, ngẫu nhiên,
tối giản nên luôn tồn tại vector riêng tương ứng với trị riêng 1 ñối với ma trận G hay
nói các khác luôn tồn tại vector ñiểm số hội tụ cho chuỗi Markov có ma trận phân phối
xác suất là G
Bài toán tìm vector riêng cho một trị riêng cho trước là một bài toán phức tạp
Có nhiều phương pháp ñể giải quyết bài toán này tuy nhiên phương pháp Power
Method là một trong những phương pháp tốt nhất do tính ñơn giản và hiệu quả về
không gian, thời gian tính toán và ñộ phức tạp Phương pháp Power Method là một
phương pháp lặp theo ñó vector xk+1 sẽ ñược tính bằng vector xk trước ñó theo công
thức xk+1 = A.xk cho tới khi vector xk+1 hội tụ trong một khoảng cho trước Khi vector
xk+1 hội tụ, ta có vector xk+1 chính là vector riêng cho ma trận A với trị riêng là 1
Thuật toán thực hiện như sau:
Thuật toán PageRank tuần tự dùng ma trận
1 Tính ma trận G
2 Khởi tạo vector π với các phần tử bằng 1/N
Trang 293 While Delta chưa hội tụ:
4 Tính lại vector π bằng công thức π = G π
5 Tính chỉ số Delta với Delta = ||vector ñiểm số mới – vector ñiểm số cũ||1
6 End
Phương pháp Power Method có thể cải tiến ñể không sử dụng ma trận bằng
cách biến ñổi công thức cơ bản Bắt ñầu từ công thức cơ bản (1) ta thực hiện thêm xác
suất nhảy ngẫu nhiên cho mỗi trang web như sau:
PR(u) =
N a
− 1 + a ∑
∈Bu
v
PR )(
Sau ñó ta áp dụng phương pháp Power Method ñể tìm ra ñiểm số PageRank hội tụ cho
mỗi trang web Ta tính ñiểm số pr(u)k+1 dựa vào ñiểm số pr(u)k theo công thức :
PR(u)k+1 =
N a
− 1 + a ∑
∈Bu
v
PR( )k
Khi giá trị PR(u) hội tụ trong một khoảng cho trước, ta có PR(u) là ñiểm số của trang
web u Thuật toán thực hiện như sau:
Thuật toán PageRank tuần tự không dùng ma trận
1 Khởi tạo vector π với các phần tử bằng 1/N
2 While Delta chưa hội tụ:
3 For u là một trang web trong mạng
4 If số lượng phần tử trong Bu lớn hơn 0 Then
5 Tính lại π[u] theo công thức
Trang 30PR(u)k+1 =
N a
− 1 + a ∑
Số bước lặp ñể thực hiện xong tính toán nhiều hay ít ñược ñược ño bằng ñộ hội
tụ của thuật toán Haveliwala [8] ñã nghiên cứu bài toán tính ñiểm số PageRank bằng
phương pháp Power Method và ñã tìm ra trị riêng ra thứ 2 của ma trận G ngoài trị
riêng mặc ñịnh là λ1 = 1 Nghiên cứu này ñã tìm ra trị riêng thứ 2 chính bằng damping
factor α hay λ2 = α Từ ñây ta suy ra ñộ hội tụ của thuật toán là λ2 / λ1 = α Từ ñây ta
rút ra hai kết luận sau :
o Do 0 ≤ α ≤ 1, nên ta có ñộ hội tụ của thuật toán khá nhanh
o Để tăng tốc ñộ tính toán có thể xem xét ñể giảm damping factor xuống
Kết quả nguyên cứu của Haveliwala [8] có ý nghĩa hết sức quan trọng vì nó ñã chứng
minh ñược sự hiệu quả của phương pháp lặp Power Method trong bài toán PageRank
cũng như nêu lên mối quan hệ của damping factor với tốc ñộ thực thi của thuật toán
Trang 312.3 Tính Toán Song Song
Về truyền thống, các chương trình máy tính thông thường ñể viết ñể xử lý tuần
tự Để giải quyết một vấn ñề cụ thể, chương trình sẽ bao gồm nhiều chỉ lệnh nối tiếp
nhau và máy tính sẽ thực hiện tuần tự từng chỉ lệnh Tuy nhiên, khi ñặt vào bối cành
những bài toán có dữ liệu rất lớn và cần phải thực hiện với tốc ñộ nhanh, tính toán tuần
tự thể hiện nhiều hạn chế về tốc ñộ xử lý do giới hạn trong một bộ xử lý và tài nguyên
máy tính như bộ nhớ, ổ cứng do giới hạn trong một máy tính
Tính toán song ñược ra ñời ñể giải quyết các khó khăn của tính toán tuần tự Về
mặt ñịnh nghĩa, tính toán song song là quá trình xử lý gồm nhiều tiến trình ñược kích
hoạt ñồng thời , cùng tham gia giải quyết một bài toán và quá trình tính toán song song
ñược thực trên những hệ thống ña bộ xử lý Tính toán song song thường ñược xử dụng
trong các bài toán thực tế lớn như mô phỏng 3D, thăm dò dầu khí, dự báo thời tiết
Tính toán song song ñược thực hiện trên một hệ thống song song Hệ thống
song song ñược ñịnh nghĩa là một tập các bộ xử lý ñược kết nối với nhau theo một mô
hình kiến trúc nào ñó ñể có thể hợp tác với nhau trong hoạt ñộng và trao ñổi dữ liệu
với nhau Sau khi xác ñịnh ñược hệ thống song song phù hợp, ta thực hiện phát triển
chương trình máy tính ñể thực hiện song song trên hệ thống gọi là chương trình song
song
Trang 32Một chương trình song song phức tạp hơn rất nhiều so với chương trình tuần tự
vì việc truyền thông giữa các bộ xử lý sẽ làm phát sinh những lỗi khó phát hiện Về
mặt khác, các chương trình song song cũng không thể dùng các thuật toán tuần tự mà
phải phát triển thuật toán song song cho vấn ñề cần giải quyết Trên thật tế, không phải
tất cả các bài toán giải quyết ñược bằng tính toán tuần tự ñều có thể giải quyết bằng
tính toán song song
Về lý thuyết, việc tăng tốc trong tính toán song song có tính tuyến tính có nghĩa
là khi ta tăng gấp ñôi số lượng bộ xử lý thì thời gian xử lý sẽ giảm ñi một nửa Tuy
nhiên, rất ít thuật toán song song có thể ñạt ñược khả năng tăng tốc này Phần lớn thuật
toán song song chỉ có thể ñảm bảo khi tăng số lượng bộ xử lý thì thời gian xử lý sẽ
giảm ñi một phần Trên thực tế, khi tăng số lượng bộ xử lý ñến một số lượng nhất ñịnh
thì thời gian tính toán sẽ không ñược cải thiện Đây gọi là chặn trên của khả năng tăng
tốc trong tính toán song song
Khả năng tăng tốc trong tính tốc của một chương trình trong tính toán song
song ñược ñưa ra bởi ñịnh luật Amdahl do Gene Amdahl ñưa ra vào năm 1960 Định
luật Amdahl nói rằng một bộ phận nhỏ của chương trình không thể song song hóa sẽ
giới hạn khả năng tăng tốc của toàn bộ chương trình Một chương trình song song
thường ñược chia thành hai phần : phần tuần tự và phần song song hóa Nếu α là tỉ lệ
thời gian chạy giữa phần tuần tự và phần song song ta có :
S = ଵ
ఈ
Trang 33Trong ñó S là khả năng tă ố ớ ấ ớ
ả ăng tăng tốc lớn nhất với chương trình song song Theo
ầ ầ ự ếm 10% so với tổng thời gian chạy, chúng ta không thể ă ố
ình song song quá 10 lần bất kể bao nhiêu bộ xử lý ñược th
ị ật Gustafson ñược phát triển dựa trên ñịnh luật Amdahl cho phép ta tính
ố ủa chương trình với P bộ xử lý bằng công thức sau:
S(P) = P – α(P-1)
: Đồ thị thể hiện ñịnh luật Amdahl Khả năng tă
a chương trình song song bị giới hạn bởi khảsong song hóa của chương trình
ình song song Theo ñó, nếu
ợc thêm vào
ị ật Amdahl cho phép ta tính
ăng tăng năng
Trang 342.3.3 Các mô hình tính toán song song
a Mô hình ñơn trình ña dữ liệu (SPMD)
Hệ thống ñược thiết kế theo mô hình SPMD bao gồm một bộ ñiều khiển (CU)
có nhiệm vụ ñiều khiển nhiều bộ xử lý trong hệ thống thực hiện cùng một luồng chỉ
lệnh Khi bộ ñiều khiển phát tín hiệu tới tất cả các bộ xử lý, những bộ xử lý cùng thực
hiện một chương trình trên các mục dữ liệu khác nhau hay nói cách khác mỗi bộ xử lý
có luồng dữ liệu riêng
Bộ ñiều khiển (CU)
Hình 5: Hệ thống theo mô hình SPMD
Trang 35b Mô hình ña trình ñơn dữ liệu (MPSD)
Hệ thống theo mô hình MPSD có thể thực hiện nhiều chương trình trên cùng
một mục dữ liệu Mô hình MPSD ñược chia thành hai hệ thống là hệ thống ña trình và
hệ thống theo kiến trúc hình ống
Hệ thống ña trình bao gồm nhiều bộ ñiều khiển (CU) ñiều khiển nhiều bộ xử lý
thực hiện những luồng chỉ lệnh (chương trình) khác nhau ñể trên cùng một mục dữ
liệu Mỗi bộ ñiều khiển quản lý một nguồn chỉ lệnh, khi bộ ñiều khiển này phát tín
hiệu, các bộ xử lý trong hệ thống sẽ thực hiện chương trình ñược cung cấp bởi bộ ñiểu
khiển hiện tại trên cùng một mục dữ liệu
Trang 36Tuy nhiên trên thực tế việc xây dựng hệ thống ña trình như trên rất khó khăn do ñó
ngày nay có hầu như không có hệ thống song song ñược xây dựng theo kiến trúc này
Hệ thống theo kiến trúc hình ống bao gồm nhiều luồng dữ liệu ñược gửi liên
tiếp theo các dãy bộ xử lý liên tiếp Kiến trúc hình ống dựa vào phương pháp phân
ñoạn hoặc chia nhỏ một tiến trình tính toán thành một số ñoạn nhỏ hơn ñể thực hiện
trong các pha liên tiếp Tất cả các giai ñoạn của một tiến trình ñược thực hiện tuần
tự, khi thực hiện xong thì bắt ñầu thực hiện của tiến trình tiếp theo Mỗi pha thực
hiện xong sẽ gửi kết quả cho pha tiếp theo Như vậy, trong cách thực hiện theo
nguyên lý hình ống, khi một giai ñoạn công việc ñang thực hiện thì một giai ñoạn
khác có thể nạp dữ liệu vào, và dữ liệu vào của giai ñoạn này có thể là kết quả của
giai ñoạn trước nó Điều này làm rút ngắn quá trình xử lý dữ liệu Ví dụ, một tiến
trình ñược phân thành 4 giai ñoạn thực hiện tuần tự như sau:
Nếu xử lý tuần tự hai tiến trình ta phải thực hiện 8 giai ñoạn thời gian
Tuy nhiên, nếu thực hiện song song theo nguyên lý hình ống, với 4 bộ xử lý ta chỉ cần
thực hiện 5 giai ñoạn thời gian
Trang 37Sau khi bộ xử lý ñầu tiên thực hiện pha một của tiến trình thứ nhất, tiến trình thứ nhất
sẽ ñược tiếp tục chuyển lên bộ xử lý thứ hai ñể thực hiện pha hai, bộ xử lý ñầu tiên lại
tiếp tục thực hiện pha một của tiến trình thứ hai và cứ tiếp tục như thế Ta có công
thức tính thời gian thực hiện với giả sử là mỗi pha có thời gian thực hiện bằng nhau
bằng thời gian thực hiện một pha * (tổng số pha của một tiến trình + số tiến trình – 1)
c Mô hình ña trình ña dữ liệu (MPMD)
Hệ thống theo mô hình MPMD bao gồm nhiều bộ xử lý thực hiện những luồng
lệnh (chương trình) khác nhau trên các luồng dữ liệu riêng Hầu hết các hệ thống
MIMD ñều có bộ nhớ riêng và cũng có thể truy cập vào ñược bộ nhớ chung khi cần,
do vậy giảm thiểu ñược thời gian trao ñổi dữ liệu giữa các BXL trong hệ thống
Hình 7: Hệ thống theo nguyên lý hình ống
Trang 38
Mô hình MPMD là kiến trúc phức tạp nhất trong xây dựng và phát triển,
nhưng nó là mô hình hỗ trợ xử lý song song cao nhất Tùy theo các ứng dụng thực
tế, ta có thể cân nhắc giữa giải pháp kiến trúc theo mô hình MPMD hay mô hình
SPMD vốn dễ dàng hơn trong xây dựng, phát triển và ñược xử dụng rộng rãi
Trang 392.3.4 Các yêu cầu của thuật toán song song
Để so sánh một thuật toán song song với các thuật toán khác ta dựa vào hai yếu
tố chính là cân bằng tải (load balance) và chi phí truyền thông (communica- tion cost)
Thuật toán có cân bằng tải tốt thì mỗi máy con phải ñược chia công việc bằng
nhau ñể tận dụng tối ña hiệu suất của máy và giảm thời gian ñồng bộ Bên cạnh ñó,
thuật toán tốt phải hạn chế tối ña chi phí truyền thông Chi phí truyền thông là thời
gian ñể truyền tải dữ liệu giữa hai máy con Do tốc ñộ truyền tải giữa hai máy khá
chậm, việc truyền thông càng nhiều thì càng làm tăng thời gian tính toán
Ngoài hai yếu tố chính trên, ta cũng có thể ñánh giá thuật toán bằng nhiều yếu
tố khác như lượng bộ nhớ sử dụng, thời gian phân phối Tùy vào từng ứng dụng, ta có
thể cải tiến thuật toán ñể giảm bớt yếu tố này và tăng cường yếu tố khác ñể ñáp ứng
yêu cầu công việc
Một bài toán có thể có nhiều cách thiết kế thuật toán song song khác nhau và thuật
toán song song phù hợp có thể khác rất nhiều so với thuật toán tuần tự của bài toán Để
thiết kế một thuật toán song song ta tiến hành thực hiện theo bốn bước (1) Phân nhỏ
(2) Truyền thông (3) Kết hợp (4) Phân phối vào máy
Trang 40Ở giai ñoạn phân nhỏ (partition), bài toán sẽ ñược phân tích ñể tách toàn bộ
khối lượng tính toán thành các nhiệm vụ nhỏ Các nhiệm vụ này chỉ chứa các bước
tính toán cơ bản ñồng thời phải có ñộ ñộc lập tương ñối ñể thực hiện trên các máy
khác nhau mà không tạo ra quá nhiều chi phí truyền thông
Hình 9: Mô hình thiết kế thuật toán song song
Ở giai ñoạn truyền thông (communication), ta tiến hành thiết lập phương thức
liên lạc giữa các nhiệm vụ này ñể làm tăng tốc ñộ tính toán ñồng thời giảm tối ña chi