1. Trang chủ
  2. » Công Nghệ Thông Tin

Nghiên cứu thuật toán song song trên môi trường MPI cho bài toán so khớp

61 181 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 61
Dung lượng 1,92 MB

Nội dung

Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - LÊ QUỐC THI NGHIÊN CỨU THUẬT TOÁN SONG SONG TRÊN MÔI TRƢỜNG MPI CHO BÀI TOÁN SO KHỚP XÂU Chuyên ngành : Công nghệ thông tin LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC TS NGUYỄN TUẤN DŨNG Hà Nội – Năm 2014 Page Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu LỜI CAM ĐOAN Tôi – Lê Quốc Thi - Cam kết luận văn công trình nghiên cứu thân hướng dẫn TS Nguyễn Tuấn Dũng Các kết nêu luận văn trung thực, chép toàn văn công trình khác Page Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu LỜI CẢM ƠN Trước hết, xin gửi lời cảm ơn trân trọng tới TS.Nguyễn Tuấn Dũng, môn Khoa học máy tính, Viện Công nghệ thông tin Truyền thông, trường Đại học Bách Khoa Hà Nội, người hướng dẫn, tận tình bảo hỗ trợ suốt trình làm luận văn tốt nghiệp Tôi xin gửi lời cám ơn tới thầy cô Viện Công nghệ thông tin Truyền thông toàn thể thầy cô trường Đại học Bách Khoa Hà Nội giúp đỡ, hỗ trợ suốt trình nghiên cứu thực luận văn Hà Nội, tháng 02 năm 2014 Học viên : Lê Quốc Thi Page Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu MỤC LỤC MỤC LỤC DANH MỤC HÌNH VẼ DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ Chƣơng - Đặt vấn đề định hƣớng giải pháp 1.1 Bài toán so khớp xâu 1.2 Một số thuật toán so khớp xâu 11 1.2.1 1.2.2 1.2.3 1.2.4 Các cách tiếp cận 11 Phương pháp Aho-corasick 15 Phương pháp phân tách Head-Body 19 Thực toán so khớp xâu môi trường song song 26 Chƣơng - Cài đặt phân tích thuật toán cho toán so khớp xâu 30 2.1 Phân tích, cài đặt đánh giá thuật toán 30 2.1.1 Phân tích phương pháp Aho-corasick 30 2.1.2 Phân tích phương pháp phân tách Head-Body 37 2.2 Xây dựng toán MSM môi trường song song 43 2.2.1 Cài đặt thuật toán môi trường song song MPI 43 2.2.2 Phương pháp Head Body môi trường song song 43 2.2.3 Phương pháp song song Master – Slave cho thuật toán Head Body 44 2.2.4 Cài đặt phương pháp Head Body với MPI 46 Chƣơng - Kết thu đƣợc từ thực nghiệm ứng dụng toán 51 3.1 Kết thu từ thực nghiệm 51 3.2 Ứng dụng toán 57 Chƣơng - Kết luận hƣớng phát triển 59 4.1 Kết luận 59 4.2 Hướng phát triển 59 TÀI LIỆU THAM KHẢO 61 Page Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu DANH MỤC HÌNH VẼ Hình Các hàm goto, failure, output sinh từ thuật toán AC 16 Hình Ảnh hưởng tỉ lệ so khớp tới hiệu thuật toán [6] 20 Hình 3: Automat AC-DFA cho từ điển S [6] 24 Hình 4: H-DFA B-NFA cho từ điển S [6] 24 Hình Phương pháp song song cho thuật toán Head-Body 44 Hình 6: Biểu đồ so sánh hiệu phương pháp song song Head-Body với tỉ lệ so khớp kích thước subtext 51 Hình 7: Biểu đồ so sánh hiệu phương pháp song song với số processor khác 52 Hình 8: Biểu đồ so sánh phương pháp HB song song AC song song 53 Hình 9: Biểu đồ so sánh hiệu phương pháp HB song song AC song song môi trường nhiều máy 56 Hình 10 Mô hình kiến trúc hệ thống IDS 57 Page Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ Từ viết tắt Từ đầy đủ Ý nghĩa MSM Multi String Matching Bài toán tìm kiếm nhiều từ mẫu AC Aho-Corasick algromith Thuật toán Aho-Corasick DFA Deterministic finite automata Automat hữu hạn tiền định NFA Nondeterministic finite automata Automat hữu hạn không tiền định HB Head-Body algromith Thuật toán phân tách Head Body H-DFA Head DFA Phần head có dạng DFA thuật toán Head-Body B-NFA Body NFA Phần body có dạng NFA thuật toán Head-Body STT State transition table Bảng chuyển trạng thái Page Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu Chƣơng - Đặt vấn đề định hƣớng giải pháp 1.1 Bài toán so khớp xâu Bài toán so khớp xâu (Multi String Matching) toán xuất nhiều ứng dụng thực tế Giải thuật string matching kiểm tra phát xuất nhiều kí tự liên tiếp tập liệu Bên cạnh ứng dụng tiếng sở liêu xử lý văn bản, giải thuật sở nhiều ứng dụng thực tế khác Các giải thuật chìa khóa việc phân tích thành phần chuỗi DNA protein, data mining, hệ thống bảo mật hệ thống phát xâm nhập: Intrusion Detection Systems (IDS) cho mạng (Networs IDS NIDS), ứng dụng (Applications - APIDS), giao thức (Protocol IDS PIDS) hay hệ thống Host (Host-based IDS - HIDS), phầm mềm diệt virus vấn đề học máy (machine learning) Tất ứng dụng có đặc điểm chung phải xử lý lượng liệu lớn dạng văn với yêu cầu cao hiệu nhằm đưa kết tốt khoảng thời gian chấp nhận Với yêu cầu đó, có nhiều thuật toán string matching đưa ra, số thuật toán hiệu Ahocorasick (AC) , đặc biệt việc xử lý text ứng dụng bảo mật Thuật toán có ưu điểm bật tìm kiếm đồng thời xuất nhiều từ mẫu có thời gian tính toán tuyến tính tỉ lệ thuận với chiều dài liệu vào Rất nhiều nghiên cứu thực với thuật toán AC, nhiều khía cạnh nhua có việc thực thi thuật toán nhiều tảng Các tảng sử dụng bao gồm vi mạch dùng cấu trúc mảng phần tử logic lập trình FPGA, hệ thống đa xử lý (bxl) Cray XMT, heterogeneous processors Cell Broadband Engine Gần đây, xử lý đồ họa (GPU) sử dụng, đặc biệt xử lý NVIDIA với công nghệ CUDA hỗ trợ lập trình song song Hầu hết phương pháp tập trung vào việc cải thiện tốc độ Chỉ vài năm gần đây, khía cạnh khác Page Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu ổn định hiệu suất, khả làm việc với từ điển lớn bắt đầu quan tâm, đặc biệt vấn đề từ điển lớn Tuy nhiên, thuật toán AC thường cho hiệu tốt có so khớp đầu vào, tức kích thước mẫu tìm kích thước liệu đầu vào thấp Khi tỷ lệ tăng lên, hiệu thuật toán thường bị giảm nhanh chóng Điều dễ gây công từ chối dịch vụ (DoS) hệ thống bảo mật mạng có sử dụng MSM Hơn nữa, việc hiệu suất thay đổi thực với liệu đầu vào từ điển có kích thước khác nhược điểm phương pháp dựa phần mềm Điều đặc biệt với kiến trúc dựa nhớ cache: phép toán tìm kiếm thực bên nhớ cache, thuật toán thực hiệu Tuy nhiên việc tìm kiếm thực nhớ - main memory, hiệu thuật toán thấp Điều dễ xảy với ứng dụng mà liệu đầu vào đoán trước, ứng dụng lọc gói tin mạng, lượng liệu biến thiên liên tục theo thời gian Lúc thuật toán phải truy nhập liệu từ vị trí nhớ chính, dẫn đến thay đổi hiệu Để khắc phục nhược điểm này, nhiều phương pháp giúp cải thiện thuật toán AC đưa Trong có hai thuật toán sử dụng bảng băm thuật toán phân tách Head-Body Việc sử dụng bảng băm giúp giảm kích thước liệu phải xử lý thuật toán AC sinh ra, nhiên việc hàm băm có chi phí cao dễ xảy va chạm băm làm cho thuật toán nhiều trường hợp không tỏ hiệu Một phương pháp phân tách Head-Body tiếp cận toán theo hướng khác với hàm băm, giảm kích thước liệu để đủ cho việc tìm kiếm diễn nhớ cache đồng thời hiệu không thay đổi nhiều từ điển liệu đầu vào khác Luận văn trình bày sở lý thuyết tập trung vào hướng tiếp cận thứ hai – Head Body Phương pháp kỹ thuật hướng tiếp cận phân tích, so sánh đánh giá với thuật toán AC Với việc xây dựng toán MSM dựa phần mềm, phương pháp cải Page Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu thiện hiệu tất yếu nghĩ tới sử dụng nhiều máy tính thực toán Đây mục đích tính toán song song phân cụm (Cluster), hệ thống máy tính song song xây dựng từ nút tính toán thiết bị mạng thông dụng, nút tính toán đóng vai trò điều khiển vào/ra hệ thống làm việc hoàn chỉnh, có khả làm việc độc lập Việc thiết lập hệ thống tính toán song song phân cụm từ máy tính có cấu trúc đơn giản, sử dụng công nghệ mạng phổ biến năm 1994 với mô hình Beowulf Cluster Thomas Sterling Donal Becker Một hệ thống rẻ nhiều so với siêu máy tính sức mạnh, điều làm cho chúng phổ biến đặc biệt phù hợp với nước phát triển trường đại học Tuy nhiên hệ thống tính toán cluster có nhược điểm trình triển khai, cấu hình hệ thống tương đối phức tạp, hệ thống hoạt động không ổn định siêu máy tính nhược điểm lớn chi phí truyền thông nút tính toán Tuy nhiên, luận văn không sâu phía phần cứng mà tập trung vào việc thiết kế phần mềm chạy xử lý đa nhân với cấu trúc cluster, với thư viện lập trình song song sử dụng Message Passing Interface-MPI Bài toán MSM thực song song cách chia đoạn liệu đầu vào thành tập hợp đoạn liệu nhỏ liệu ban đầu gửi đến xử lý để thực tìm kiếm Tuy nhiên, để có hiệu suất tối đa tất xử lý cần đòi hỏi thuật toán hiệu việc cân tải Luận văn đưa thuật toán song song áp dụng cho toán MSM thực so sánh, phân tích hiệu thuật toán liệu đầu vào, từ điển số xử lý khác Ngoài ra, luận văn xây dựng mô hình song song cho thuật toán Head-Body để kiểm tra hiệu chế truyền thông điệp Về ứng dụng toán, năm gần đây, toán MSM ngày quan tâm bùng nổ lượng thông tin mạng internet nhu cầu tìm kiếm người dùng Page Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu Với nôi dung trình bày trên, luận văn bao gồm phần tóm tắt sau: Chương 1: Đặt vấn đề định hướng giải pháp, phần bao gồm sở lý thuyết thuật toán cho toán MSM Chương 2: Cài đặt phân tích thuật toán cho toán Multi String Matching Chương 3: Kết thu từ thực nghiệm ứng dụng toán Chương 4: Kết luận hướng phát triển đề tài Page 10 Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu NFA a Hàm so khớp cho H-DFA Dữ liệu đầu vào chạy qua trạng thái automat H-DFA Trường hợp trạng thái thăm trạng thái kết thúc ta lưu vị trí mẫu vào file Trường hợp trạng thái body-root ta lưu thông tin cần thiết để gửi cho slave vào mảng cấu trúc body_match Ở ta có trường body_str mảng kí tự cần gửi đến cho B-NFA, kí tự lấy từ liệu đầu vào vị trí position có chiều dài với tham số chiều dài của từ mẫu dài body-tree tương ứng với body root (được gán vào trường size) Nếu mảng body-root đầy master gửi mảng tới slave trong trường hợp slave chưa nhận mảng Do mảng mảng cấu trúc nên trước gửi, ta đóng gói vào vùng nhớ liên tục với MPI_Pack Để chồng chéo việc gửi việc tính toán trạng thái tiếp theo, ta sử dụng chế gửi nonblocking MPI_Isend với thứ tự gửi kích thước đệm vùng liệu liên tục Việc nhận Master thực nonblocking thời gian hoàn thành việc so khớp slave xen kẽ nhau, blocking việc nhận gây delay slave chờ nhận chưa thực xong slave khác gửi kết tới Trong trường hợp slave nhận mảng body-root sau lần mảng đầy, phía master kiểm tra xem có slave thông báo thực xong không thông qua lệnh : MPI_Testany(numP+1,requests,&ind_req,&flag_nb,&status); Nếu có thông báo cờ flag_nb bật thành true thông tin slave gửi đến lấy cấu trúc status, master gửi mảng bodyroot vừa tính cho slave Trường hợp thông báo nào, mảng body-root vừa tính đưa vào hàng đợi, hàng đợi lưu trỏ mảng Quá trình kết thúc tất liệu đầu vào chạy qua H-DFA Khi hai liệu cần xử lý: Page 47 Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu Mảng body-root hàng đợi mà H-DFA thực xong chưa gửi hết Các phần tử mảng mà số phần tử chưa đủ để gửi slave Quá trình gửi mảng body-root hàng đợi thực tương tự xử lý H-DFA, với chút khác biệt ta sử dụng lệnh nhận blocking thay cho nonblocking lúc master làm nhiệm vụ phân phối, không cần chồng chéo với phần tính toán xử lý H-DFA Với phần tử lại mảng, ta chia số phần tử theo số xử lý thực slave ( phần cuối nhiều phần đầu ) Thứ tự gửi mảng body-root tương tự với thực với hàng đợi kích cỡ mảng khác Do để slave phân biệt mảng body-root này, ta đánh dấu trình gửi body-root lại tag khác với tag thực hàng đợi Cụ thể chương trình, MPI_TAG cho phần gửi/nhận phía hàng đợi 0, phần phần tử lại Sau kết thúc trình gửi phần tử này, master gửi thông báo kết thúc trình so khớp đến slave Để phân biệt với hai trình trên, tag thông báo kết thúc b Hàm so khớp B-NFA B-NFA thực nhiều xử lý, xử lý gồm trình sau : Nhận biến size_buff từ master để chuẩn bị kích thước đệm nhận mảng body-root Tùy thuộc vào tham số MPI_TAG nhận từ phía master chia làm trường hợp : - tag = , trình nhận mảng body-root hàng đợi nên mảng có kích thước cố định, slave khởi tạo mảng body-root với kích thước cho trước, thực giải nén đệm liên tục nhận thành mảng cấu trúc thực việc so khớp hàm searchHeadBody thuật toán - tag = 1, trình nhận mảng body-root lại chưa đưa vào hành đợi, slave đợi nhận thêm kích thước mảng body-root sau đo khởi tạo mảng Bước phần tag = - tag = 2, thông báo kết thúc master, slave thực nốt phần Page 48 Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu so khớp không chờ master gửi Các trình gửi/nhận phía slave để chế độ blocking nhận mảng body-root master, trình tính toán bắt đầu Do slave chồng chéo việc truyền thông tính toán Với kết thu được, ta thấy thuật toán song song cho Head Body chưa hiệu Với match ratio 0.33, thuật toán song song cho hiệu cao không nhiều thuật toán hầu hết độ dài xâu tiền tố Trong trường hợp tồi match ratio 1, thuật toán song song cho hiệu thấp thuật toán Điều số body-root sinh nhiều dẫn đến lượng liệu master phải gửi tới slave lớn, lượng liệu không body-root mà phải gửi xâu kí tự có chiều dài chiều dài lớn từ mẫu B-NFA Khi số body-root tăng lượng liệu cần gửi liệu đầu vào Như master chịu chi phí tính toán H-DFA chi phí truyền thông Với phương pháp song song Master-Slave, master thực việc gửi/nhận Do vậy, việc song song thuật toán Head Body chế truyền thông điệp không hiệu Trong tương lai, kiểm tra việc song song thuật toán chế khác để giảm loại bỏ chi phí truyền thông chế chia sẻ nhớ (OpenMP…) c Giai đoạn tìm kiếm Giai đoạn tìm kiếm chia thành hai phần : phía master phía slave Phía Master Gọi numP số slave đầu tiên, master gửi numP đoạn subtext cho slave Mỗi đoạn subtext chia lồng nhau, tức phần cuối đoạn subtext (n-1) phần đầu đoạn subtext (n) chung đoạn text có độ dài maxP-1, với maxP chiều dài lớn từ mẫu từ điển Gọi sb kích thước quy định trước subtext,offset vị trí lấy subtext đoạn text để gửi ta chia làm hai trường hợp: 1) Nếu offset > 0, tức subtext vị trí gửi đầu đoạn text offset đoạn subtext thứ tính offset = offset+sb Page 49 Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu 2) Nếu offset > 0, tức subtext thứ 3, 4… vị trí gửi offset-(maxP-1) offset đoạn subtext sau tính offset = offset+sb+maxP-1 Ngoài tham số độ dài, phía Master có tham số active dùng để số slave giao subtext Mỗi lần gửi thành công subtext tới slave tham số tăng lên Sau master giao hết numP đoạn subtext cho slave chuyển sang giai đoạn chờ nhận kết gửi tới slave trạng thái idle (trạng thái xử lý xong chờ nhận subtext mới) Mỗi slave thực xong gửi biến count cho master để thông báo Master nhận thông báo dựa vào biến trạng thái MPI_Status status để biết slave đồng thời biến active giảm sender=status.MPI_SOURCE; Nếu subtext master gửi tiếp subtext offset tương ứng tới slave tăng biến active lên Trường hợp ngược lại master gửi thông báo finish tới slave Quá trình kết thúc active = 0, tức số slave giao subtext hết Phía Slave Phía Slave sau nhận offset đoạn subtext mà master gửi tiến hành tìm kiếm thuật toán HeadBody So với thuật toán HeadBody phía tu ần tự, thuật toán phía slave cần tham số offset để tính vị trí mẫu tìm text: void searchHeadBody( … ,int offset) Các từ mẫu Slave tìm kiếm ghi vào file kết quả, trình so khớp hoàn tất Slave gửi thông báo count phía master để chờ nhận subtext khác Quá trình chờ nhận so khớp kết thúc Slave nhận thông báo finish từ phía master Page 50 Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu Chƣơng - Kết thu đƣợc từ thực nghiệm ứng dụng toán 3.1 Kết thu đƣợc từ thực nghiệm So sánh hiệu thuật toán song song với tỉ lệ so khớp kích thước subtext khác Hiệu (MB/s) Song song: rate=0.3 Tuần tự: rate=0.3 Song song: rate=1 Tuần tự: rate=1 Kích thước (KB) Hình 6: Biểu đồ so sánh hiệu phương pháp song song HeadBody với tỉ lệ so khớp kích thước subtext Để so sánh hiệu năng, ta sử dụng từ điển tiếng anh thông dụng với 200.000 từ Tỉ lệ so khớp đại diện cho trường hợp tồi tồi thực tế Trường hợp tồi tỉ lệ 1, tức từ text từ mẫu Trong trường hợp tồi thực tế, match ratio 0.3 Ngoài ra, kích thước subtext tham số mà ta có Page 51 Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu thể thay đổi ảnh hưởng đến hiệu thuật toán song song Hiệu đo lượng liệu mà thuật toán so khớp giây Số bxl sử dụng 2, chiều dài xâu tiền tố Hiệu thuật toán song song với số processor khác Hiệu (MB/s) Song song: rate=0.3 Tuần tự: rate=0.3 Song song: rate=1 Tuần tự: rate=1 Processors Hình 7: Biểu đồ so sánh hiệu phương pháp song song với số processor khác Dựa đồ thị, ta thấy hiệu thuật toán song song với processor thấp so với thuật toán Điều với processor, có processor slave làm nhiệm vụ tìm kiếm nên khối lượng tính toán với phía tuần tự, phía slave phải chịu thêm chi phí trao đổi subtext kết với master nên tổng thời gian tính tăng lên so với Với số processor 3, số slave tăng lên làm giảm khối lượng subtext cần xử lý thời gian truyền thông slave Kết ta có hiệu tăng rõ rệt đồ thị Page 52 Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu Với số processor 5, 6, 7, - hiệu không thay đổi nhiều Điều có nhân vật lý nên với số processor lớn 4, nhân dù xử lý lượng liệu phải chạy với 2,3 luồng xen kẽ So sánh phương pháp Head-Body song song Aho-Croatsick song song máy Hiệu (MB/s) Song song HB Song song AC Kích thước (KB) 10 20 30 40 50 60 Hình 8: Biểu đồ so sánh phương pháp HB song song AC song song Từ đồ thị thấy: thuật toán HB sinh automat có kích thước nhỏ thuật toán AC nên giai đoạn tiền xử lý HB có thời gian tính toán thấp nhiều Điều có ý nghĩa với hệ thống mà số lượng từ mẫu thay đổi nhiều liên tục So sánh phương pháp HB song song - AC song song môi trường nhiều máy Page 53 Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu Chuẩn bị môi trường nhiều máy: Kết thực 02 máy ảo Linux cài hệ điều hành Ubuntu 11.10 - Trên máy cài sẵn: GCC/G++ 4.6.1, GFORTRAN, MPICH 3.0.4 - Các máy tính đảm bảo thông mạng với Cấu hình kết nối máy: Chỉnh sửa file /etc/hosts máy: 127.0.0.1 localhost 192.168.1.3 ub0 192.168.1.55 ub1 Chỉnh sửa file /et/hostname: Máy 01: root@ub0:/mirror# cat /etc/hostname ub0 Máy 02: root@ub1:/mirror# cat /etc/hostname ub1 Cài đặt NFS Mục đích chia sẻ file chương trình máy Ta coi máy ub0 máy biên dịch chương trình, máy ub0 cài nfs-server root@ub0:sudo apt-get install nfs-server Trên máy khác cài nfs-client: root@ub1:sudo apt-get install nfs-client Cấu hình chia sẻ folder chứa file chương trình Cấu hình cho thư mục /mirror chứa toàn file chương trình Thêm dòng sau vào cuối file /etc/exports tất máy Page 54 Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu /mirror *(rw/sync) Kết nối máy trạm (ub1) tới máy (ub0) root@ub1:sudo mount ub0:/mirror /mirror Định nghĩa user chạy chương trình MPI root@ub0: useradd mpiu root@ub0: chown mpiu /mirror Cài đặt SSH server Chạy lệnh sau tất các máy: root@ub0: apt-get install openssh-server root@ub1: apt-get install openssh-server Thiết lập password cho giao tiếp SSH máy Tạo key cho user mpiu: ssh-keygen -t rsa Thêm key tạo vào file authorized_keys: cd ssh cat id_pub.dsa >> authorized_keys Kiểm tra SSH: Từ máy trạm (ub1) chạy lệnh nhập pass login vào máy hoàn tất bước chuẩn bị môi trường: ssh ub1@ub0 10 Cấu hình chia sẻ processor máy: Tạo file machinefile với nội dung: ub1:2 # this will spawn process on ub1 ub0:2 # this will spawn process on ub0 Page 55 Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu Đồ thị áp dụng với processor máy chạy song song Hiệu (MB/s) Song song HB Song song AC Kích thước (KB) 10 20 30 40 50 Hình 9: Biểu đồ so sánh hiệu phương pháp HB song song AC song song môi trường nhiều máy Nếu ta khảo sát ảnh hưởng độ dài xâu tiền tố đến hiệu thuật toán Head Body môi trường song song Số bxl sử dụng (một máy) chiều dài xâu tiền tố thay đổi từ tới Các file mẫu không đổi Với kết thu chạy nhiều máy ta thay có khác biệt rõ rệt với chạy máy, hiệu thu cao – nhiên, môi trường thực máy ảo Ubuntu nên kết chưa phản ánh hết (Dễ nhận thấy file đầu vào có dung lượng lớn hiệu suất đạt bắt đầu chững lại) Page 56 Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu 3.2 Ứng dụng toán 3.2.1 Kiến trúc IDS Như giới thiệu toán MSM có vai trò quan trọng nhiều ứng dụng thực tế, đặc biệt hệ thống phát xâm nhập mạng IDS Đây hệ thống phần cứng phần mềm có chức giám sát hệ thống máy tính hay hệ thống mạng, phân tích lưu thông mạng để tìm dấu hiệu xâm nhập bất hợp pháp cảnh báo cho hệ thống, người quản trị IDS phát dựa dấu hiệu đặc biệt nguy biết (giống cách phần mềm diệt virus dựa vào dấu hiệu đặc biệt để phát diệt virus) hay dựa so sánh lưu thông mạng với baseline (thông số đo đạc chuẩn hệ thống) để tìm dấu hiệu khác thường Những dấu hiệu đặc biệt nguy nhiều nhiệm vụ IDS phải so sánh liệu mà thu thập với dấu hiệu Đây vấn đề giải toán MSM Cấu trúc IDS bao gồm thành phần sau : Hình 10 Mô hình kiến trúc hệ thống IDS 3.2.2 Kiến trúc IDS toán so khớp xâu Bài toán MSM nằm thành phần phát kiến trúc Trong module này, sách phát coi tập từ Page 57 Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu điển liệu đầu vào cần so sánh với sách lấy từ thành phần thu thập thông tin Một hệ thống IDS thực tế phức tạp Mỗi thành phần kết hợp nhiều chế xử lý khác nhau, đảm bảo hệ thống hoạt động xác trước hàng ngàn sách (luật) cập nhật hàng tháng mà không ảnh hưởng đến tốc độ truyền thông mạng Trong khuôn khổ luận văn này, tác giả tham vọng xây dựng hệ thống IDS đầy đủ Snort hay AIDE…Với mục đích áp dụng lý thuyết trong: Thu thập thông tin Phát Phản ứng Hệ thống bảo vệ toán MSM vào thực tế, người viết xây dựng chương trình bao gồm thành phần thu thập thông tin, phát phản ứng thể đơn giản nhiều Đến đây, tác giả xin kết thúc chương – Kết thực nghiệm ứng dụng toán, chương phần kết luận hướng phát triển Page 58 Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu Chƣơng - Kết luận hƣớng phát triển 4.1 Kết luận Bài toán Multi String Matching vấn đề quan trọng, nghiên cứu nhiều năm, giải nhiều phương pháp, bao gồm việc thực toán thuật toán tảng khác Luận văn trình bày tổng quan toán Multi String Matching ứng dụng thực tế toán Luận văn trình bày phương pháp để giải toán, hai môi trường song song Với sở lý thuyết có được, luận văn tiến hành cài đặt, phân tích so sánh hiệu thuật toán nhiều liệu Trong môi trường song song, tác giả thực việc song song hóa thuật toán phương pháp khác thu số kết Các thuật toán thực môi trường cluster, với nhiều máy (ít máy), kết thu từ thực nghiệm tốt có khác biệt với việc thực máy 4.2 Hƣớng phát triển Trong trình nghiên cứu, đạt số kết định tác giả thấy nhiều vấn đề nghiên cứu thêm phát triển thời gia tới: - Cải thiện thuật toán, thực song song kiến trúc chia sẻ nhớ nhắm giảm bớt lượng liệu chia sẻ giửa H-DFA B-DFA - Tuy thực thiện cluster nhiều máy máy thực song song xử lý nhau, chưa có máy (Master) quản lý máy trạm, phân phối file subtext cho hợp lý, nhận kết xử lý từ máy trạm gửi tổng hợp Page 59 Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu - Phương pháp Master-Slave đưa cách lập lịch trình Master gửi subtext tới Slave, chưa gửi lúc tới nhiều Slave Và Master chủ động gửi subtext tới Slave rảnh rỗi chưa thực cân tải động Cấn có chế phát Slave lỗi (treo chương trình phần mềm, lỗi vật lý, …), biết Slave có đường truyền tốt, có xử lý manh, … để có phương pháp gửi subtext tới Slave tốt Mặt khác Slave chưa có liên hệ với nhau, cải thiện phương pháp để tối ưu - Với phương pháp Head Body, chiều dài xâu tiền tố tham số thay đổi, thực tế có nhiều từ điển khác nhau, số lượng chiều dài từ mẫu, cần có phương pháp nghiên cứu để tính chiều dài tối ưu từ điển Page 60 Nghiên cứu thuật toán song song môi trường MPI cho toán so khớp xâu TÀI LIỆU THAM KHẢO [1] A V Aho and M J Corasick, “Efficient String Matching: An Aid to Bibliographic Search”, Communications of the ACM, vol 18, no 6,pp.333-340, 1975 [2] Atonino Tumeo, Oreste Villa and Daniel G Chavarria-Miranda, “Aho-Corasic String Matching on Shared andDistributed-Memory Parallel Architectures”, Parallel and Distributed Systems, pp.436-443, March 2012 [3] Maxime Crochemore and Wojciech Rytter, “Text Algorithms”, Oxford University Press, 1997 [4] Panagiotis D Michailidis and Konstantinos G Margaritis, “ Performance Evaluation of Multiple Approximate String Matching Algorithms implemented with MPI Paradigm in an Experimental Cluster Environment” , Panhellenic Conference, pp 168-172, August 2008 [5] Vassilis Pnevmatikatos, Dimopoulos, Ioannis Papefstathiou and Dionisios “A Memory-Efficient Reconfigurable Aho-Corasick FSM Implementation for Instrusion Detection Systems”, Embedded Computer System: Architectures, Modeling and Simulation, pp.186-193, July 2007 [6] Yi-Hua E.Yang, Viktor K Prasanna, and Chenqian Jiang, “Head- Body Partitioned String Matching for Deep Packet Inspection with Scalable and Attack-Resilient Performance” , Parallel & Distributed Processing (IPDPS), pp.1-11, April 2010 [7] Weirong Jiang, Yi-Hua E Yang and Viktor K Prasanna, “Scalable Multi-Pipeline Architecture for High Performance Multi-Pattern String Matching”, Parallel & Distributed Processing, pp.1-12, April 2010 Page 61 ... toỏn MSM mụi trng song song 43 2.2.1 Ci t thut toỏn mụi trng song song MPI 43 2.2.2 Phng phỏp Head Body mụi trng song song 43 2.2.3 Phng phỏp song song Master Slave cho thut toỏn Head... cu thut toỏn song song trờn mụi trng MPI cho bi toỏn so khp xõu 1.2.4 Thc hin bi toỏn so khp xõu mụi trng song song 1.2.4.1 í tng ca phng phỏp song song Master Slave nõng cao tc cho bi toỏn... vi t l so khp v kớch thc subtext 51 Hỡnh 7: Biu so sỏnh hiu nng phng phỏp song song v tun t vi s processor khỏc 52 Hỡnh 8: Biu so sỏnh phng phỏp HB song song v AC song song

Ngày đăng: 25/07/2017, 21:47

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. A. V. Aho and M. J. Corasick, “Efficient String Matching: An Aid to Bibliographic Search”, Communications of the ACM, vol. 18, no. 6,pp.333-340, 1975 Sách, tạp chí
Tiêu đề: Efficient String Matching: An Aid to Bibliographic Search
[2]. Atonino Tumeo, Oreste Villa and Daniel G. Chavarria-Miranda, “Aho-Corasic String Matching on Shared andDistributed-Memory Parallel Architectures”, Parallel and Distributed Systems, pp.436-443, March 2012 Sách, tạp chí
Tiêu đề: Aho-Corasic String Matching on Shared andDistributed-Memory Parallel Architectures
[4]. Panagiotis D. Michailidis and Konstantinos G. Margaritis, “ PerformanceEvaluation of Multiple Approximate String Matching Algorithms implemented with MPI Paradigm in an Experimental Cluster Environment” , Panhellenic Conference, pp. 168-172, August 2008 Sách, tạp chí
Tiêu đề: Performance Evaluation of Multiple Approximate String Matching Algorithms implemented with MPI Paradigm in an Experimental Cluster Environment
[5]. Vassilis Dimopoulos, Ioannis Papefstathiou and Dionisios Pnevmatikatos, “A Memory-Efficient Reconfigurable Aho-Corasick FSM Implementation for Instrusion Detection Systems”, Embedded Computer System: Architectures, Modeling and Simulation, pp.186-193, July 2007 Sách, tạp chí
Tiêu đề: A Memory-Efficient Reconfigurable Aho-Corasick FSM Implementation for Instrusion Detection Systems
[6]. Yi-Hua E.Yang, Viktor K. Prasanna, and Chenqian Jiang, “Head- Body Partitioned String Matching for Deep Packet Inspection with Scalable and Attack-Resilient Performance” , Parallel & Distributed Processing (IPDPS), pp.1-11, April 2010 Sách, tạp chí
Tiêu đề: Head-Body Partitioned String Matching for Deep Packet Inspection with Scalable and Attack-Resilient Performance
[7]. Weirong Jiang, Yi-Hua E. Yang and Viktor K. Prasanna, “Scalable Multi-Pipeline Architecture for High Performance Multi-Pattern String Matching”, Parallel & Distributed Processing, pp.1-12, April 2010 Sách, tạp chí
Tiêu đề: Scalable Multi-Pipeline Architecture for High Performance Multi-Pattern String Matching

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w