1. Trang chủ
  2. » Luận Văn - Báo Cáo

SONG SONG hóa THUẬT TOÁN PAGERANK và ỨNG DỤNG

92 197 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 92
Dung lượng 5,2 MB

Nội dung

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 1

KHÓ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 2

LỜ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 3

Nhậ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 6

2.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 7

5.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 8

DANH 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 9

LỜ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 10

1 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 11

ngườ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 12

1.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 13

1.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 14

2 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 15

2.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 16

Thô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 17

2.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 18

Bộ 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 19

2.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 20

Gọ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 21

Hì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 22

giả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 23

m =

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 24

m0 =

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 25

Prn = 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 26

Do 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 27

ai =

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 28

Ta ñị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 29

3 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 30

PR(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 31

2.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 32

Mộ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 33

Trong ñó 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 34

2.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 35

b 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 36

Tuy 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 37

Sau 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 39

2.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

Ngày đăng: 23/12/2018, 06:14

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w