Cải thiện tốc độ tìm kiếm của mô hình đồ thị BT-Graph dựa trên nền tảng CUDA

BT-Graph (Giaph Model based on Ball Tree Structure) là một mô hình đồ thị được xây dựng dựa trên cấu trúc balltree, giúp mô hình hóa hệ thống mạng giám sát các bẫy đèn tự động và hỗ trợ tìm kiếm vị trí địa lý. Khi số lượng vị trí địa lý lớn và không gian địa lý tìm kiếm mở rộng thì cần phải cải thiện tốc độ tìm kiếm của mô hình đồ thị BT-Graph. Trong bài viết này, chúng tôi đề xuất một hướng tiếp cận mới trong việc cải thiện tốc độ tìm kiếm của mô hình đồ thị BT-Graph bằng phương pháp song song hóa thuật toán tìm kiếm dựa trên nền tảng CUDA NVIDIA. Các thực nghiệm được triển khai trên hai thuật toán tìm kiếm k-láng giềng gần nhất và tìm kiếm đường đi ngắn nhất dựa trên mô hình đồ thị BT-Graph và cho thấy sự cải thiện tốt về thời gian tìm kiếm.

pdf8 trang | Chia sẻ: candy98 | Lượt xem: 476 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Cải thiện tốc độ tìm kiếm của mô hình đồ thị BT-Graph dựa trên nền tảng CUDA, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
K b v c s k tì tr đ v B d đ v đ [ [ tr h lu N h V r p ỷ yếu Hội nghị Q CẢI T 3 Khoa Công TÓM TẮ alltree, giúp m à không gian đ húng tôi đề xuấ ong hóa thuật -láng giềng gầ m kiếm. Từ khóa BT-Gra úc balltree [2 ề xuất bán kín ị trí địa lý lớ T-Graph. Ngày n ụng đòi hỏi c ộ phức tạp củ à xử lý tuần t Trong b ồ thị BT-Gra 15] [16] [26]. 23] [24] [25] Bài viế ên mô hình. ình đồ thị BT ận. CUDA VIDIA. CUD iệu suất tính t GPUs [ ới số lượng l ộng rãi trong hỏng như: mô uốc gia lần thứ HIỆN TỐ Lư 2 Vụ K nghệ thông lhhuong T - BT-Graph ô hình hóa hệ t ịa lý tìm kiếm t một hướng tiế toán tìm kiếm n nhất và tìm k - CUDA, BT-G ph (Graph M 1] [11]. BT-G h hoạt động n và không A) ay, việc sử d ần phải xử lý a mô hình đồ ự trên CPU [1 ài viết này, c ph bằng phươ Các thực ngh và tìm kiếm đ t được chia th Phần thứ hai -Graph dựa tr [26] là một A cung cấp k oán bằng các 6] [16] [28] h ớn các lõi GP xử lý song s phỏng khí h VIII về Nghiên cứ C ĐỘ T DỰA ơng Hoàng 1 Trung hoa học, Công tin và Truyền @ctu.edu.vn, (Graph Model hống mạng giá mở rộng thì c p cận mới tron dựa trên nền t iếm đường đi n raph, vị trí địa odel based on raph không c cho các cảm b gian địa lý tì Hình 1. A) Tậ ụng Graphic song song. N thị. Đã có nh ] [2] [3] [7] [ húng tôi đề x ng pháp song iệm được tri ường đi ngắn ành năm phần trình bày về ên nền tảng C mô hình lập hả năng kết h h khai thác sứ ỗ trợ đa luồng Us cung cấp ong. GPUs đ ậu, dịch bệnh u cơ bản và ứng ÌM KIẾM TRÊN Hướng1, Ngu tâm Công ngh nghệ và Mô thông, Nhóm nhthanh@{m based on Ball m sát các bẫy đ ần phải cải thi g việc cải thiện ảng CUDA NV gắn nhất dựa lý, mạng giám I. G Ball Tree St hỉ giúp mô h iến tự động, m m kiếm mở r B) p hợp điểm, B) Processing U goài ra GPUs iều nghiên cứ 10]. uất một hướn song hóa th ển khai dựa t nhất [5] [9] [ . Phần thứ nh CUDA NVID UDA. Phần II. C trình và là m ợp giữa kiến c mạnh của đ khổng lồ - n một khả năng ược sử dụng , dụng Công nghệ CỦA MÔ NỀN TẢN yễn Hải Tha ệ phần mềm, i trường, Bộ G nghiên cứu li oet.gov.vn, mo Tree Structure) èn tự động và ện tốc độ tìm k tốc độ tìm kiếm IDIA. Các thự trên mô hình đ sát bẫy đèn tự IỚI THIỆU ructure) [11] ình hóa hệ th à còn hỗ trợ ộng thì cần p Cấu trúc Balltr nits (GPUs) cũng hỗ trợ t u về việc cho g tiếp cận mớ uật toán tìm k rên hai thuật 17] [18] [27] ất giới thiệu IA. Phần thứ thứ tư trình b UDA NVIDIA ột nền tảng trúc phần cứn ơn vị xử lý đồ hiều lõi, với s xử lý dữ liệ để giải quyết thông tin (FAIR) HÌNH Đ G CUDA nh2, Huỳnh X Đại học Cần iáo dục và Đ ên ngành DR et.edu.vn}, h là một mô hìn hỗ trợ tìm kiếm iếm của mô hì của mô hình c nghiệm được ồ thị BT-Graph động, song son là một mô hìn ống mạng giá tìm kiếm vị tr hải cải tiến t C) ee, C) Mô hình [28] đóng vai ốt trong việc thấy hiệu suấ i trong việc c iếm dựa trên toán: tìm kiếm [29]. về mô hình B ba trình bày ày về các thực tính toán son g và phần m họa – Graph ố lượng lên đ u song song, nhiều vấn đề ; Hà Nội, ngày 9 Ồ THỊ B uân Hiệp3 Thơ ào tạo Việt N EAM-CTU/IR xhiep@ctu.ed h đồ thị được x vị trí địa lý. K nh đồ thị BT-G đồ thị BT-Grap triển khai trê và cho thấy sự g. h đồ thị được m sát các bẫy í địa lý [11]. ốc độ tìm ki đồ thị BT-Gra trò quan trọ xử lý đồ thị m t cao giữa xử ải thiện tốc đ nền tảng GP k-láng giền T-Graph và tì về cải thiện t nghiệm. Phầ g song được ềm. CUDA có is Processing ến hàng trăm chính vì điều phức tạp tro -10/7/2015 T-GRAP am D, Đại học C u.vn ây dựng dựa tr hi số lượng vị t raph. Trong b h bằng phương n hai thuật toá cải thiện tốt xây dựng dự đèn tự động Tuy nhiên, kh ếm của mô h ph ng trong xử l à không cần lý song song ộ tìm kiếm củ Us CUDA N g gần nhất [8 m kiếm vị trí ốc độ tìm kiế n cuối cùng l phát triển bở khả năng tăn Units (GPUs) lõi và hàng n đó GPUs đượ ng mô hình h H ần Thơ ên cấu trúc trí địa lý lớn ài viết này, pháp song n tìm kiếm về thời gian a trên cấu bằng cách i số lượng ình đồ thị ý các ứng phải giảm trên GPUs a mô hình VIDIA [6] ] [13] [19] địa lý dựa m của mô à phần kết i Công ty g đáng kể . gàn luồng. c sử dụng óa và mô Ls c A [ tự tr k v n v tr B tr t m G n ương Hoàng Hướ CUDA ong. Cả CPU ác tính toán s III. CẢ . Thuật toán Tìm kiế 11] được thể động tại mộ uy vấn q tron iếm giải thuậ ề Q chứa k vị út đang xét B à cập nhật lại ái và con phả Tuy nh TS. Ngoài ra ường hợp giả Trường ảng CUDA (g ột thực hiện PU. Module hất (gần nhất ng, Nguyễn Hải cung cấp một và GPU đều ong song sẽ d I THIỆN TỐ tìm kiếm k-l m k-láng giề hiện như là ph t không gian đ g V, k là số đ t sẽ tính toán trí có cùng đ lớn hơn D, b Q. Trường h i. Chi tiết giả iên, khi số lượ khi số lượng i quyết bài to hợp một chú ọi tắt là BF-k tính toán son hai thực hiện ) – Thực hiện Thanh, Huỳnh X tập hợp các t tham gia vào o GPU xử lý Hình 3 C ĐỘ TÌM áng giềng gầ ng gần nhất ương pháp tì ịa lý xác địn iểm gần nhất lại Q. Tại mỗ iều kiện gần n ỏ qua B và trả ợp ba nếu B l i thuật được m ng vị trí địa điểm truy vấ án tìm kiếm k ng tôi đề xuấ NNCUDA) g song khoản sắp xếp các k tại CPU. uân Hiệp Hình 2. hư viện mở rộ quá trình tính với bộ nhớ riê . GPU và CU KIẾM CỦA n nhất của m trên mô hình m kiếm k vị t h. Với V là tậ cần tìm. Quá i nút B đang hất của truy kết quả là Q à một nút tro ô tả như tron lý lớn và khô n lớn cũng c -láng giềng g t sử dụng thu [2] [3] [8] [10 g cách từ điểm hoảng cách tí Lưu đồ xử lý ng hỗ trợ lập toán. Các tín ng biệt. DA giao tiếp MÔ HÌNH Đ ô hình đồ thị đồ thị BT-Gr rí địa lý gần n p hợp các vị t trình tìm kiếm xét, giải thuậ vấn q. Trường . Trường hợp ng, gọi đệ quy g [11]. ng gian tìm k ần phải cải th ần nhất bằng p ật toán vét cạ ] [19] [23] [2 truy vấn đế nh toán được của CUDA trình viên tro h toàn tuần tự với bộ cấp ph Ồ THỊ BT-G BT-Graph dự aph (Search b hất được áp d rí địa lý (bẫy được bắt đầ t thực hiện m hợp một nếu hai nếu B là n thuật toán tì iếm mở rộng iện tốc độ tìm hương pháp n áp dụng cho 5] và được c n tất cả các đ theo thứ tự tă ng việc phát t sẽ được thực át bộ nhớ RAPH DỰA a trên CUDA ased on BT- ụng trên hệ t đèn), Q chứa u từ nút gốc, ột trong ba trư khoảng cách út lá, duyệt q m kiếm cho h thì cần cải th kiếm. Vì vậ song song hóa tìm kiếm k- ài đặt với hai iểm trong tập ng dần và chọ riển các thuật thi trên CPU TRÊN CUD Graph, viết t hống mạng c các điểm láng trong suốt qu ờng hợp, cu từ điểm truy ua tất cả các đ ai nút con củ iện tốc độ tìm y, chúng tôi đ . láng giềng dự module chín dữ liệu – Th n ra k-khoản 73 toán song , trong khi A ắt là BTS) ác bẫy đèn giềng của á trình tìm ối cùng trả vấn q đến iểm x ∈ B a B là con kiếm của ề xuất hai a trên nền h. Module ực hiện tại g cách nhỏ 7 C th B t x t đ b 4 Trường UDA xử lý [ uật 2. . Thuật toán Thuật t ìm kiếm đườn ây dựng trên oán. Có hai n ược đánh dấu ản: khởi tạo ( Giải th 1. 2. 3. 4. 5. 6. 7. 8. hợp hai chún 4]. Phương ph Hìn Giải thuật 2 / 1. T 2. T 3. S / 4. V 5. T 6. T 7. S tìm kiếm đư oán Dijkstra [ g đi sao cho c cơ sở gán cho hãn là cố định là nhãn cố đị Initialization) CẢI THIỆN uật 1: BF-kN //Xử lý tại Nạp dữ liệu Thiết lập ch Sao chép dữ //Xử lý tại G Tính toán k Sao chép dữ //Xử lý tại C Sắp xếp các Lấy ‘k’ kho Giải phóng g tôi đề xuất áp này chúng h 4. BTSCUD : BTSCUDA /Xử lý tại CP ạo cấu trúc c ạo mảng chứ ao chép cây /Xử lý tại GP ới mỗi điểm ìm kiếm trên rả kết quả là ao chép kết q ờng đi ngắn n 5] [26] là thu hi phí duyệt t các đỉnh của và tạm thời nh sẽ cho kết , tìm giá trị nh TỐC ĐỘ TÌM NCUDA CPU vào bộ nhớ d ỉ số k liệu từ CPU PU hoảng cách từ liệu từ GPU PU khoảng cách ảng cách đầu bộ nhớ CUD với mỗi lần t tôi gọi là BT A với mỗi đi U ây T a các điểm tru T và mảng qA U truy vấn cây T với ph danh sách k-l uả tất cả danh hất của mô h ật toán tìm k ừ đỉnh bắt đầ đồ thị các nh . Ở mỗi bước quả là đường ỏ nhất (Extra KIẾM CỦA MÔ ùng chung vào GPU điểm truy vấ về CPU tính được the tiên thể hiện A hực hiện BTS SCUDA. Ý t ểm truy vấn s y vấn qArrra rrray từ CPU ương pháp BF áng giềng gần sách k-láng ình đồ thị B iếm đường đi u đến đỉnh kết ãn tạm thời. C lặp sẽ thay đ đi ngắn nhất ct_Min) và cậ HÌNH ĐỒ THỊ B n q đến tất cả o thứ tự tăng cho các điểm trên một điể ưởng thuật to ẽ do một luồn y vào GPU S nhất của mỗ giềng tìm đượ T-Graph dựa ngắn nhất bằ thúc là nhỏ n ác nhãn này ổi một nhãn t từ đỉnh tới nú p nhật giá trị T-GRAPH DỰA điểm v ∈ V dần gần nhất m truy vấn th án được thể h g trong CUD i điểm truy vấ c từ GPU về trên CUDA ng phương p hất. Thuật to được thay đổ ạm thời thành t đó. Thuật to (UpdateCost) TRÊN NỀN TẢ ì sẽ do một lu iện trong hìn A xử lý n CPU háp duyệt qu án Dijkstra tu i theo mỗi bư nhãn cố địn án bao gồm b . NG CUDA ồng trong h 4 và giải a đồ thị và ần tự được ớc lặp tính h. Một nút a bước cơ L lu U ương Hoàng Hướ Để son ồng trong CU pdateCost đư H Quá trìn ng, Nguyễn Hải g song hóa th DA. Quá trì ợc cài đặt bằn ình 5. Lưu đ h cấp phát bộ Thanh, Huỳnh X Giải thuậ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. uật toán Dijk nh xử lý song g CUDA. ồ song song t nhớ GPUs c Hình 6. Cấp uân Hiệp t 3: Thuật to //Initial foreach v ∈ d[v end d[S] Q ← while Q ≠ ∅ //Extract_ u ← { v: v if (d[u] = break; Remove u //UpdateC foreach (u if ((d[u d[v] end end stra, chúng tô song được th huật toán Dijk ho các cạnh c phát bộ nhớ l án Dijkstra V do ] ← ∞ ← 0 V do Min ∈ Q ^ ∀w ∈ ∞) then from Q ost , v) ∈ V do ] + c(u, v)) < d ← d[u] + c(u, i đề xuất mỗ ể hiện như lư stra trên mô h ủa đồ thị BT- ưu trữ cho mô Q, d[v] ≤ d[w [v]) then v) i cạnh của đồ u đồ ở hình 5 ình đồ thị BT Graph được th hình đồ thị B ] } thị BT-Grap . Trong đó, h -Graph sử dụ ể hiện như hì T-Graph h sẽ tương ứn ai bước Extra ng CUDA nh 6. 75 g với một ct_Min và 76 CẢI THIỆN TỐC ĐỘ TÌM KIẾM CỦA MÔ HÌNH ĐỒ THỊ BT-GRAPH DỰA TRÊN NỀN TẢNG CUDA Thuật toán Dijkstra cài đặt với CUDA (gọi tắt là DijkstraCUDA) được thể hiện như sau: Giải thuật 4: Thuật toán DijkstraCUDA Bước 1: 1. Khởi tạo ma trận trọng số, điểm bắt đầu và kết thúc Bước 2: 2. Cấp phát bộ nhớ trong CUDA tương ứng với số cạnh của mô hình đồ thị BT-Graph Bước 3: 3. Sao chép dữ liệu từ CPU sang GPU Bước 4: 4. Tìm kiếm đỉnh u tự do sao cho chi phí đi từ đỉnh xuất phát S đến u là nhỏ nhất 5. Nếu không tìm thấy u thỏa điều kiện trên thì thoát: + Hoặc là tìm thấy đường đi. + Hoặc không tìm thấy đường đi. 6. Nếu tìm thấy đỉnh u thỏa điều kiện, dùng đỉnh u xét các đỉnh tự do khác. 7. Dùng CUDA để cấp các luồng cho việc thực hiện tính toán giữa đỉnh u và các đỉnh còn lại. Bước 5: 8. Sao chép dữ liệu từ GPU về CPU Bước 6: 9. Giải phóng CUDA IV. THỰC NGHIỆM Trong phần thực nghiệm này chúng tôi tiến hành so sánh tốc độ tìm kiếm trên mô hình đồ thị BT-Graph giữa thuật toán tuần tự trên CPU và thuật toán song song trên CUDA. Máy tính được sử dụng cho phần thực nghiệm này là Desktop (Intel Core i3-3220 3.3 GHz, bộ nhớ 4GB DDR3, card đồ họa NVIDIA GeForce GTX 660 với bộ nhớ 2GB GDDR5) chạy hệ điều hành Ubuntu 14.04 64 bits. A. Dữ liệu thực nghiệm Dữ liệu sử dụng cho thực nghiệm được chia làm hai loại, loại một dùng cho thực nghiệm tìm kiếm k-láng giềng và loại hai dùng cho tìm kiếm đường đi ngắn nhất Dijkstra. Các dữ liệu được sinh ra ngẫu nhiên từ chương trình thực nghiệm. Cấu trúc thông tin của dữ liệu loại một bao gồm hai danh sách. Danh sách thứ nhất chứa các điểm dữ liệu ban đầu gồm ba cột và số dòng là tùy chọn. Mỗi dòng mô tả thông tin một điểm dữ liệu. Cột một chứa tên của điểm dữ liệu, cột hai chứa giá trị x trong không gian hai chiều và cột ba chứa giá trị y trong không gian hai chiều. Danh sách thứ hai chứa các điểm truy vấn cũng gồm ba cột và số dòng là tùy chọn. Mỗi dòng mô tả thông tin một điểm truy vấn. Cột một chứa tên của điểm dữ liệu, cột hai và cột ba chứa giá trị x và y trong không gian hai chiều. Cấu trúc thông tin của dữ liệu loại hai dùng để mô tả số đỉnh, cạnh và thông tin các cạnh của mô hình đồ thị BT- Graph. Dòng thứ nhất chứa hai giá trị, số đỉnh và số cạnh của mô hình đồ thị BT-Graph. Các dòng còn lại, mỗi dòng chứa ba giá trị - đỉnh đầu, đỉnh cuối và trọng số của cạnh được tạo bởi hai đỉnh đó. B. Công cụ thực nghiệm và phương pháp thực nghiệm Trong thực nghiệm này, chúng tôi đã xây dựng một công cụ dựa trên nền tảng NetGen [14] với tên gọi là: GLS (Geographical Location Search) [11], cho phép xây dựng mô hình đồ thị BT-Graph [28] dựa trên tập dữ liệu cho trước. Ngoài ra, chương trình còn cho phép tính toán, thực thi chương trình CUDA thông qua thư viện DLL&C của Smalltalk và so sánh thời gian thực thi của các thuật toán. Trong cùng một thuật toán và một tập dữ liệu, chúng tôi tiến hành thực thi chương trình nhiều lần và lấy kết quả trung bình về thời gian thực thi của thuật toán đó nhằm mục đích để thu được kết quả tương đối chính xác. C. So sánh hiệu suất của thuật toán tìm kiếm k-láng giềng Yêu cầu đặt ra cho phần thực nghiệm này là so sánh được tốc độ tìm kiếm của thuật toán kNN truyền thống [11] trên mô hình đồ thị BT-Graph và thuật toán kNN dựa trên CUDA [26]. Thực nghiệm được tiến hành trên tập dữ liệu được mô tả như trong phần dữ liệu thực nghiệm. Chúng tôi tiến hành thực thi chương trình 10 lần trên mỗi thuật toán và lấy giá trị trung bình theo thời gian thực thi. Kết quả thực nghiệm của chương trình sau khi đã lấy trung bình được thể hiện như trong bảng 1. Trong đó, N là số lượng điểm dữ liệu ban đầu, Q là số lượng điểm truy vấn. Lương Hoàng Hướng, Nguyễn Hải Thanh, Huỳnh Xuân Hiệp 77 Bảng 1. Bảng so sánh tốc độ thực thi của các thuật toán (Đơn vị tính bằng mili giây) N =10000 với Q= 10000 N = 100000 với Q=100000 kNN BT-Graph 179.46 17898.13 BF-kNNCUDA 123.47 5440.29 BTSCUDA 1.12 53.478 Hình 7. Biểu đồ so sánh tốc độ thực thi của ba thuật toán Dựa vào bảng thực nghiệm 1 và biểu đồ so sánh ở hình 7, chúng ta thấy rằng thuật toán BF-kNNCUDA cải thiện tốc độ tìm kiếm hơn gấp khoảng 2.37 lần so với thuật toán kNN BT-Graph. Trong khi đó thuật toán BTSCUDA cải thiện tốc độ gấp khoảng 247.46 lần so với thuật toán kNN BT-Graph và cải thiện tốc độ gấp khoảng 105.98 lần so với BF-kNNCUDA. D. So sánh hiệu suất của thuật toán tìm kiếm đường đi ngắn nhất Yêu cầu đặt ra cho phần thực nghiệm này là so sánh được tốc độ tìm kiếm của thuật toán Dijkstra truyền thống trên mô hình đồ thị BT-Graph và thuật toán DijkstraCUDA. Trong phần này, chúng tôi vẫn tiến hành thực thi chương trình 10 lần cho từng thuật toán và sau đó lấy kết quả trung bình trên tổng số lần thực thi đó. Dữ liệu đầu vào là tập dữ liệu được mô tả như trong phần dữ liệu thực nghiệm. Sau đó xây dựng ma trận trọng số trên mô hình đồ thị BT-Graph. Tiến hành tìm kiếm trên ma trận trọng số đó bằng hai phương pháp: tuần tự và song song với CUDA. Kết quả đầu ra của chương trình là thời gian thực thi của hai phương pháp. Kết quả thực nghiệm với số lượng đỉnh của đồ thị khác nhau được thể hiện như bảng 2. Bảng 2. Thể hiện kết quả thực nghiệm của hai thuật toán (Đơn vị tính là mili giây) 1000 3000 5000 7000 9000 11000 13000 15000 Dijkstra 47 413 1116 2173 3641 5422 7545 10111 DijkstraCUDA 189 753 1498 2120 3130 4338 5414 7118 Hình 8. Biểu đồ so sánh tốc độ thực thi của thuật toán Dijkstra trên CPU và GPU Từ bảng thực nghiệm 2 và biều đồ so sánh thuật toán Dijkstra trên CPU và GPU trong hình 8, ta thấy khi số lượng đỉnh trong một đồ thị nhỏ và nằm trong khả năng xử lý của CPU thì khi đó CPU sẽ có thời gian thực thi nhanh hơn so với GPU. Nguyên nhân là do phải sao chép dữ liệu từ CPU sang GPU và tiến hành xử lý tính toán sau đó sao chép kết quả 0 5000 10000 15000 20000 N= 10000 và Q=10000 N=100000 và Q=100000 So sánh tốc độ thực thi của ba thuật toán kNN BT-Graph BF-kNNCUDA BTSCUDA 0 5000 10000 15000 So sánh thời gian thực thi của thuật toán Dijkstra trên CPU và GPU Dijkstra DijkstraCUDA 78 CẢI THIỆN TỐC ĐỘ TÌM KIẾM CỦA MÔ HÌNH ĐỒ THỊ BT-GRAPH DỰA TRÊN NỀN TẢNG CUDA ngược về GPU. Tuy nhiên, khi số lượng đỉnh của một đồ thì đủ lớn, thì chúng ta có thể thấy thời gian xử lý của GPU được cải thiện đáng kể. Cụ thể như trong như trong bảng 2 và hình 8, khi số lượng đỉnh nhỏ hơn 9000 thì CPU xử lý nhanh hơn GPU. Nhưng khi số lượng đỉnh đủ lớn (lớn hơn 9000) thì tốc độ của GPU nhanh hơn so với CPU. V. KẾT LUẬN BT-Graph (Graph Model based on Ball Tree Structure) [11] là một mô hình đồ thị được xây dựng dựa trên cấu trúc balltree, giúp mô hình hóa hệ thống mạng giám sát các bẫy đèn tự động và hỗ trợ tìm kiếm vị trí địa lý. Khi số lượng vị trí địa lý lớn và không gian địa lý tìm kiếm mở rộng thì cần phải cải thiện tốc độ tìm kiếm của mô hình đồ thị BT-Graph. Chính vì vậy chúng tôi đã đề xuất một hướng tiếp cận mới trong cải thiện tốc độ tìm kiếm của mô hình đồ thị BT-Graph bằng phương pháp song song hóa dựa trên nền tảng CUDA. Trên nền tảng CUDA, chúng tôi đã tiến hành song song hóa hai thuật toán tìm kiếm của mô hình đồ thị BT- Graph – BF-kNNCUDA, BTSCUDA và DijkstraCUDA. Từ đó, công cụ GLS được tạo ra nhằm xây dựng mô hình đồ thị BT-Graph, đồng thời cho phép tính toán hiệu suất hoạt động của các thuật toán và đưa ra kết quả so sánh. Kết quả thực nghiệm cho thấy việc song song hóa thuật toán tìm kiếm của mô hình đồ thị BT-Graph cho một kết quả tốt về thời gian tìm kiếm. Trong thời gian tới, chúng tôi sẽ tiến hành song song hóa toàn bộ quá trình xây dựng mô hình đồ thị BT-Graph nhằm tiếp tục cải thiện tốc độ trong toàn bộ quá trình xây dựng mô hình. VI. TÀI LIỆU THAM KHẢO [1] Andrew O. Finley, Ronald E. McRoberts, “Efficient k-nearest neighbor searches for multi-source forest attribute mapping”, Remote Sesing of Environment (Volume 112, Issue 5), pp. 2203-2211, 2008. [2] Carlo del Mundo, Mariam Umar, “A Mixed Hierarchical Algorithm for Nearest Neighbor Search”, 2013. [3] Deepika Verma, Namita Kakkar, Neha Mehan, “Comparison of Brute-Force and K-D tree Algorithm”, International Journal of Advanced Research in Computer and Communication Engineering (Volume 3, Issue 1), 2014. [4] Dr. Mohammed Otair, “APPROXIMATE K-NEAREST NEIGHBOUR BASED SPATIAL CLUSTERING USING K-D TREE”, Internaltional Journal of Database Management Systems (Volume 5, Issue 1), pp. 97, 2013. [5] E. W. Dijkstra, “A note on two problems in connexion with graphs”, Numerische Mathematik (volume 1, Issue 1), pp. 269-271, 1959. [6] Ebook: CUDA, [7] Fabian Gieseke, Justin Heinermann, Cosmin Oancea, Christian Igel, “Buffer k-d Trees: Processing Massive Nearest Neighbor Queries on GPUs”, Proceeding of The 31st Internaltional Conference on Machine Learning, pp. 172-180, 2014. [8] Graham Nolan, “Improving the k-Nearest neighbour Algorithm with CUDA”, Technical report, School of CSSE, The University of Western Australia, 2009. [9] Gunjan Singla, Amrita Tiwari, Dhirendra Pratap Singh, “New Approach for Graph Algorithms on GPU using CUDA”, Internaltion Journal of Computer Application (Volume 72, Issue 18), pp. 38-42, 2013. [10] Kimikazu Kato, Tikara