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

Nâng cao hiệu năng xử lý giao tác trong kho dữ liệu không gian (tt)

24 122 0

Đ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 24
Dung lượng 1,49 MB

Nội dung

MỞ ĐẦU Thực trạng Việc áp dụng thuyết đồ thị vào toán thực tiễn tiến hành từ lâu Tuy nhiên, lượng liệu ngày lớn, chẳng hạn liệu từ mạng xã hội Facebook, việc mơ hình hố liệu thuyết đồ thị lại quan tâm minh chứng hiệu bật áp dụng vào thực tế Khi mơ hình hố liệu đồ thị, thông thường thực thể (chẳng hạn thành viên mạng xã hội) biểu diễn thơng qua đỉnh quan hệ thực thể (chẳng hạn quan hệ bạn bè thành viên) quy cạnh liên kết đỉnh đồ thị Đối với toán mơ hình hố đồ thị có quy mơ lớn số đỉnh số cạnh, thách thức lớn đặt cần phải có phương pháp (i) tổ chức liệu đồ thị hiệu (ii) tối ưu hoá phép toán đồ thị để nâng cao hiệu thi hành Bài toán nghiên cứu Với thực trạng đặt ra, luận án quan tâm đến toán nghiên cứu đề xuất phương pháp tổ chức liệu đồ thị hiệu kết hợp với giải pháp song song hố phép tốn (cả có tương tranh lẫn không tương tranh) đồ thị quy mô lớn số cạnh lẫn số đỉnh để tiến hành xử truy vấn phân tích đồ thị cách hiệu Tính hiệu quan tâm luận án thể không gian nhớ lưu trữ tốc độ thi hành phép toán tương tranh Mục tiêu, phạm vi nghiên cứu nội dung Mục tiêu nghiên cứu Từ tốn đặt ra, mục tiêu luận án khảo sát, đánh giá giải pháp đại xử phép toán tương tranh đồ thị quy mơ lớn; từ đề xuất phương pháp biểu diễn liệu đồ thị phù hợp nâng cao hiệu thi hành phép toán đồng thời đồ thị có quy mơ lớn Phạm vi phương pháp nghiên cứu Về phạm vi, khuôn khổ thời gian, luận án trọng đến tốn nghiên cứu đồ thị khơng trọng số Với kiểu đồ thị đó, phép tốn tương tranh quan tâm quy thành phép toán thêm cạnh, xoá cạnh truy vấn khoảng cách ngắn hai đỉnh Đối với phép tốn hỗ trợ phân tích đồ thị mạng xã hội, số độ đo trung tâm quan tâm, đề xuất giải pháp nâng cao hiệu tính tốn độ đo luận án Về phương pháp nghiên cứu, luận án kết hợp phương pháp nghiên cứu thuyết lẫn nghiên cứu thực nghiệm Các đề xuất luận án trọng phân tích, đánh giá tường minh tính đắn, độ phức tạp mặt thuyết Việc thực nghiệm tiến hành liệu thường xuyên cộng đồng nghiên cứu sử dụng tảng tính tốn để so sánh với giải pháp khác công bố Chương 1: 1.1 1.1.1 THUYẾT NỀN TẢNG thuyết đồ thị Khái niệm Đồ thị cấu trúc liệu linh hoạt, thể dạng tập đỉnh (vertices) cạnh (edges), hay gọi với thuật ngữ khác tập nút (nodes) quan hệ kết nối chúng với (relationships) 1.1.2 Kiểu đồ thị Một số kiểu đồ thị thể Hình 1.1 đây: Hình 1.1: Một số kiểu đồ thị 1.2 Biểu diễn đồ thị Đồ thị biểu diễn phương pháp sau đây: • Danh sách cạnh • Ma trận liền kề • Danh sách liền kề • Ma trận liên thuộc • Ma trận hàng thưa nén 1.3 Các phép tốn đồ thị Trong phần này, chúng tơi trình bày kết tóm lược phép tốn đồ thị Các phép toán chia làm hai loại chính: (i) duyệt đồ thị, (ii) phân tích đồ thị 1.3.1 Duyệt đồ thị Định nghĩa 1.1 Duyệt đồ thị (hay đơi gọi tìm kiếm đồ thị) trình thăm (kiểm tra hoặc/và cập nhật) đỉnh đồ thị Quá trình duyệt đồ thị thường phân loại dựa theo thứ tự đỉnh khám phá Với giả thiết đồ thị G biểu diễn theo phương pháp sử dụng danh sách liền kề, hai phương pháp duyệt theo chiều rộng trước duyệt theo chiều sâu trước tiến hành theo giải thuật đây: 1.3.1.1 Duyệt theo chiều rộng trước - BFS Định nghĩa 1.2 Duyệt theo chiều rộng trước (Breadth-First Search - BFS) giải thuật để duyệt cấu trúc liệu đồ thị Giải thuật cho phép từ đỉnh đồ thị, gọi đỉnh gốc, khám phá tất đỉnh liền kề có độ sâu so với nút gốc trước chuyển đến đỉnh độ sâu 1.3.1.2 Duyệt theo chiều sâu trước - DFS Định nghĩa 1.3 Duyệt theo chiều sâu trước (Depth-First Search - DFS) giải thuật để duyệt cấu trúc liệu đồ thị, cho phép từ đỉnh đồ thị, gọi đỉnh gốc, khám phá xa tốt dọc theo đỉnh liền kề trước quay trở lại Hay khác với BFS khám phá đỉnh anh em mức trước, DFS cho phép khám phá nút trước quay lại khám phá đỉnh anh em 1.3.2 Phân tích đồ thị thuyết đồ thị ứng dụng nhiều lĩnh vực khác Tuỳ thuộc vào lĩnh vực ứng dụng mà việc phân tích đồ thị tiến hành với phương pháp kỹ thuật khác Một số miền lĩnh vực ứng dụng thuyết đồ thị để phân tích bao gồm: mạng xã hội (social network); mạng sinh học (biological network); mạng liên kết (link network); 1.3.2.1 Tính khoảng cách Trong đồ thị G, việc xác định đường ngắn từ đỉnh u đến đỉnh v cho phép tính khoảng cách chúng Tuỳ thuộc vào kiểu đồ thị mà cách tính khoảng cách u v xây dựng khác 1.3.2.2 Đường ngắn Trong thuyết đồ thị, đường ngắn từ đỉnh u đến v định nghĩa đường có khoảng cách dis(u, v) ngắn Với đồ thị khơngtrọng số, đường ngắn đường có số cạnh nhỏ từ u đến v 1.3.2.3 Độ trung tâm Đối với phép tốn phân tích đồ thị, luận án quan tâm đến hai độ trung tâm sau đây: Định nghĩa 1.4 Độ trung tâm gần đỉnh v định nghĩa dựa theo công thức Bavelas đề xuất sau: CC(v) = u∈V dst(u, v) (1.1) với dst(u, v) khoảng cách ngắn từ nốt u đến v Định nghĩa 1.5 Độ trung tâm trung gian đỉnh v tính cơng thức sau: σst (v) BC(v) = , (1.2) σst s=v=t∈V với σst khoảng cách ngắn từ đỉnh s đến t σst (v) số đường ngắn qua đỉnh v 1.4 Xử song song Định nghĩa 1.6 Tính tốn song song (parallel computing) kiểu tính tốn nhiều phép tính (hoặc việc thi hành nhiều tiến trình) tiến hành cách đồng thời dựa nguyên tắc tốn lớn chia thành nhiều tốn nhỏ tiến hành đồng thời Việc đánh giá hiệu mơ hình tính toán song song thường sử dụng luật Amdahl (Amdahl’s Law),cho hệ số tăng tốc chương trình song song xác lập dựa vào tỷ lệ mã (code) P chương trình song song hoá: SpeedU p = (1.3) 1−P Khi xét thêm số lượng CPU tham gia vào tính tốn song song, hệ số xác định biểu thức sau: SpeedU p = S+ P N (1.4) đó, P tỷ lệ mã song song, N số lượng CPU S tỷ lệ mã Chương 2: TỐI ƯU HOÁ TRUY VẤN TƯƠNG TRANH TRÊN ĐỒ THỊ ĐỘNG 2.1 Giới thiệu Chương trình bày giải pháp cải thiện hiệu suất xử truy vấn đồng thời đồ thị có hướng, khơng trọng số với quy mơ lớn có tính thay đổi nhanh Chiến lược dựa ý tưởng: (i) cấu trúc liệu thích hợp, (ii) giảm thiểu khơng gian tìm kiếm, (iii) thi hành song song hiệu 2.2 Đặc tả toán Xét đồ thị G = (V, E) đồ thị có tập đỉnh V E lớn, từ vài triệu đỉnh đến hàng tỷ đỉnh, liên tục có thay đổi (thêm/bớt) số lượng thực thể V (tức số lượng đỉnh) thay đổi số lượng quan hệ (tức số lượng cạnh) Các quan hệ E thực thể G mơ hình hố khơng xét đến trọng số có hướng 2.2.1 Mơ hình liệu truy vấn Biểu diễn cạnh đồ thị có quy mô lớn dựa theo danh sách liền kề cách tiếp cận phù hợp Các phép toán đồ thị hồn tồn mơ hình hố dựa theo ba phép tốn chính: Thêm cạnh [ A u v], Xoá cạnh [ D u v], Truy vấn [ Q u v] 2.2.2 Bài toán đặt Định nghĩa 2.1 Xét đồ thị G = (V, E) thời điểm t có n phép tốn tương tranh (concurrent operations) S = {op1 , op2 , opn } Mỗi phép toán opi S tương ứng với ba phép toán đặc tả biểu diễn ba opi = (ai , ui , vi ); a ∈ [ A , D , Q ] kiểu phép toán thao tác với cặp đỉnh (u, v) Yêu cầu đặt phải tiến hành xử phép toán tập S cách nhanh mà đảm bảo tính quán G thứ tự thi hành phép toán S Việc thực thi lịch S tiến hành theo hướng xây dựng giải pháp thi hành hệ thống tính tốn đa CPU, nhiều lõi có khơng gian nhớ lớn 2.3 Giải pháp 1: akgroup Việc thi hành phép toán tương tranh S tiến hành theo giải thuật 2.1 sau: Thuật toán 2.1: Giải pháp 1: Các bước thực lịch thi hành S 10 11 12 13 14 15 16 17 Input: S[a, u, v] mảng đại diện lịch thi hành chứa phép toán tương tranh; Q danh sách chứa truy vấn tính khoảng cách ngắn G Output: G cập nhật danh sách Dist[.] chứa khoảng cách ngắn theo S query_num ← ; foreach (a, u, v) ∈ S if a = A then add_edge(u, v) ; end else if a = D then del_edge(u, v) ; end else if a = Q then Q[query_num] ← (u, v) ; query_num+ = 1; end end if query_num > then exec_queries(Q, Dist) ; end return Dist[.] ; 2.3.1 Cấu trúc liệu đồ thị phù hợp Dữ liệu đồ thị G biểu diễn sau: • Mỗi nút v định danh tự nhiên nằm khoảng [0 (|V |− 1)] • Các đỉnh đến/đi nút lưu trữ vùng liền kề mảng tương ứng gọi incoming_edges/outgoing_edges • Việc định vị số lượng đỉnh liền kề v mảng incoming_edges/outgoing_ tiến hành dựa theo mảng mục incoming_index/outgoing_index Để tăng tỷ lệ "cache hit", số đỉnh liền kề num vị trí bắt đầu pos incoming_edges/outgoing_index lưu theo cặp kề (pos, num) Hình 2.1: Minh hoạ cấu trúc liệu đồ thị 2.3.2 Tối ưu truy vấn 2.3.2.1 Giải thuật tính khoảng cách ngắn Việc tính khoảng cách ngắn từ u đến v đồ thị có hướng khơng trọng số G dựa giải thuật bBFS, duyệt BFS theo hai chiều: từ u duyệt dần theo chiều rộng trước từ v lần ngược lên theo chiều rộng Quá trình duyệt kết thúc tồn đỉnh nằm hàng đợi duyệt chiều chiều đến • Sử dụng hai mảng bitmaps đến để bit xác lập trạng thái đỉnh tương ứng vị trí bit duyệt hay chưa • Sử dụng chiến lược lựa chọn chiều duyệt BFS có ghi nhận thêm số lượng cháu hàng đợi: theo chiều hay đến dựa tổng số đỉnh đỉnh cháu hàng đợi 2.3.2.2 Xử song song truy vấn Để tiến hành song song truy vấn tìm khoảng cách ngắn nhất, giải pháp đề xuất dựa vào ý tưởng sau: • Song song hố q trình thực truy vấn tính khoảng cách luồng khác khơng song song q trình tính khoảng cách ngắn • Sử dụng hai hàng đợi toàn cục để chứa đỉnh đến/đi duyệt đồ thị (gọi incoming_queue outgoing_queue); Việc xử truy vấn tìm khoảng cách ngắn tiến hành luồng riêng biệt sử dụng mảng incoming_queue outgoing_queue riêng cho luồng • Hai mảng tồn cục để lưu vết đỉnh duyệt (in_maps out_maps) Hai mảng lưu vết cấp phát trước mảng có kích thước |V | 32 ∗ threadN um phần tử kiểu Integer (4-bytes) với threadN um số luồng song song • Giải pháp song song cài đặt dựa thư viện Cilkplus Intel xây dựng 2.4 Giải pháp 2: akGroupPlus Được xây dựng dựa giải pháp thực cải tiến hai phương diện: thay đổi cách thức tổ chức liệu cho phù hợp áp dụng kỹ thuật song song hoá truy vấn cách hiệu phép tốn cập nhật lẫn truy vấn tính khoảng cách ngắn 2.4.1 Tổ chức liệu đồ thị kèm trạng thái Dữ liệu đồ thị tổ chức theo chiều lẫn chiều đến sau: • (i) Mỗi đỉnh định danh giá trị số 4-bytes; • (ii) Các đỉnh cạnh đến/đi đỉnh u lưu vector có xếp thứ tự tăng dần incomingEdges[u]/outgoingEdges[u] Mỗi phần tử v kích thước bytes vector mã hố: 30 bits trái để định danh đỉnh đến/đi; bits lại để thể trạng thái cạnh (u, v) (ALIVE, DEAD, UNKNOWN) Việc tổ chức danh sách đỉnh liền kề theo chiều lẫn chiều đến cho phép duyệt BFS theo hai chiều 2.4.2 Xử phép toán tương tranh Việc thi hành phép toán tương tranh S xử theo bước sau: • Lưu lại có thứ tự phép tốn cập nhật vào mảng Updates; phép toán truy vấn đường ngắn vào mảng Queries; • Tiến hành xử phép toán cập nhật đánh dấu cạnh cập nhật trạng thái UNKNOWN; • Tiến hành xử song song truy vấn đường ngắn nhất; • Cập nhật thức trạng thái cạnh liên quan đến phép toán cập nhật, tức chuyển trạng thái cạnh từ UNKNOWN DEAD (nếu bị xoá) hay ALIVE (nếu thêm vào); Các bước xử minh hoạ cụ thể qua giải thuật 2.2 đây: Thuật toán 2.2: akGroupPlus: Thi hành phép toán tương tranh S 10 11 12 Function akGroupP lus(S) Input: Đồ thị G danh sách S có n phép tốn (a, u, v) với ’a’ phép toán Output: G ghi nhật tất cập nhật danh sách khoảng cách ngắn tất truy vấn ’Q’ for t = 0; t < n; t + + (a,u,v) = Op[t]; if a = Q then Queries.push_back(t,u,v) ; /* đẩy (t, u, v) vào vector Queries */ end else Updates.push_back(t,a,u,v) ; /* đẩy (t, a, u, v) vào vector U pdates */ end end Call UpdateSerial(Updates) ; /* Cập nhật cạnh theo giải thuật ?? */ Call ParallelQuery(Queries) ; /* Thi hành song song truy vấn ’Q’ theo giải thuật 2.3 */ Call CommitSerial(Updates) ; /* Ghi nhận cạnh thêm/xoá G theo giải thuật ?? */ 2.4.3 Tối ưu hoá phép toán cập nhật Tất phép toán cập nhật cạnh vector U pdates thi hành cách cập nhật trước tiên trạng thái UNKNOWN đỉnh liên quan đến cạnh thêm/xoá incomingEdges/outgoingEdges Việc ghi nhận thức phép tốn cập nhật tiến hành sau hồn thành q trình xử truy vấn khoảng cách ngắn Queries Trong q trình xử truy vấn đó, nhãn thời gian sử dụng để xác định ghi nhận cạnh có trạng thái UNKNOWN 2.4.3.1 Xử song song truy vấn Với tập truy vấn lưu vector Queries, thư viện CilkPlus sử dụng để cài đặt tính tốn song song Từ đó, việc xử song song truy vấn khoảng cách Queries tiến hành giải thuật 2.3 đây: Thuật toán 2.3: Thi hành song song truy vấn khoảng cách đồ thị G Function P arallelQuery(Queries) Input: Queries chứa truy vấn khoảng cách (u, v) thời điểm t; đồ thị G Output: Danh sách Dist[.] chứa khoảng cách tương ứng /* Thi hành song song vòng For theo phương pháp CilkPlus for i = 0; i < Queries.size(); i + + (u, v, t) ← Queries[i] ; Dist[i] = ComputeShortest2(u, v, t) ; end return Dist[.]; */ 2.5 Giải pháp 3: bigGraph Giải pháp bigGraph xây dựng hoàn toàn dựa giải pháp 2, bổ sung thêm kỹ thuật song song phép toán cập nhật Khi đó, lịch thi hành phép tốn tương tranh S xử theo bước sau: • Lưu lại có thứ tự phép tốn cập nhật vào mảng Updates; phép toán truy vấn đường ngắn vào mảng Queries; • Tiến hành xử song song phép toán cập nhật đánh dấu cạnh cập nhật trạng thái UNKNOWN với ý tưởng: mở numT hreads luồng đồng thời; việc cập nhật danh sách đỉnh liền kề v phép tiến hành luồng thứ v mod numT hreads • Tiến hành xử song song truy vấn đường ngắn nhất; • Cập nhật thức trạng thái cạnh liên quan đến phép toán cập nhật, tức chuyển trạng thái cạnh từ UNKNOWN DEAD (nếu bị xoá) hay ALIVE (nếu thêm vào) theo phương pháp xử song song với ý tưởng nêu trên; Các bước xử minh hoạ cụ thể qua giải thuật 2.4 đây: Thuật toán 2.4: bigGraph: Thi hành phép toán tương tranh S 10 Function bigGraph(S) Input: Đồ thị G danh sách S có n phép tốn (a, u, v) với ’a’ phép toán Output: G ghi nhật tất cập nhật danh sách khoảng cách ngắn tất truy vấn ’Q’ for t = 0; t < n; t + + (a,u,v) = Op[t]; if a = Q then Queries.push_back(t,u,v) ; /* đẩy (t, u, v) vào vector Queries */ end else Updates.push_back(t,a,u,v) ; /* đẩy (t, a, u, v) vào vector U pdates */ end end Call UpdateParallel(Updates) Call ParallelQuery(Queries) Call CommitParallel(Updates) 2.6 2.6.1 Thực nghiệm đánh giá Môi trường thử nghiệm, đánh giá Ba giải pháp trình bày chương chúng tơi tiến hành thử nghiệm đánh giá nhiều mơi trường tính tốn khác nhau, cụ thể sau: • Giải pháp thử nghiệm mơi trường máy tính cá nhân với cấu hình Intel R CoreTM i7-3720QM (6MB Cache, up to 3.60 GHz, cores-8 10 threads), nhớ 8GB, CentOS 7, gcc 5.1.1 hệ thống tính tốn thi ACM SigMod Programming Contest 2016: x Intel(R) Xeon(R) CPU E5-2697 v4 @ 2.30GHz (45MB Cache, 18-cores per CPU), nhớ 128GB, CentOS Linux release 7.2.1511, gcc 6.3.0 • Với giải pháp 3, thực nghiệm hệ thống tính tốn hiệu cao: x Intel(R) Xeon(R) CPU E5-2697 v4 @ 2.30GHz (45MB Cache, 18-cores per CPU), nhớ 128GB, CentOS Linux release 7.2.1511, gcc 6.3.0 2.6.2 Dữ liệu thực nghiệm Các giải pháp xử phép toán tương tranh đồ thị tiến hành với liệu cơng bố từ tổ chức có uy tín khoa học giới: • Dữ liệu từ thi SigMod Programming Contest 2016 Bảng 2.1: Thống kê đồ thị sử dụng SigMod 2016 Số đỉnh Số cạnh Đồ thị nhỏ 1.574.074 3.232.855 Đồ thị trung bình 2.000.000 5.000.000 Đồ thị lớn 1.971.281 5.533.214 Đồ thị lớn 6.009.555 16.518.948 • Dữ liệu SNAP: Chúng tơi chọn hai liệu Pokec LiveJournal để tiến hành thực nghiệm đánh giá Bảng 2.2: Thống kê liệu đồ thị sử dụng thực nghiệm Tham số Số cạnh Số đỉnh Đường kính (khoảng cách ngắn lớn nhất) 2.6.3 SigMod 1.574.074 3.232.855 Pokec 68.993.773 4.847.571 16 LiveJournal 30.622.564 1.632.803 11 Sinh tập lịch thi hành thử nghiệm Lịch thi hành tương tranh S với phép toán lưu tệp text: • Cấu trúc dòng phép tốn (a u v) • Hai tập liệu (workload) sinh ngẫu nhiên với 1.000.000 phép toán cập nhật lẫn truy vấn khoảng cách ngắn nhất: workload 8-1-1 (phân bố phép toán Q/A/D 0,8/0,1/0,1) workload 5-4-1 (phân bố phép toán Q/A/D 0,5/0,4/0,1) 11 2.6.4 Thực nghiệm đánh giá kết Dựa môi trường thực nghiệm, liệu thu thập với workloads sinh ngẫu nhiên phương pháp thực nghiệm nêu trên, tiến hành cài đặt thực nghiệm ba giải pháp xử truy vấn tương tranh trình bày 2.6.4.1 Kết từ thi ACM SigMod Contest 2016 Đội tham dự H_minor_free uateam akgroup 2.6.4.2 Small 0,107 0,202 0,118 Medium 0,220 0,217 0,494 X-Large 0,886 1,085 1,284 XX-Large 2,333 2,123 2,878 Đánh giá giải pháp akGroup Kết đánh giá giải pháp akgroup so với số giải pháp khác: Tập liệu SigMod Test LiveJournal Pokec akgroup 1,428s 32,045s 14,286s BFS+Cilkplus 18,078s 55,630s 27,825s NetworkX 3319,4s Không thể thi hành >10h SNAP C++ 5045s >24h >15h Có thể thấy giải pháp akgroup nhìn chung mang lại hiệu thi hành tốt so với giải pháp khác thử nghiệm 2.6.4.3 Đánh giá giải pháp akGroupPlus Thực nghiệm so sánh giải pháp với hai giải pháp khác là: akgroup - giải pháp nêu trên; H_minor_free giải pháp giải thi ACM SigMod Contest 2016 Hình 2.2: Kết đánh giá với liệu Sigmod Dataset 12 Hình 2.3: Kết đánh giá với liệu Pokec Dataset Hình 2.4: Kết đánh giá với liệu LiveJournal Dataset So sánh với liệu LiveJournal Pokec, akGroupPlus mang lại kết thời gian thi hành tốt so với hai giải pháp lại ngoại trừ thi hành 2.6.4.4 Đánh giá giải pháp bigGraph Đánh giá so sánh bigGraph với akgroup; H_minor_free; số công cụ khác uoa_team (đội giành giải nhì); gStreamPKU; while1 (hai đội đồng giải Ba với akgroup) 13 (a) Thời gian thi hành (b) Hệ số tăng tốc Hình 2.5: Kết thực nghiệm với liệu SigMod 8-1-1 (a) Thời gian thi hành (b) Hệ số tăng tốc Hình 2.6: Kết thực nghiệm với liệu Sigmod 5-4-1 (a) Thời gian thi hành (b) Hệ số tăng tốc Hình 2.7: Kết thực nghiệm với liệu Pokec 8-1-1 14 (a) Thời gian thi hành (b) Hệ số tăng tốc Hình 2.8: Kết thực nghiệm với liệu Pokec 5-4-1 (a) Thời gian thi hành (b) Hệ số tăng tốc Hình 2.9: Kết thực nghiệm với liệu LiveJournal 8-1-1 (a) Thời gian thi hành (b) Hệ số tăng tốc Hình 2.10: Kết thực nghiệm với liệu LiveJournal 5-4-1 Giải pháp bigGraph nhìn chung có thời gian thi hành hiệu tốt so với 15 giải pháp lại tiến hành với số lượng lớn luồng song song; kể giải pháp akGroupPlus nêu Chương 3: NÂNG CAO HIỆU NĂNG Q TRÌNH TÍNH ĐỘ TRUNG TÂM TRÊN MẠNG XÃ HỘI 3.1 Tính độ trung tâm gần Q trình tính độ trung tâm gần đỉnh mạng/đồ thị G = (V, E) minh hoạ giải thuật giả mã miêu tả Giải thuật 3.1 Thuật toán 3.1: Giải thuật tính độ trung tâm gần 10 11 12 13 14 15 16 17 18 19 20 21 22 Input: G = (V, E); ΓG (v) biểu diễn danh sách đỉnh liền kề v Output: CC[.] for all v ∈ V CC[v] ← 0, ∀v ∈ V ; Sum[v] ← 0, ∀v ∈ V ; foreach s ∈ V F C[s] ← 0; Q ← empty queue; Q.push(s); dst[s] ← 0; CC[s] ← 0; dst[v] ← −1, ∀v ∈ V s; while Q is not empty v ← Q.pop(); forall w ∈ ΓG (v) if dis[w] = ∞ then Q.push(w); dst[w] ← dst[v] + 1; Sum[v] ← dst[w]; end end end CC[s] ← 1/Sum[s] ; end return CC[.]; 3.1.1 Tính độ trung tâm Độ trung tâm BC độ đo sử dụng rộng rãi phân tích đồ thị nói chung để xác định nốt quan trọng đồ thị Độ đo áp dụng để phân tích đồ thị/mạng nhiều lĩnh vực khác vận tải, sinh học - y tế, phân tích mạng xã hội để phát cộng đồng, phát nguy khủng bố Giả mã thuật tốn Brandes với đồ thị khơng trọng số minh hoạ 16 giải thuật 3.2 đây: Thuật tốn 3.2: Giải thuật tính độ trung tâm 10 11 12 13 14 Input: G = (V, E), tổ chức mảng vector Edges[][] Data: queue Q ← empty, stack S khởi tạo rỗng chứa |V | đỉnh ; dist[v]: lưu khoảng cách từ đỉnh nguồn đến v ; P red[v]: chứa danh sách đỉnh đường ngắn từ đỉnh nguồn đến v ; σ[v]: số đường ngắn từ đỉnh nguồn đến v ; δ[v]: số đường ngắn từ nguồn qua v ; Output: BC[.] với v ∈ V foreach s ∈ V /* Pha Duyệt theo kiểu toán SSSP foreach v ∈ V P red[v] ← empty list ; foreach v ∈ V dist[v] ← ∞; σ[v] ← ; dist[s] ← 0; σ[s] ← 1; Q.push(s) ; while Q not empty v ← Q.pop(); S.push(v) ; foreach w ∈ Edges[v] /* w chưa duyệt if dist[w] == ∞ then dist[w] ← dist[v] + 1; Q.push(w) ; /* (v,w) nằm đường ngắn if dist[w] == dist[v] + then σ[w] ← σ[w] + σ[v]; P red[w].push_back(v); end end /* Pha 2: Tích luỹ (tính ngược lại đỉnh duyệt) foreach v ∈ V δ[v] ← 0; while S not empty w ← S.pop() ; 19 */ */ σ[v] 16 18 */ for v ∈ P red[w] δ[v] ← δ[v] + σ[w] (1 + δ[w]); if w = s then BC[w] ← BC[w] + δ[w]; 15 17 */ end end return BC[.] ; 3.2 3.2.1 Nâng cao hiệu tính độ trung tâm Cấu trúc liệu phù hợp Dữ liệu mạng xã hội quy mô lớn G = (V, E) biểu diễn theo phương pháp sử dụng danh sách đỉnh liền kề trình bày chương trước 3.2.2 Giải thuật song song tính độ trung tâm gần Thi hành song song phép tính độ trung tâm gần đỉnh khác khơng phải song song q trình duyệt tính đường ngắn từ đỉnh đến tất đỉnh lại (SSSP) 17 Giải thuật: 3.3 Thuật tốn 3.3: Giải thuật song song tính độ trung tâm gần 10 11 12 13 14 15 16 17 18 19 20 21 Input: G = (V, E) represented by Edges[][] Output: CC[.] for all v ∈ V CC[v] ← 0, Sum[v] ← 0, M aps[v] ← 0∀v ∈ V ; /* Thi hành song song sử dụng thư viện Cilk Plus for s = to Edges.size() Q ← empty queue; Q.push(s); SetBit(s, M aps) ; /* Đánh dấu s duyệt CC[s] ← 0; F C[s] ← 0; dst ← ; while Q is not empty dst ← dst + 1; /* Duyệt nút mức từ s hàng đợi Q while Q is not empty v ← Q.pop(); /* Duyệt nút liền kề với s forall w ∈ Edges[s] /* chưa duyệt if !T estBit(w) then Q.push(w, dst) ; /* lưu lại khoảng cách từ v đến w SetBit(w, Maps) ; /* đánh dấu w duyệt end end end Q.nextLevel() ; /* chuyển đến mức end if Sum[s] = then CC[s] ← 1/Sum[s] ; end return CC[.]; 3.2.3 */ */ */ */ */ */ */ */ Giải thuật song song tính độ trung tâm Cách tiếp cận tính tốn song song dựa việc thi hành song song phép tính độ trung tâm đỉnh khác khơng phải song song q trình duyệt tính đường ngắn từ đỉnh đến tất đỉnh lại (SSSP) 18 Giải thuật: 3.4 Thuật tốn 3.4: Giải thuật song song tính độ trung tâm 10 11 12 13 14 Input: G = (V, E), tổ chức mảng vector Edges[][] Data: queue Q ← , stack S khởi tạo rỗng chứa |V | đỉnh ; dist[v]: lưu khoảng cách từ đỉnh nguồn đến v ; P red[v]: chứa danh sách đỉnh đường ngắn từ đỉnh nguồn đến v ; σ[v]: số đường ngắn từ đỉnh nguồn đến v ; δ[v]: số đường ngắn từ nguồn qua v ; reducerBC[v]: vector chứa giá trị BC đỉnh v cho phép cập nhật tương tranh thi hành song song với thư viện Cilk Plus ; Output: BC[.] với v ∈ V /* Thi hành song song sử dụng thư viện Cilk Plus */ for s = to Edges.size() /* Pha Duyệt theo kiểu toán SSSP */ foreach v ∈ V P red[v] ← empty list ; foreach v ∈ V dist[v] ← ∞; σ[v] ← ; dist[s] ← 0; σ[s] ← 1; Q.push(s) ; while Q not empty v ← Q.pop(); S.push(v) ; foreach w ∈ Edges[v] /* w chưa duyệt */ if dist[w] == ∞ then dist[w] ← dist[v] + 1; Q.push(w) ; /* (v,w) nằm đường ngắn */ if dist[w] == dist[v] + then σ[w] ← σ[w] + σ[v]; P red[w].push_back(v); end end /* Pha 2: Tích luỹ (tính ngược lại đỉnh duyệt) */ foreach v ∈ V δ[v] ← 0; while S not empty w ← S.pop() ; σ[v] (1 σ[w] 15 for v ∈ P red[w] δ[v] ← δ[v] + 16 /* Đảm bảo thi hành tương tranh xác if w = s then reducerBC[w] ← reducerBC[w] + δ[w]; 17 18 19 20 end end reducerBC.move_out(BC) ; return BC[.] ; 3.3 3.3.1 + δ[w]); */ /* Trả kết cho vector BC */ Thực nghiệm đánh giá Môi trường thử nghiệm, đánh giá Giải thuật song song tính độ trung tâm gần CC cài đặt ngôn ngữ C++ hệ thống tính tốn hiệu cao, với cấu hình x Intel(R) Xeon(R) CPU E5-2697 v4 @ 2.30GHz (45MB Cache, 18-cores per CPU), nhớ 128GB, CentOS Linux release 7.2.1511, gcc 6.3.0 Hệ thống tính tốn cấu hình cho phép thi hành tối đa 36 luồng song song (do cấu hình tắt chức hyperthreading CPU) 19 3.3.2 Dữ liệu thực nghiệm Thu thập liệu mạng xã hội công bố từ hai tổ chức lớn: SNAP (Stanford Large Network Dataset Collection) Aminer Datasets for Social Network Analysis,bao gồm: gemsec-Facebook Politician, gemsec-Facebook Artist, ego-Facebook,com-DBLP, com-Youtube, Flickr Bảng 3.1: Thông tin thống kê liệu mạng xã hội thử nghiệm Bộ liệu ego-Facebook (DS1) gemsec-Facebook Politician (gọi tắt DS2) gemsec-Facebook Artist (DS3) DBLP (DS4) Youtube (DS5) Flickr (DS6) Số cạnh 88.234 41.729 819.306 1.049.866 2.987.624 9.114.557 Số đỉnh 4.039 5.908 50.515 425.957 1.157.828 214.626 Đường kính 14 11 23 24 10 3.3.3 Kết thực nghiệm đánh giá 3.3.3.1 Giải pháp nâng cao hiệu tính độ trung tâm gần Hai công cụ tiêu biểu chọn để so sánh là: TeexGraph NetworKit Kết thực nghiệm tổng hợp dựa việc tính thời gian thi hành trung bình 10 lần chạy thử nghiệm giải pháp thể bảng sau: Bảng 3.2: Thời gian (giây) hệ số tăng tốc bigGraph tính độ trung tâm gần Số luồng 16 32 36 DS1 Thời gian Speedup 1,031 1,00 0,552 1,87 0,306 3,37 0,169 6,11 0,095 10,82 0,054 19,07 0,052 19,89 DS2 Thời gian Speedup 1,546 1,00 0,819 1,89 0,415 3,72 0,223 6,95 0,129 12,03 0,069 22,48 0,060 25,96 DS3 Thời gian Speedup 195,276 1,00 97,527 2,00 49,136 3,97 26,418 7,39 14,491 13,48 7,481 26,10 6,648 29,37 Kết minh hoạ bảng cho thấy nhiều luồng song song tiến hành, thời gian thi hành tính độ trung tâm gần ngắn Từ đó, chúng tơi định chọn số luồng song song 36 luồng (số luồng tối đa hệ thống tính tốn chúng tơi) thi hành so sánh đánh giá hiệu bigGraph NetworKit, TeexGraph 20 Bảng sau minh hoạ thời gian trung bình 10 lần thi hành q trình tính độ trung tâm gần ba giải pháp nêu trên: Bảng 3.3: Thời gian tính độ trung tâm gần (giây) Bộ liệu ego-Facebook gemsec-Facebook Politician gemsec-Facebook Artist DBLP Flickr Youtube Networkit 0,468 1,192 182,890 3363,286 147.924,400 Teexgraph 0,052 0,071 9,808 326,659 540,944 4.418,191 bigGraph 0,032 0,056 6,405 153,753 309,058 2.168,677 Bảng 3.4 cho thấy hệ số tăng tốc bigGraph liệu nhanh từ 1,27 đến 2,12 từ 14,78 đến 68,21 so với cơng cụ lại, TeexGraph NetworKit Bảng 3.4: Hệ số tăng tố bigGraph so với Teexgraph Networkit tính độ trung tâm gần Bộ liệu ego-Facebook gemsec-Facebook Politician gemsec-Facebook Artist DBLP Flickr Youtube 3.3.3.2 Teexgraph/bigGraph 1,66 1,27 1,53 2,12 1,75 2,04 Networkit/bigGraph 14,78 21,23 28,56 21,87 68,21 Giải pháp nâng cao hiệu tính độ trung tâm Tiến hành cài đặt giải pháp song song hố q trình tính độ trung tâm ngôn ngữ C++ sử dụng thư viện lập trình song song theo mơ hình luồng CilkPlus, so sánh với hai công cụ TeexGraph NetworKit Cả hai công cụ bigGraph cài đặt hạ tầng phần cứng đề cập phần Kết thực nghiệm chúng tơi tổng hợp dựa việc tính thời gian thi hành trung bình 10 lần chạy thử nghiệm giải pháp thể bảng sau: 21 Bảng 3.5: Thời gian (giây) hệ số tăng tốc bigGraph tính độ trung tâm Số luồng 16 32 36 DS1 Thời gian Speedup 3,03 1,00 2,52 1,20 1,51 2,01 0,92 3,29 0,54 5,62 0,28 10,79 0,23 13,26 DS2 Thời gian Speedup 8,20 1,00 7,44 1,10 4,52 1,82 2,61 3,15 1,60 5,14 0,89 9,19 0,74 11,01 DS3 Thời gian Speedup 1129,47 1,00 832,76 1,36 556,46 2,03 330,64 3,42 196,46 5,75 118,92 9,50 99,85 11,31 Bảng sau minh hoạ thời gian trung bình 10 lần thi hành trình tính độ trung tâm ba giải pháp nêu trên: Bảng 3.6: Thời gian tính độ đo BC (giây) Bộ liệu ego-Facebook gemsec-Facebook Politician gemsec-Facebook Artist DBLP Flickr Youtube bigGraph 0,23 0,84 99,85 2345,62 3.506,34 56.071,60 Teexgraph 0,31 0,84 110,58 2694,78 4.447,93 68.744,80 Networkit 0,56 1,70 234,12 4823,47 7.694,61 90.522,30 Hệ số tăng tốc bigGraph liệu nhanh từ 1,11 đến 1,35 từ 2,06 đến 2,44 so với hai cơng cụ lại, TeexGraph NetworKit Bảng 3.7: Hệ số tăng tốc bigGraph so với Teexgraph Networkit tính độ đo BC Bộ liệu ego-Facebook gemsec-Facebook Politician gemsec-Facebook Artist DBLP Flickr Youtube Teexgraph/bigGraph 1,35 1,13 1,11 1,15 1,27 1,23 22 Networkit/bigGraph 2,44 2,28 2,34 2,06 1,61 2,19 KẾT LUẬN CHUNG Các đóng góp Luận án tập trung nghiên cứu ứng dụng thuyết để giải tốn nâng cao hiệu xử phép toán đồng thời đồ thị Với định hướng đó, chúng tơi tiến hành xác lập mục tiêu nội dung nghiên cứu luận án Qua kết thuyết lẫn thực nghiệm trình bày cụ thể luận án, khẳng định toàn mục tiêu nội dung nghiên cứu đề hồn thành, với đóng góp bao gồm: Mơ hình hố q trình xử phép toán tương tranh đồ thị quy mô lớn dựa vào lịch thi hành phép toán đồng thời dựa vào cấu trúc liệu phù hợp; từ cho phép nâng cao hiệu nhớ đệm cache giảm thời gian truy xuất đến nhớ Đề xuất ba giải pháp (akgroup, akgroupPlus bigGraph) để nâng cao hiệu thi hành truy vấn đồng thời đồ thị động quy mô lớn với khả thi hành song song truy vấn duyệt đồ thị lẫn cập nhật đồ thị Nâng cao hiệu q trình tính hai độ đo trung tâm: độ trung tâm gần độ trung tâm đồ thị mạng xã hội quy mô lớn, với giải pháp BigGraph xây dựng dựa việc tổ chức liệu đồ thị phù hợp song song hố phép tính SSSP thành viên mạng Tồn cơng trình công bố xuất kỷ yếu hội thảo, tạp chí có mục SCOPUS WoS Hạn chế luận án Do hạn chế thời gian, nguồn lực lẫn giới hạn không gian nghiên cứu, luận án số điểm hạn chế sau: • Các nội dung nghiên cứu luận án chưa thể tiến hành với đồ thị/mạng xã hội có quy mô siêu lớn, chẳng hạn Facebook với số lượng đỉnh hai tỷ nghìn tỷ cạnh • Một số độ đo trung tâm độ trung tâm vector riêng, độ trung tâm xếp hạng trang chưa nghiên cứu, cài đặt phần tính độ trung tâm • Chưa đưa kết nghiên cứu luận án áp dụng cụ thể vào toán thực tế 23 Hướng phát triển tương lai Toàn hạn chế chế nêu xác định nghiên cứu trọng tiến hành thời gian tới Trong thời gian tới, đồ thị quy mô siêu lớn quan tâm nghiên cứu để làm chủ cơng nghệ xử quy mô liệu đồ thị siêu lớn Đối với độ đo trung tâm phép tốn phân tích mạng xã hội, tiến hành cài đặt thời gian tới để hình thành nên cơng cụ hồn chỉnh phục vụ cho lớp toán duyệt phân tích đồ thị/mạng xã hội Ngồi ra, với tiềm CSDL đồ thị, tương lai gần, hướng đến nghiên cứu chuyên sâu việc tối ưu hoá xử truy vấn đồ thị thuộc tính; cho phép xử hiệu truy vấn đồ thị động, thay đổi theo thời gian (evolving graph database) 24 ... sau hồn thành q trình xử lý truy vấn kho ng cách ngắn Queries Trong trình xử lý truy vấn đó, nhãn thời gian sử dụng để xác định ghi nhận cạnh có trạng thái UNKNOWN 2.4.3.1 Xử lý song song truy vấn... nghiên cứu ứng dụng lý thuyết để giải toán nâng cao hiệu xử lý phép toán đồng thời đồ thị Với định hướng đó, chúng tơi tiến hành xác lập mục tiêu nội dung nghiên cứu luận án Qua kết lý thuyết lẫn thực... hố q trình xử lý phép tốn tương tranh đồ thị quy mô lớn dựa vào lịch thi hành phép toán đồng thời dựa vào cấu trúc liệu phù hợp; từ cho phép nâng cao hiệu nhớ đệm cache giảm thời gian truy xuất

Ngày đăng: 14/03/2019, 14:48

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w