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

CÁC THUẬT TOÁN KHAI PHÁ dữ LIỆU ỨNG DỤNG TRONG hệ THỐNG PHÂN tán lớn

45 253 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 45
Dung lượng 5,34 MB

Nội dung

Khai phá dữ liệu luôn là một đề tài nóng của lĩnh vực khoa học máy tính, đặc biệt hơn do tính chất toàn cầu và rộng lớn của các hệ thống công nghệ thông tin trong thế giới hiện đại, khi

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi

Các số liệu, kết quả thực nghiệm nêu trong khóa luận là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác

Tác giả

Nguyễn Thành Phương

Trang 4

MỤC LỤC

CHƯƠNG 1: TỔNG QUAN 4

1.1 Mục tiêu và tính cần thiết của đề tài 4

1.2 Tổng quan tình hình nghiên cứu 5

1.2.1 Tổng quan về khai phá dữ liệu 5

1.2.2 Các hướng tiếp cận và các kỹ thuật chính trong Khai phá dữ liệu 5

1.2.3 Các vấn đề trong khai phá dữ liệu 6

1.2.4 Tính khoa học và tính mới của đề tài 8

1.2.5 Mục tiêu, đối tượng và phạm vi nghiên cứu 9

1.2.6 Nội dung, phương pháp dự định nghiên cứu 10

1.2.7 Phương pháp nghiên cứu 11

CHƯƠNG 2: THUẬT TOÁN SONG SONG VỚI DỮ LIỆU LỚN 13

2.1 Thuật toán song song 13

2.1.1 Khái niệm 13

2.1.2 Tính cần thiết của xử lý song song 13

2.1.3 Phân loại hệ thống tính toán song song 14

2.1.4 Tiêu chí của thuật toán song song 15

2.2 Môi trường phân tán 15

CHƯƠNG 3: HIỆN THỰC CÁC THUẬT TOÁN SONG SONG 16

3.1 Dijkstra 16

3.1.1 Giới thiệu 16

3.1.2 Thuật toán tuần tự 16

3.1.3 Thuật toán song song 19

3.1.4 Nhận xét 20

3.2 K-means 20

3.2.1 Giới thiệu 20

3.2.2 Thuật toán tuần tự 21

3.2.3 Thuật toán song song 21

3.2.4 Nhận xét 22

3.3 Apriori 22

3.3.1 Giới thiệu 22

3.3.2 Thuật toán tuần tự 24

3.3.3 Các nghiên cứu thuật toán song song liên quan 25

3.3.4 Giải thuật song song đề xuất 27

Trang 5

3.4 Tổng quan công nghệ, khả năng tích hợp, mở rộng 32

CHƯƠNG 4: CHẠY THỬ VÀ ĐÁNH GIÁ CÁC THUẬT TOÁN 35

4.1 Dijkstra 35

4.2 K-means 36

4.3 Apriori 38

CHƯƠNG 5: KẾT LUẬN 41

5.1 Kết quả khóa luận 41

5.2 Hạn chế 41

Trang 6

DANH MỤC HÌNH VẼ

Hình 3.1: Kết quả tính toán được trên đồ thị 17

Hình 3.2: Quá trình loại bỏ phần tử không phổ biến của giải thuật ODAM 29

Hình 3.3: Cấu trúc lưu trữ dữ liệu thông thường (row-wise) 30

Hình 3.4: Cấu trúc lưu trữ dữ liệu columnar storage 31

Hình 3.5: Hệ thống phân tán chạy thử thuật toán Apriori 32

Hình 3.6: Hệ thống phân tán chạy thử thuật toán K-means, Dijkstra 33

Hình 4.1: Thuật toán Dijkstra – thí nghiệm 1 36

Hình 4.2: Thuật toán Dijkstra – thí nghiệm 2 36

Hình 4.3: Thuật toán K-means – thí nghiệm 1 37

Hình 4.4: Thuật toán K-means – thí nghiệm 2 38

Hình 4.5: Thuật toán Apriori – Thí nghiệm 1 39

Hình 4.6: Thuật toán Apriori – Thí nghiệm 2 40

Trang 7

CHƯƠNG 1: TỔNG QUAN

1.1 Mục tiêu và tính cần thiết của đề tài

Ngày nay trong thời đại bùng nổ của Công Nghệ Thông Tin, các hoạt động của con người càng ngày càng được tin học hóa Càng nhiều hoạt động trong cuộc sống hàng ngày của con người đang dần được chuyển sang một hình thức lưu trữ mới đó

là kĩ thuật số

Với sự bùng nổ của khối lượng thông tin đó, khai phá dữ liệu là một lĩnh vực mang lại hiệu quả thiết thực cho con người Khai phá dữ liệu đã giúp người sử dụng thu được những tri thức hữu ích từ những cơ sở dữ liệu hoặc các kho dữ liệu khổng lồ

Cơ sở dữ liệu trong các đơn vị, tổ chức kinh doanh, quản lý khoa học chứa đựng nhiều thông tin tiềm ẩn, phong phú và đa dạng, đòi hỏi phải có những phương pháp nhanh, phù hợp chính xác, hiệu quả để lấy được những thông tin bổ ích

Khai phá dữ liệu luôn là một đề tài nóng của lĩnh vực khoa học máy tính, đặc biệt hơn do tính chất toàn cầu và rộng lớn của các hệ thống công nghệ thông tin trong thế giới hiện đại, khi mà dữ liệu được lưu trữ một cách phân tán thì khai phá dữ liệu càng gặp phải nhiều thách thức khó khăn cần giải quyết

Do đó, đề tài này hướng đến vấn đề nghiên cứu các thuật toán quan trọng trong lĩnh vực khai phá dữ liệu trên môi trường các hệ thống phân tán với lượng dữ liệu lớn

Cụ thể hơn, đề tài sẽ hiện thực các thuật toán khai phá dữ liệu trong các môi trường phân tán, đề xuất các cải tiến để tối ưu thuật toán này, xây dựng mô hình dữ liệu,

mô hình kĩ thuật theo các tiêu chuẩn của các tổ chức kĩ thuật trên thế giới để đảm bảo bản hiện thực này có thể tiếp tục phát triển và tích hợp vào các sản phẩm thực

tế Các thuật toán sẽ được hiện thực trong đề tài này: thuật toán phân cụm k-Means, thuật toán khai thác luật kết hợp Apriori, thuật toán trong khai phá dữ liệu đồ thị - tìm đường đi ngắn nhất Dijkstra

Trang 8

Chương 1: Tổng quan

1.2 Tổng quan tình hình nghiên cứu

1.2.1 Tổng quan về khai phá dữ liệu

Khai phá dữ liệu là một bước của quá trình khai thác tri thức (Knowledge Discovery Process), bao gồm các bước sau:

• Trích chọn dữ liệu (data selection): là bước trích chọn những tập dữ liệu cần được khai phá từ các tập dữ liệu lớn (databases, data warehouses, data repositories) ban đầu theo một số tiêu chí nhất định

• Tiền xử lý dữ liệu (data preprocessing): là bước làm sạch dữ liệu (xử lý với dữ liệu không đầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán, v.v.), rút gọn dữ liệu (sử dụng hàm nhóm và tính tổng, các phương pháp nén dữ liệu, sử dụng histograms, lấy mẫu, v.v.), rời rạc hóa dữ liệu (rời rạc hóa dựa vào histograms, dựa vào entropy, dựa vào phân khoảng, v.v.) Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn, và được rời rạc hóa

• Biến đổi dữ liệu (data transformation): đây là bước chuẩn hóa và làm mịn dữ liệu

để đưa dữ liệu về dạng thuận lợi nhất nhằm phục vụ cho các kỹ thuật khai phá ở bước sau

• Khai phá dữ liệu (data mining): đây là bước áp dụng những kỹ thuật khai phá (phần nhiều là các kỹ thuật của machine learning) để khai phá, trích chọn được những mẫu (patterns) thông tin, những mối liên hệ (relationships) đặc biệt trong dữ liệu Đây được xem là bước quan trọng và tốn nhiều thời gian nhất của toàn quá trình KDD

1.2.2 Các hướng tiếp cận và các kỹ thuật chính trong Khai phá dữ liệu

Các hướng tiếp cận của Khai phá dữ liệu có thể được phân chia theo chức năng hay lớp các bài toán khác nhau Sau đây là một số hướng tiếp cận chính:

 Phân lớp và dự đoán (classification & prediction): xếp một đối tượng vào một trong những lớp đã biết trước Phân lớp là bài toán thông dụng nhất trong Khai phá dữ liệu Với một tập các dữ liệu huấn luyện cho trước và sự

Trang 9

(classifier) dùng để phân các dữ liệu mới vào một trong những lớp (còn gọi

là loại) đã được xác định trước Nhận dạng cũng là một bài toán thuộc kiểu Phân lớp Ví dụ: phân lớp vùng địa lý theo dữ liệu thời tiết Hướng tiếp cận này thường sử dụng một số kỹ thuật của machine learning như cây quyết định (decision tree), mạng nơron nhân tạo (neural network), v.v Phân lớp còn được gọi là học có giám sát (học có thầy – supervised learning)

 Luật kết hợp (association rules): Các giải thuật Tìm luật kết hợp tìm kiếm các mối liên kết giữa các phần tử dữ liệu, ví dụ như nhóm các món hàng thường được mua kèm với nhau trong siêu thị Luật kết hợp được ứng dụng nhiều trong lĩnh vực kinh doanh, y học, tin-sinh, tài chính & thị trường chứng khoán, v.v

 Khai phá chuỗi theo thời gian (sequential/temporal patterns): tương tự như khai phá luật kết hợp nhưng có thêm tính thứ tự và tính thời gian Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính dự báo cao

 Phân cụm (clustering/segmentation): xếp các đối tượng theo từng cụm (số lượng cũng như tên của cụm chưa được biết trước Phân cụm còn được gọi là học không giám sát (học không có thầy – unsupervised learning)

 Mô tả khái niệm (concept description & summarization): thiên về mô tả, tổng hợp và tóm tắt khái niệm Ví dụ: tóm tắt văn bản

1.2.3 Các vấn đề trong khai phá dữ liệu

a Các dạng dữ liệu có thể khai phá

Do Khai phá dữ liệu được ứng dụng rộng rãi nên nó có thể làm việc với rất nhiều kiểu dữ liệu khác nhau Sau đây là một số kiểu dữ liệu điển hình

 CSDL quan hệ (relational databases)

 CSDL đa chiều (multidimensional structures, data warehouses)

 CSDL dạng giao dịch (transactional databases)

Trang 10

Chương 1: Tổng quan

 CSDL quan hệ - hướng đối tượng (object-relational databases)

 Dữ liệu không gian và thời gian (spatial and temporal data)

 Dữ liệu chuỗi thời gian (time-series data)

 CSDL đa phương tiện (multimedia databases) như âm thanh (audio), hình

 Ảnh (image), phim ảnh (video), v.v

 Dữ liệu Text và Web (text database & www)

Khai phá dữ liệu tuy là một lĩnh vực mới nhưng thu hút được rất nhiều sự quan tâm của các nhà nghiên cứu nhờ vào những ứng dụng thực tiễn của nó Chúng ta có thể liệt kê ra đây một số ứng dụng điển hình:

 Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision support) Điều trị y học (medical treatment): mối liên hệ giữa triệu chứng, chẩn đoán

và phương pháp điều trị (chế độ dinh dưỡng, thuốc men, phẫu thuật …)

 Text mining & Web mining: phân lớp văn bản và các trang web, tóm tắt văn bản, v.v

 Tin-sinh (bio-informatics): tìm kiếm, đối sánh các hệ gene và thông tin di truyền, mối liên hệ giữa một số hệ gene và một số bệnh di truyền, v.v

 Tài chính và thị trường chứng khoán (finance & stock market): phân tích tình hình tài chính và dự báo giá của các loại cổ phiếu trong thị trường chứng khoán, v.v

Khai phá dữ liệu là một lĩnh vực mới, do đó đang còn rất nhiều vấn đề chưa được nghiên cứu một cách trọn vẹn Sau đây là một số hướng nghiên cứu đã và đang thu hút được sự chú ý của các nhà tin học

 OLAM (Online Analytical Mining) - Sự tích hợp giữa CSDL, kho dữ liệu và Khai phá dữ liệu Hiện nay một số hệ quản trị CSDL như Oracle, MS SQL Server, DB2 đã tích hợp tính năng xây dựng kho dữ liệu và phân tích trực tuyến (OLAP)

Trang 11

 Tính hiệu quả, tính chính xác, độ phức tạp tính toán, khả năng mở rộng và tích hợp, xử lý nhiễu và dữ liệu không đầy đủ, tính hữu dụng (ý nghĩa) của tri thức

 Kết hợp Khai phá dữ liệu với tri thức cơ sở (background knowledge)

 Vấn đề song song hóa và phân tán quá trình Khai phá dữ liệu

 Ngôn ngữ truy vấn trong Khai phá dữ liệu (Data Mining Query Language – DMQL): cung cấp cho người sử dụng một ngôn ngữ hỏi thuật tiện tương tự như SQL đối với CSDL quan hệ

 Biểu diễn và trực quan hóa tri thức khai phá được sao cho gần gũi với người

sử dụng (human-readable expression) Tri thức có thể biểu diễn đa chiều, đa tầng để người dùng sử dụng tri thức hiệu quả hơn

1.2.4 Tính khoa học và tính mới của đề tài

Các nguồn cơ sở dữ liệu lớn và phân tán rộng khắp trên nhiều địa điểm khác nhau đang ngày càng trở nên thông dụng trong nền công nghệ thông tin hiện đại Các nguồn cơ sở dữ liệu này ban đầu chứa một lượng dữ liệu không quá lớn, được lưu theo kiến trúc tập trung, nhưng sau đó do yêu cầu phát triển của hệ thống, các dữ liệu này ngày càng lớn và có thể phân tán rộng ra khắp nơi

Công nghệ tính toán đã dẫn tới việc phân tán nguồn dữ liệu như là một tất yếu Và cùng với nó là sự phát triển của các thuật toán khai phá dữ liệu phân tán Mặc dù đã

có một số thuật toán khai phá luật kết hợp trong cơ sở dữ liệu phân tán được đề xuất, nhưng để đáp ứng được các nhu cầu ngày càng cao: thời gian xử lý nhanh, xử

lý trên các CSDL phân tán lớn … thì vẫn đòi hỏi phải có các thuật toán nhanh và mạnh hơn Và chính vì vậy hướng nghiên cứu khai phá luật kết hợp trong môi trường phân tán vẫn là một hướng nghiên cứu thú vị và thực tế, kèm theo đó là rất nhiều vấn đề khó khăn cần giải quyết

Có năm cách tiếp cận cơ bản để thực hiện thuật toán trong một môi trường dữ liệu phân tán, được GL Grossman et al công bố trong công trình của ông, đó là:

Trang 12

Chương 1: Tổng quan

1 Chuyển đổi dữ liệu thành sao cho có thể lưu trữ thích hợp trong bộ nhớ máy tính:

Có bốn biến thể cơ bản của phương pháp này, cụ thể là lấy mẫu (namely sampling), lựa chọn tính năng (feature selection), phân vùng (partition) và tổng hợp dữ liệu (data summarization)

2 Giảm thời gian truy cập: Cách tiếp cận này sẽ cố gắng để làm giảm thời gian truy cập dữ liệu trong bộ nhớ bằng cách sử dụng cấu trúc dữ liệu chuyên dụng để truy cập dữ liệu trên đĩa như B + cây và sử dụng một số kỹ thuật như khối song song đọc

3 Sử dụng nhiều bộ xử lý: Có hai kỹ thuật cơ bản được sử dụng để tăng tốc độ thuật toán: xử lý tác vụ song song (task parallelism) & xử lý dữ liệu song song (data parallelism)

4 Tính toán sẵn: Nó bao gồm tính toán sẵn các bước phức tạp của thuật toán nếu có thể

5 Giảm nhỏ dữ liệu: các kĩ thuật để làm giảm kích thước của dữ liệu nhưng vẫn đảm bảo toàn vẹn các thông tin cần thiết cho thuật toán như: data smoothing, data compression, data transformation

Đề tài này hiện thực, tối ưu các thuật toán khai phá dữ liệu trong môi trường phân tán bằng các kĩ thuật nêu trên

1.2.5 Mục tiêu, đối tượng và phạm vi nghiên cứu

a Mục tiêu

 Hiện thực các thuật toán khai phá dữ liệu trong các môi trường phân tán

 Đề xuất các cải tiến để tối ưu thuật toán này

 Xây dựng mô hình dữ liệu, mô hình kĩ thuật theo các tiêu chuẩn của các tổ chức kĩ thuật trên thế giới để đảm bảo bản hiện thực này có thể tiếp tục phát triển và tích hợp vào các sản phẩm thực tế

Trang 13

b Đối tượng và phạm vi nghiên cứu

Đề tài này tập trung vào nội dung nghiên cứu các thuật toán khai phá dữ liệu có sẵn, dùng các kĩ thuật mới để xây dựng các cấu trúc dữ liệu cải tiến để thuật toán có thể chạy trong môi trường phân tán, cũng như đề xuất các giải pháp tối ưu cho các thuật toán nếu có thể

Các thuật toán đề tài tập trung là: thuật toán phân cụm k-Means, thuật toán khai thác luật kết hợp Apriori, thuật toán trong khai phá dữ liệu đồ thị - tìm đường đi ngắn nhất Dijkstra

Các hệ thống phân tán sẽ được xây dựng theo đúng các chuẩn hiện đại về hệ thống phân tán, các thuật toán và bản hiện thực sẽ được đánh giá, kiểm định, so sánh trên các hệ thống này

1.2.6 Nội dung, phương pháp dự định nghiên cứu

a Nội dung thực hiện

Nội dung 1: Hiện thực thuật toán gom cụm K-means trong môi trường phân tán

 Hoàn thành, kiểm định và đề xuất các cách tối ưu thuật toán

 Phiên bản hiện thực của thuật toán được viết bằng ngôn ngữ hiện đại, tuân theo các tiêu chuẩn kĩ thuật lớn hiện có để có thể áp dụng vào thực tế và tích hợp với các hệ thống phân tán lớn như Hadoop, Spark, Impala, SQL Cluster

 Chạy thử nghiệm, so sánh kết quả với các phiên bản thuật toán cũ, chưa cải tiến, so sánh với các phiên bản hiện thực khác

Nội dung 2: Hiện thực thuật toán khai thác luật kết hợp Apriori trong môi

trường phân tán

 Hoàn thành, kiểm định và đề xuất các cách tối ưu thuật toán

 Phiên bản hiện thực của thuật toán được viết bằng ngôn ngữ hiện đại, tuân theo các tiêu chuẩn kĩ thuật lớn hiện có để có thể áp dụng vào thực tế và tích

Trang 14

Chương 1: Tổng quan

hợp với các hệ thống phân tán lớn như Hadoop, Spark, Impala, SQL Cluster

 Chạy thử nghiệm, so sánh kết quả với các phiên bản thuật toán cũ, chưa cải

tiến, so sánh với các phiên bản hiện thực khác

Nội dung 3: Hiện thực thuật toán tìm đường đi ngắn nhất Dijkstra trong môi

trường phân tán

 Hoàn thành, kiểm định và đề xuất các cách tối ưu thuật toán

 Hiện thực thuật toán chạy một cách đúng đắn

 Phiên bản hiện thực của thuật toán được viết bằng ngôn ngữ hiện đại, tuân

theo các tiêu chuẩn kĩ thuật lớn hiện có để có thể áp dụng vào thực tế và tích

hợp với các hệ thống phân tán lớn như Hadoop, Spark, Impala, SQL Cluster

 Chạy thử nghiệm, so sánh kết quả với các phiên bản thuật toán cũ, chưa cải

tiến, so sánh với các phiên bản hiện thực khác

1.2.7 Phương pháp nghiên cứu

Đi từ việc phân tích nhu cầu thực tiễn, tìm hiểu nghiên cứu các phương pháp và kỹ

thuật đã có, trên cơ sở đó tìm cách vận dụng, phối hợp và cải tiến sao cho phù hợp

với yêu cầu thực tế của ứng dụng mà đề tài đang hướng tới Bên cạnh đó đưa ra

những đóng góp phát triển và đề xuất mới về mặt mô hình và kỹ thuật, tận dụng ưu

điểm của từng phương pháp, kỹ thuật trong các mô hình mới với khả năng biểu diễn

mô hình tốt hơn, cải tiến các thuật toán đơn giản và hiệu quả hơn Một số phương

pháp nghiên cứu được thực hiện trong đề tài:

Phương pháp thu thập thông tin: thu thập các tài liệu, thông tin để làm tập mẫu

khi chạy kiểm thử các thuật toán của đề tài

Phương pháp nghiên cứu tài liệu, phân tích và tổng hợp tài liệu: nghiên cứu các

tài liệu về các thuật toán khai phá dữ liệu trong môi trường phân tán Từ đó đề xuất

mô hình, phương pháp, kỹ thuật thích hợp để áp dụng vào đề tài

Trang 15

Phương pháp chuyên gia:

 Tham vấn từ các chuyên gia trong trường và các diễn đàn thuật toán trên thế giới, từ đó hoàn thiện các giải pháp đã đề xuất

 Tổ chức seminar với các nhóm nghiên cứu khác để lấy ý kiến đóng góp cho việc phát triển đề tài

Phương pháp so sánh: so sánh kết quả đạt được với các công trình liên quan

Trang 16

Chương 2: Thuật toán song song với dữ liệu lớn

CHƯƠNG 2: THUẬT TOÁN SONG SONG VỚI DỮ LIỆU

Nói cách khác: Xử lý song song là quá trình xử lý thông tin trong đó nhiều đơn vị

dữ liệu được xử lý đồng thời bởi nhiều bộ xử lý để giải quyết một bài toán

2.1.2 Tính cần thiết của xử lý song song

 Yêu cầu của người sử dụng:

o Cần thực hiện một khối lượng lớn công việc

o Thời gian xử lý phải nhanh

o Giải quyết được những bài toán lớn hơn, phức tạp hơn

Nhiều lĩnh vực mới như đồ họa máy tính, trí tuệ nhận tạo, phân tích số, v.v đòi hỏi phải xử lý một khối lượng dữ liệu rất lớn, những vấn đề về xử lý ngôn ngữ tự nhiên, nhận dạng, xử lý ảnh ba chiều (3-D), dự báo thời tiết v.v đều đòi hỏi phải xử lý dữ liệu với tốc độc rất cao, với khối lượng dữ liệu rất lớn Hầu hết những bài toán này, những máy tính xử lý tuần tự là không đáp ứng yêu cầu thực tế.do đó cần phải có những hệ thống máy tính thật mạnh mới đáp ứng được những yêu cầu của thực tế

Trang 17

Mặc dù tốc độ xử lý của các Bộ xử lý tăng nhiều trong những năm qua, nhưng do giới hạn về vật lý nên khả năng tính toán của chúng không thể tăng mãi được Điều này dẫn tới là muốn tăng được khả năng tính toán của các hệ thống máy tính thì đích cuối cùng là phải khai thác được khả năng xử lý song song của chúng Ngày càng xuất hiện nhiều bài toán mà những hệ thống đơn một bộ xử lý không đáp ứng được yêu cầu xử lý về thời gian, do đó đòi hỏi phải sử dụng những hệ thống đa bộ

xử lý và đòi hỏi phải xử lý song song

2.1.3 Phân loại hệ thống tính toán song song

SIMD (Single Instruction, Multiple Data): song song hóa về mặt dữ liệu

(Single Instruction Stream, Multiple Data Stream - Đơn luồng lệnh, đa luồng

dữ liệu) Máy tính loại SIMD có một đơn vị điều khiển để điều khiển nhiều đơn vị xử lý (nhiều hơn một đơn vị) thực hiện theo một luồng các câu lệnh

CU phát sinh tín hiệu điều khiển tới tất cả các phần tử xử lý, những BXL này cùng thực hiện một phép toán trên các mục dữ liệu khác nhau, nghĩa là mỗi BXL có luồng dữ liệu riêng

MISD: Multiple Instruction, Single Data: chia sẻ bộ nhớ (Multiple

Instruction Stream, Single Data Stream – Đa luồng lệnh, đơn luồng dữ liệu) Máy tính loại MISD là ngược lại với SIMD Máy tính MISD có thể thực hiện nhiều chương trình (nhiều lệnh) trên cùng một mục dữ liệu, nên còn được gọi

là MPSD (đa chương trình, đơn dữ liệu)

MIMD: Multiple Instruction, Multiple Data: máy tính song song thực sự

(Multiple Instruction Stream, Multiple Data Stream - Đa luồng lệnh, đa luồng dữ liệu) Máy tính loại MIMD còn gọi là đa BXL, trong đó mỗi BXL

có thể 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 (global) 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 Đây là kiến trúc phức tạp nhất, nhưng nó là mô hình hỗ trợ xử lý song song cao nhất và đã có nhiều máy tính được sản xuất theo kiến trúc này

Trang 18

Chương 2: Thuật toán song song với dữ liệu lớn

2.1.4 Tiêu chí của thuật toán song song

Thách thức cũng như tiêu chí hoạt động của một thuật toán song song như sau:

 Giảm tối đa chi phí tương tác/ gửi thông điệp giữa các tiến trình

o Tăng giá trị tối đa của dữ liệu cục bộ

o Giảm dung lượng của dữ liệu trao đổi

o Giảm tần suất trao đổi thông diệp giữa các tiến trình

 Giảm thiểu chi phí đồng bộ và tương tác

 Chia tải hiệu quả giữa các tiến trình con

 Giảm thiểu tối đa sự tính toán trùng lặp giữa các tiến trình con

2.2 Môi trường phân tán

Xử lý dữ liệu trong hệ thống phân tán lớn đã trở thành một vấn đề cấp bách đối với tất cả các công ty trên nền web, bất kể mọi lãnh vực Dữ liệu ngày càng được thu thập nhiều và dễ dàng thông qua các công cụ chuẩn, mã nguồn mở hiện đại, kèm theo đó là chi phí lưu trữ dữ liệu ngày càng rẻ hơn Vì thế việc phân tích và đánh giá, rút trích ra các tri thức có ích từ nguồn dữ liệu trên đang trở nên quan trọng, và được chú ý phát triển nhiều trong các tổ chức doanh nghiệp hiện đại

Thời gian tương tác của các câu truy vấn trên các tập dữ liệu cực lớn đóng vai trò quan trọng trong các tác vụ phân tích, rút trích tri thức như đã đề cập ở trên Ngoài

ra khả năng chịu lỗi, độ tin cậy, khả năng phục hồi sau sự cố, khả năng mở rộng và tích hợp tính toán giữa các hệ thống phân tán lớn cũng là một vấn đề quan trọng

Để giải quyết bài toán trên, nhiều tổ chức khoa học, doanh nghiệp đã cùng nhau nghiên cứu, hiện thực các thuật toán tối ưu cho môi trường phân tán, các nền tảng chuẩn và mở cho các tác vụ tính toán trên mạng lưới phân tán lớn, trong đó nổi bật nhất là nền tảng Hadoop của tổ chức Apache

Trang 19

CHƯƠNG 3: HIỆN THỰC CÁC THUẬT TOÁN SONG SONG

3.1 Dijkstra

3.1.1 Giới thiệu

Bài toán tìm đường đi ngắn nhất từ một đỉnh đến tất cả các đỉnh là một trong số những bài toán tối ưu trên đồ thị và được ứng dụng rộng rãi trong thực tế cũng như các ứng dụng thú vị trong ngành toán học rời rạc Bài toán được đề xuất và giải quyết bởi nhà khoa học máy tính người Hà Lan Edsger Dijkstra và được gọi là thuật toán Dijkstra Thuật toán có độ phức tạp là O(n2), với độ phức tạp tính toán cao của thuật toán này cũng như đòi hỏi về mặt thời gian, việc giải bài toán này với tính chất tuần tự của giải thuật sẽ gặp phải những vấn đề về thời gian thực hiện chương trình, tốc độ xử lý, khả năng lưu trữ của bộ nhớ, xử lý dữ liệu với quy mô lớn,… kích thước của bài toán tăng lên và không gian tìm kiếm càng lớn, yêu cầu phải song song hóa giải thuật để tăng tốc độ và hiệu quả của giải thuật

3.1.2 Thuật toán tuần tự

Đầu vào: Đồ thị liên thông G(V,E,w), w(i,j) > 0 (i,j) E, đỉnh nguồn a

Đầu ra: Chiều dài đường đi ngắn nhất và đường đi ngắn nhất từ đỉnh a đến tất cả

các đỉnh trên đồ thị

+ Phương pháp:

Bước 1 Gán L(a):=0 Với mọi đỉnh x ≠ a gán L(x) = ∞ Đặt T:=V

Bước 2 Chọn v T, v chưa xét sao cho L(v) có giá trị nhỏ nhất

Đặt T:=T\{v}, đánh dấu đỉnh v đã xét

Bước 3 Nếu T= , kết thúc L(z), z V, z≠a là chiều dài đường đi ngắn nhất từ a đến z Từ z lần ngược theo đỉnh được ghi nhớ ta có đường đi ngắn nhất (L(z) không thay đổi, nếu L(z)= ∞ thì không tồn tại đường đi_(Not Path)) Ngược lại sang bước

4

Trang 20

Chương 3: Hiện thực các thuật toán song song

Bước 4 Với mỗi x T kề v gán L(x):= min{L(x), L(v)+w(v,x)} Nếu L(x) thay đổi thì ghi nhớ đỉnh v cạnh đỉnh x bằng mảng truoc[] (với truoc[] của đỉnh 1= 0) để sau này xây dựng đường đi ngắn nhất Quay về bước 2 Độ phức tạp của thuật toán Dijkstra là O(n2) [3]

Ví dụ: Cho đồ thị được biểu diễn như sau, sau khi thuật toán thực hiện xong thì kết

quả được ghi nhớ lên các nhãn đỉnh tương ứng

Hình 3.1: Kế t quả tính toán đư ợ c trên đồ thị

Mảng trước[]=0 1 1 2 3 3 6 4 8 11 7 11 (Mảng ghi nhớ trước[] dùng để tìm đường

đi, với trước[1]=0)

Trang 21

Với một đỉnh nguồn nhất định - vertex s

While (có tồn tại trong tập đỉnh một đỉnh nằm ngoài cluster cl[V])

{

FOR (tất cả các đỉnh nằm ngoài cluster)

Tính toán khoảng cách từ đỉnh này đến vertex S thông qua cluster

Trang 22

Chương 3: Hiện thực các thuật toán song song

Với thuật toán tuần tự như trên, giải thuật có độ phức tạp là O(n2) khi n tăng lên quá lớn (khoảng vài chục ngàn đỉnh) thì thời gian xử lý sẽ chậm đi đánh kể, điều này không đáp ứng được những ứng dụng cho giải thuật Dijkstra đòi hỏi chạy với thời gian nhanh hơn

3.1.3 Thuật toán song song

Thuật toán đã giải quyết trên đồ thị với thời gian chạy khá lâu trên đồ thị có số đỉnh lớn và dễ dàng tìm thấy nhiều ứng dụng trong các lĩnh vực khoa học kỹ thuật, y tế, sinh vật và đặc biệt trong mạng giao thông vận tải Tuy nhiên, có rất nhiều ứng dụng cần xử lý nhanh trên đồ thị có số đỉnh lớn thì thuật toán tuần tự không đáp ứng được Vì vậy ta phải tìm cách giải quyết bài toán với số đỉnh lên đến hàng chục ngàn đỉnh mà thời

Hiện nay, mô hình xử lý song song đã và đang phát triển mạnh mẽ giải quyết những vấn đề bế tắc mà mô hình xử lý tuần tự gặp phải như: vấn đề thời gian thực hiện chương trình, tốc độ xử lý, khả năng lưu trữ của bộ nhớ và xử lý dữ liệu với quy mô lớn

Phương án đề xuất

o Mỗi bộ vi xử lý xác định đỉnh gần kề ngắn nhất từ đỉnh nguồn một cách độc lập

o Song song hóa việc lựa chọn đỉnh gần nhất

o Chia sẻ kết quả sau khi tính toán giữa các đỉnh

o Mỗi bộ xử lý cùng tiến hành cập nhật danh sách đỉnh sau khi tính toán

Mã giả:

Tạo cluster cl[V]

Với một đỉnh nguồn nhất định - vertex s

[Mỗi bộ xử lý phụ trách xử lý một tập con v phần tử của p đỉnh trong vòng lặp sau]

While (có tồn tại một đỉnh nằm ngoài cluster cl[V])

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[6] Dijkstra, E. W. (1959). "A note on two problems in connexion with graphs,". Numerische Mathematik 1: 269–271. doi:10.1007/BF01386390 Sách, tạp chí
Tiêu đề: A note on two problems in connexion with graphs
Tác giả: Dijkstra, E. W
Năm: 1959
[7] A. Crauser, K. Mehlhorn, U. Meyer, P. Sanders, “A parallelization of Dijikstra’s shortest path algorithm”, in Proc. of MFCS’98, pp. 722-731, 1998 Sách, tạp chí
Tiêu đề: A parallelization of Dijikstra’s shortest path algorithm
[8] Y. Tang, Y. Zhang, H. Chen, “A Parallel Shortest Path Algorithm Based on GraphPartitioning and Iterative Correcting”, in Proc. of IEEE HPCC’08, pp. 155- 161, 2008 Sách, tạp chí
Tiêu đề: A Parallel Shortest Path Algorithm Based on GraphPartitioning and Iterative Correcting
[1] R. Agrawal and J. C. Shafer. Parallel mining of association rules. IEEE Trans. On Knowledge and Data Engineering, 8:962–969, 1996 Khác
[2] R. Agrawal and R. Srikant. Fast Algorithms for Mining Association Rules. In J. B. Bocca, M. Jarke, and C. Zaniolo, editors, Proc. 20th Int. Conf. Very Large Data Bases, VLDB, pages 487–499. Morgan Kaufmann, 1994 Khác
[3] Grid’5000: A Large Scale, Reconfigurable, Controlable and Monitorable Grid Platform. In GRID 2005, 6th IEEE/ACM international workshop on Grid Computing. SuperComputing, 2005 Khác
[4] M. Z. Ashrafi, D. Taniar, and K. A. Smith. ODAM: An Optimized Distributed Association Rule Mining Algorithm. IEEE Distributed Systems Online, 5(3), 2004 Khác
[5] L. M. Aouad, N.-A. Le-Khac, and T. M. Kechadi. Grid-based approaches for distributed data mining applications. In DCABES 2007, the sixth International Conference on Distributed Computing and Applications for Business, Engineering and Sciences., 2007 Khác
[9] M.-F. Balcan, A. Blum, S. Fine, and Y. Mansour. Distributed learning, communication complexity and privacy. In Proceedings of the Conference on Learning Thoery, 2012 Khác
[10] J. Considine, F. Li, G. Kollios, and J. Byers. Approximate aggregation techniques for sensor databases. In Proceedings of the International Conference on Data Engineering, 2004 Khác
[11] S. Dutta, C. Gianella, and H. Kargupta. K-means clustering over peer-to- peer networks. In Proceedings of the International Workshop on High Performance and Distributed Mining, 2005 Khác
[14] Bart Jacob. How Grid infrastructure affects application design, RedBooks Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w