Nhu cầu khai thác, tìm kiếm thông tin của con người ngày càng cao thì việc nâng cao tốc độ sắp xếp dữ liệu, phục vụ cho quá trình tìm kiếm thông tin lại càng trở nên quan trọng hơn bao giờ hết. Có rất nhiều thuật toán có thể giải quyết bài toán nâng cao tốc độ sắp xếp dữ liệu, bài báo này tập trung nghiên cứu và ứng dụng lập trình song song cài đặt thuật toán PSRS (Parallel Sorting by Regular Sampling- Sắp xếp song song dựa trên mẫu chuẩn). Tác giả sử dụng hệ thống IBM Linux Cluster 2350 để mô phỏng, thuật toán PSRS đã cho kết quả tốc độ sắp xếp dữ liệu tốt hơn khi chạy trên hệ thống xử lý tuần tự.
NÂNG CAO TỐC ĐỘ SẮP XẾP DỮ LIỆU VỚI THUẬT TOÁN PSRS TRÊN HỆ THỐNG XỬ LÝ SONG SONG ThS Bùi Thanh Tuyền Giảng viên Khoa Cảnh sát phòng, chống tội phạm sử dụng công nghệ cao Học viện Cảnh sát nhân dân Ngày tòa soạn nhận báo: 06/03/2020 Ngày phản biện đánh giá:16/03/2020 Ngày báo duyệt: 26/03/2020 Tóm tắt: Nhu cầu khai thác, tìm kiếm thơng tin người ngày cao việc nâng cao tốc độ xếp liệu, phục vụ cho q trình tìm kiếm thơng tin lại trở nên quan trọng hết Có nhiều thuật tốn giải tốn nâng cao tốc độ xếp liệu, báo tập trung nghiên cứu ứng dụng lập trình song song cài đặt thuật toán PSRS (Parallel Sorting by Regular Sampling- Sắp xếp song song dựa mẫu chuẩn) Tác giả sử dụng hệ thống IBM Linux Cluster 2350 để mô phỏng, thuật toán PSRS cho kết tốc độ xếp liệu tốt chạy hệ thống xử lý Từ Khóa: PSRS, Xử lý song song, Sắp xếp liệu lớn… Giới thiệu thuật toán xếp song song dựa mẫu chuẩn PSRS So với thuật tốn xếp thơng thường, PSRS thuật toán xếp song song với nhiều ưu điểm Nó giữ ngun kích thước mảng, giữ cân tải tác vụ, tránh việc truyền thông lặp lại khóa PSRS kết hợp thuật tốn xếp tuần tự, trình trao đổi liệu bước trộn song song Mặc dù thuật toán xếp trộn sử dụng được, PSRS sử dụng thuật toán xếp Quicksort liên tiếp cách trộn Thuật toán phù hợp với hầu hết mơ hình song song sử dụng với số xử lí tùy ý Tác giả mơ tả, tính tốn độ phức tạp, mơ giải thuật PSRS phần tiếp theo.[2] Giải thuật PSRS Thuật tốn PSRS bao gồm có pha phân biệt PSRS sử dụng mơ hình truyền thông điệp để gửi, nhận, truyền thông, phân chia tập hợp liệu Trên hệ thống sử dụng p xử lí xếp mảng có kích cỡ n, đó, thuật tốn trải qua bước thực sau [2]: Bước Khởi tạo ban đầu Với p xử lí, lựa chọn xử lí làm TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CƠNG NGHỆ cách lấy phần tử có số 𝑝𝑝 + h cỡ 𝑛𝑛 h chọn có khoảng cách Cụ thể, 𝑓𝑓, 2𝑝𝑝 + 𝑓𝑓, … , (𝑝𝑝 − 1)𝑝𝑝 + 𝑓𝑓 với 𝑓𝑓 = gốc (bộ xử lí 0), khởi tạo liệu với+kích Bước Tập hợp liệu cuối i chia phẩn tử vị trí 1,bộ𝑤𝑤dữ + 1, 2𝑤𝑤 liệu, xếp 𝑝𝑝 cỡ n ⌊2⌋ Tiếp Bộ xử truyền lí gốc tập hợp tất liệu 𝑛𝑛 theo, xử lí gốc chọn mẫu chuẩn ] 1, Bước , (𝑝𝑝 − 1)𝑤𝑤 + với 𝑤𝑤 = [ 2 Phân chia liệu, 𝑝𝑝sắp xếp cục lắp ráp danh sách xếp phần tử chốtbộnày 𝑝𝑝 −danh sách xếp gồm n lựa chọn mẫuthơng chuẩn xử đến lí thành chọnban để làm a liệu đầu mẫu cho 𝑝𝑝 phần tử ban đầu Thuật toán kết thúc Phân chia liệu banbộđầu p xử cho lí cịn lại.xử lí lí cụcxếp Mỗi bộsắp xử Tập líxếp tập liệu với Tính toán độ phức tạp thuật toán hợp vàcục trộn mẫu, 6bộ xửBước PSRS 𝑛𝑛 Phân thước cáchBước sử dụng thuậtchia toándữ liệu cục kích chọn thướcphần lựa tử chốt h với kích 𝑝𝑝 Độ phức tạp giải thuật xem xét xử lí dựa phần tử chốt Sau đó, xử lí lựa ba yếu tố: Độ phức tạp thời gian, độ n thuậtQuickSort tốnBộQuickSort xử lítửgốc tập hợp tấtCụ cảthể, pcóphần từcách tập để phức tạp khơng gian sử dụng, độ độ phức ính chọn chọn khoảng đềuliệu ữó, Mỗi xử lí phân chia làm mẫu Các mẫu lựa chọn có khoảng xử lí lựa truyền thơng phần thành việc tính tốn Thờitử gianTrong truyềnđó, độ thành 𝑝𝑝 chọn phân lớplàm dựa mẫu vào 𝑝𝑝ở− phầntạp phầnphẩn tử đãtử giải các vị trí 1, 𝑤𝑤 + 1, 2𝑤𝑤 + cách Cụ thể, phẩn tử vị trí phức tạp không gian sử dụng tổng số thông yêu cầu cho tửcủa chốt chọn liệu cục sắplượng xếp củalànóthời gian ní tử từ tập liệu không gian yêu cầu chuyển qua tất 𝑝𝑝 xử lí Điều quan trọng cần để ý 𝑛𝑛 ] xử lí để di chuyển tất điệp Thời 1,mẫu , (𝑝𝑝 − 1)𝑤𝑤 + với = [𝑝𝑝2 ] được 1,w+1,2w+1, ,(p-1)w+1 với 𝑤𝑤w= xử lí để hồn thành việcthơng tính tốn , mẫu Các lựa Bước Tập hợp trộn phân tập hợp phần tử mẫu chọn để làm mẫu gian truyền thông thời gian yêu cầu cho q trình tính tốn.[1] xử lí chọn để làmlớpmẫu xử lí để di chuyển tất thông điệp Bước Tập hợp trộn xử lí đã3.được xếp Có 𝑝𝑝 tậpmẫu, hợp lựa q trình tính tốn.[1] chọn phần tử chốt.Bộ xử lí thứ 𝑖𝑖 tập hợp liệu n 3.xếp hợp sử dụng thuậtcáctoán Bước Tập trộn mẫu, ó Bộ xử lí gốctrong tập hợp phân lớptất thứcả𝑖𝑖(1 ≤ phần 𝑖𝑖 ≤ 𝑝𝑝)tử từ tử chốt đểchọn trộn chúng lạimẫu vớiởnhau 𝑝𝑝2Điều ình trộn p Từ lựa chọnphần làm xử lí xử lí khác Mỗi phân lớp quan trọng cần để ý tập hợp phần tử xếp này, lựa chọn trộn lại với phần tử mẫu xửsẽ lívàđã xếp Bộ xử lí gốcxếp tập hợp tấtnhau Có p tập hợp xếp sử dụng thuật 𝑝𝑝 − giá trị để làm phần tử chốt Bước Tập hợp dữnhau liệu mẫu cuối cáctrộn phần chúng chọn làm ởp2 toán để tử trộn lại với Từ cách xếp phần tử lựa có phần lấy tử này, chọnsốra𝑝𝑝p+ -1 giá 𝑝𝑝 xử lí Điều quan trọng cần để ý Bộ xử lí gốc tập hợp trị để làm phần tử chốt cách lấy tất cáccả đó, 𝑓𝑓, 𝑓𝑓 = 2𝑝𝑝 + 𝑓𝑓, … , (𝑝𝑝 − 1)𝑝𝑝 + 𝑓𝑓 với phần tử cótập chỉhợp số p+f,2p+f,…,(p-1)p+f f= liệu lắpphần ráp danh sách tử mẫu tạivới p 𝑝𝑝 xử lí thành danh sách xử lítheo, xếp xếp 𝑝𝑝truyền tập thông hợp ⌊ ⌋bộ Tiếp theo, bộxử xử gốcsẽCó sẽtruyền Tiếp lí lígốc yền ộ ộ lí 𝑝𝑝 c g xếp gồm n phần tử ban đầu xếpnày đến sử dụng toán cácđược phần tử chốt p-1 thuật xử lí cịn lại thơng phần tử tốn chốtkết đến 𝑝𝑝 − Thuật thúc Bước Phân chialạidữ cụcTừ bộ𝑝𝑝tại trộn để 4.trộn chúng vớiliệu xử lí cịn lại xử lí dựa phần tử chốt phần tử xếp này, lựa chọn Mỗi xử lí phân chia liệu cục Bước chia cụctử bộchốt 𝑝𝑝 −4.1Phân giá trị để làmliệu phần xếp thành p phân lớp dựa vào p-1 phần Tính tốnđã độ phức tạp thuật tốn tử chốt cách xử lí dựa phần tửchọn chốt lấy phần tử có số 𝑝𝑝 + PSRS t Bước Tập hợp trộn phân lớp phức giảidữ 𝑓𝑓thuật = 2𝑝𝑝 +xử 𝑓𝑓,bộ… , (𝑝𝑝 Độ 1)𝑝𝑝 +tạp𝑓𝑓 với Mỗi lí− phân chia 𝑓𝑓, lí.xử a xem xét ba yếu tố: Độ phức tạp xếp liệuBộ 𝑝𝑝cục iđược củatrong raphân xửbộ lí thứ tậpsắp hợpxếp liệu a ⌊thứ ⌋ i(1≤i≤p) Tiếp theo, bộbộ xửxửlíđộ gốc sẽMỗi truyền thời gian, phức tạp không lớp từ lí khác phân n a lớp sắpsửxếp trộn gian dụng, độ lại độ với phức tạp thông phần tử chốt đến 𝑝𝑝 − truyền thơng phần tử Trong đó, độ o 𝑝𝑝 bộ4xửTẠP lí CHÍ cịnKHOA lại HỌC phức tạp khơng gian sử dụng QUẢN LÝ VÀ CƠNG NGHỆ cục ằng tổng số lượng không gian yêu cầu Bước Phân chia liệu cục 3.1 Độ phức tạp thời gian Trong pha thứ giải thuật, xử lí thực xếp liệu dụng+thuật có kích cỡ 𝑂𝑂 (Sửlog 𝑝𝑝 + tốn + trộn log 𝑝𝑝 ) ầu tính phađãnày 𝑝𝑝 trộn tốn 𝑝𝑝 kích danh sách đượcmột sắpdanh xếp với cỡ 𝑝𝑝 thành sách 𝑝𝑝 𝑝𝑝 𝑝𝑝 𝑝𝑝 𝑛𝑛 𝑛𝑛 𝑛𝑛 𝑛𝑛 trường hợp u cầu thời gian gian u cầu tính tốn pha 𝑂𝑂 ( log + 𝑝𝑝 + 𝑛𝑛+ log 𝑝𝑝 ) bằngkích QuickSort Kích thước trường hợpthước yêu cầu thờikhi gian 2được 𝑛𝑛 cỡsắp 𝑝𝑝xếp thành danh sách 𝑝𝑝có kích 𝑝𝑝 𝑝𝑝 mà 𝑝𝑝 𝑛𝑛sau danh sách 𝑛𝑛 sau với kích cỡ 𝑝𝑝 , 𝑝𝑝= 𝑂𝑂( (log ) + log 𝑝𝑝 là: 𝑂𝑂( log 𝑝𝑝) 𝑛𝑛 thời 𝑛𝑛 3.1 Độ tạp gian 𝑝𝑝 𝑝𝑝 𝑛𝑛𝑝𝑝 𝑛𝑛 với kích cỡ 𝑝𝑝2 ,sau sau 𝑛𝑛 iệu 𝑛𝑛sắp xếp phức xử 1là 𝑂𝑂( log 𝑝𝑝) chọn 𝑝𝑝lí − phần tử làm chốt Sử (log ) + log = 𝑂𝑂( 𝑝𝑝 trộn mỗi𝑝𝑝 danh sách bộ𝑝𝑝xử lí 𝑝𝑝 𝑂𝑂 ( log Trong + 𝑝𝑝)pha 𝑝𝑝 + 𝑝𝑝 𝑛𝑛 thứ𝑛𝑛2 giải thuật, xử 𝑛𝑛 +1 𝑝𝑝chọn 𝑝𝑝ra 𝑂𝑂 QuickSort Kích 𝑛𝑛 dữlí song 𝑝𝑝 − 1thuật phần tử làm chốt Sử thước ( log + 𝑝𝑝) liệu mà sau k danh sách có kích thước dụng tốn trộn, q trình xử lí Tổng thời gian xử song lí thực xếp QuickSort chọn 𝑝𝑝 phần tử𝑝𝑝làm 𝑝𝑝mẫu Do thời 𝑝𝑝2 Sử dụng thuật tốn trộn có kích cỡ + 𝑝𝑝 + 𝑛𝑛 Tổng 𝑝𝑝 thời gian xử dụng thuật tốn trộn, q trình xử lí2lí 𝑛𝑛 lí song song liệu xử lí sau Kích thước liệu xử trộn thực hết 𝑂𝑂(𝑝𝑝 log 𝑝𝑝) là: g pha thứ 3, xử lí gốc gian u cầu tính tốn pha = 𝑂𝑂(mỗi 𝑙𝑙𝑙𝑙𝑙𝑙danh 𝑛𝑛 +sách 𝑝𝑝 + 1) 𝑝𝑝 trộn xử lí gốc là: 𝑝𝑝 Trong pha thứ 3, xử lí 𝑛𝑛 trường hợp yêu cầu thời gian trộn hết 𝑂𝑂(𝑝𝑝 𝑝𝑝).Do đóthực chọn pvới phần tử làm mẫu Tổng thờixếp gian yêu cầu là:log hà:sách đãsau = 𝑛𝑛 + 𝑝𝑝 +𝑛𝑛1) 𝑛𝑛 𝑛𝑛 là: Do 𝑛𝑛 thời 𝑛𝑛 𝑂𝑂(𝑝𝑝 𝑙𝑙𝑙𝑙𝑙𝑙 chọn 𝑝𝑝 phần tử làm mẫu có kích 𝑛𝑛 thời gian u cầu tính tốn pha trộn 𝑝𝑝 danh sách xếp 𝑂𝑂 (vớilog + 𝑝𝑝 +𝑛𝑛log+𝑝𝑝) 𝑝𝑝 )𝑛𝑛 𝑛𝑛 cỡ 𝑝𝑝 Sử dụng thuật toán trộ Tổng thời giansách yêu cầu là: 𝑂𝑂( 𝑛𝑛𝑝𝑝 logDo ta có hệ số tăng tốc 𝑝𝑝 thành danh 𝑝𝑝 𝑝𝑝 𝑝𝑝 gian2 log yêu𝑝𝑝cầu 𝑂𝑂 𝑝𝑝( pha lognày+ 𝑝𝑝 + + log 𝑝𝑝 ) )) + (𝑝𝑝tính − 1tốn 𝑂𝑂(𝑝𝑝 𝑛𝑛 𝑛𝑛 kích cỡ là𝑂𝑂𝑝𝑝(thành danh sách 𝑝𝑝 𝑛𝑛 Do 𝑝𝑝 𝑝𝑝 có Do tatatrong có hệ𝑝𝑝trường số tốc Speedup đượcthời gi nàytốcyêu cầu log + 𝑝𝑝) 𝑛𝑛 hệ tăng số hợp tăng Speedup tính bằng: sau i kích cỡ 𝑝𝑝 , ( ) 𝑝𝑝 𝑝𝑝 𝑂𝑂(𝑝𝑝 log là:𝑝𝑝 + 𝑝𝑝2 − ) = 𝑂𝑂(tính (log ) + log bằng: 𝑛𝑛xử𝑝𝑝lí𝑛𝑛 song 𝑛𝑛 Tổng song xếp với kích cỡ làpha 𝑝𝑝 4, , sau 𝑝𝑝 thời 𝑝𝑝=gian Trong xử lí phân Speedup tính bằng: 𝑂𝑂( (log ) +𝑝𝑝)log 𝑝𝑝 𝑂𝑂( log − phần tử làm chốt Sử 𝑝𝑝 𝑝𝑝 𝑛𝑛 log 𝑛𝑛 thứ 3, xửxử lílígốc trộn danh 𝑛𝑛 phân 𝑛𝑛 p 𝑛𝑛 pha là:+ 𝑝𝑝 + 𝑆𝑆(𝑛𝑛, 𝑝𝑝) =𝑝𝑝 pha thứ xử Trong 4,3,tử lígốc chọnTrong raTrong 𝑝𝑝chia − 1pha phần tử làm chốt Sử phần xếp Thời 𝑂𝑂 ( cỡ log p+thành 𝑝𝑝) 𝑛𝑛 𝑛𝑛 log𝑛𝑛𝑛𝑛 t toánsách trộn,đãq sắpxử xếplívới kích 𝑝𝑝 trình 𝑝𝑝 làbộ 𝑝𝑝 xử lí2 yêu cầu + 𝑝𝑝cặp + 1bộ(log + log 𝑝𝑝 + 𝑝𝑝 + 1) 𝑛𝑛 nhớ𝑝𝑝 đệm rộn 𝑝𝑝 danh sách xếpvới với danh sách xếp kích dụng thuật tốn trộn, q trình xử lí cỡ 𝑛𝑛p 𝑛𝑛𝑆𝑆(𝑛𝑛, 𝑛𝑛𝑝𝑝) = 𝑛𝑛 𝑛𝑛 𝑛𝑛𝑝𝑝𝑛𝑛 Tổng thời gian xử líQ songtrình son phần tửđãđược xếp Thời chia 𝑛𝑛 𝑝𝑝 xử lí yêu hực hếtđó𝑂𝑂(𝑝𝑝 log 𝑝𝑝) (log + log 𝑝𝑝 + 𝑝𝑝 + 1) , sau chọn p-1 phần tử làm chốt Sử 𝑂𝑂 ( log + 𝑝𝑝 + + log 𝑝𝑝 ) = kích 𝑂𝑂( cỡ 𝑙𝑙𝑙𝑙𝑙𝑙 𝑛𝑛 +[2] 𝑝𝑝 + 1) cầnmột thiết là: 𝑂𝑂 ( 2) có 𝑝𝑝 log 𝑛𝑛 hành hệ thố kích 𝑝𝑝gian thành danh sách 𝑝𝑝gốc 𝑛𝑛𝑝𝑝 𝑝𝑝sẽ 𝑝𝑝là: 𝑝𝑝 trộncỡdụng thực hiệntrộn, hết 𝑂𝑂(𝑝𝑝 logxử𝑝𝑝) 𝑝𝑝 Trong pha thứ 3, 𝑝𝑝 𝑝𝑝xửlàlí𝑝𝑝 thuật tốn q trình lí trộn 𝑛𝑛 = 𝑂𝑂( 𝑙𝑙𝑙𝑙𝑙𝑙 𝑛𝑛 + 𝑝𝑝 + 1) = có kích cỡ gian gian yêu cầu là: cần thiết là:O(𝑂𝑂p2(logp) ) Tổng thời gian yêu 𝑝𝑝 log 𝑛𝑛 + 𝑝𝑝 + thực hết 𝑝𝑝 log 𝑛𝑛 2350: 𝑛𝑛 𝑛𝑛 𝑝𝑝 ắpTổng xếpthời với gian kíchyêu cỡtrộn 𝑝𝑝𝑝𝑝 sau cầu là:,danh sáchđóđã3.3 xếptạp với= 𝑂𝑂(= (log Độ thơng 𝑛𝑛 ) +𝑛𝑛log 𝑝𝑝 𝑛𝑛 𝑛𝑛 cầu là: Do líđó ta𝑖𝑖 có 3.2 hệ truyền số phức tăng tốc Trong pha thứ 5, xử thứphức log 𝑛𝑛 𝑝𝑝 +không 𝑝𝑝 +gian 𝑝𝑝 𝑝𝑝+ 𝑂𝑂 ( log + + 3.3 logĐộ 𝑝𝑝 ) Độ tạp ( ) ) kích 𝑝𝑝 logra𝑝𝑝 + 3.2 Độ phức tạp về𝑝𝑝không gian chọn 𝑝𝑝 −𝑝𝑝1− phần tử làm chốt Sử - phức node cỡ 𝑝𝑝 thành danh sách 𝑝𝑝 𝑝𝑝 𝑝𝑝 Do ta có hệ số tăng tốc Trong xử lísắp thứxếp 𝑖𝑖 Mỗi Trong pha 2, tất 𝑛𝑛 phần tử (sách ) Speedup tính bằng: 𝑝𝑝bằng +thứ 𝑝𝑝 5, − ) 𝑂𝑂(𝑝𝑝 trộn log 𝑝𝑝pha danh 𝑛𝑛 3.2 Độ phức tạp không gian 𝑝𝑝 + (0) QuickSort Kích thước Bộ dữ+xử lí danh gốc chứa mảng kích màTrong sau sách cóđược kích thước 𝑛𝑛gồmcó dụng thuật tốn trộn, q trình xử lícỡQuickSort 2𝑛𝑛 Intek chip xếp với kích 𝑝𝑝 , sau Speedup tính bằng: Bộ xử lídữlại gốc (0) chứa Kích thước 𝑝𝑝 g pha 4, xử lí phân trộn 𝑝𝑝 danh danh sách sách xếp Mỗi = 𝑂𝑂( (log ) + log 𝑝𝑝 danh sách có kích thướ cỡ n, xử lí cịn cần chứa mảng chia cắt tạo các𝑛𝑛sử 𝑝𝑝 𝑝𝑝 2xử 𝑛𝑛 log 𝑛𝑛 Trong pha 4, lí phân chia Trong pha 4, xử lí phân 𝑛𝑛 liệu xử lí sau chia Bộ xử𝑛𝑛cólítrộn gốcmỗi (0)danh rộn thực hiệnchọn hết 𝑂𝑂(𝑝𝑝𝑝𝑝 −log 𝑝𝑝) GHz, GB cắt RA 1𝑆𝑆liệu làm Sử mảng kích 𝑛𝑛,líchứa xử lícặp cịn 𝑝𝑝 bộchốt sách (phần )sửtử 𝑛𝑛, 𝑝𝑝chọn =mỗi = 𝑂𝑂( 𝑙𝑙𝑙𝑙𝑙𝑙 𝑛𝑛 +𝑛𝑛 𝑝𝑝bộ +cỡ 1) tử xếp Thời Mỗi xử yêu cầu xử lí kích cỡ danh sách tạo xử lí sau log 𝑛𝑛 𝑛𝑛 𝑛𝑛 dụng phần tử chốt 𝑛𝑛 2+ 𝑝𝑝3, 𝑝𝑝 xử trộn sách trê 𝑝𝑝lí + 𝑛𝑛danh (log 𝑝𝑝bộ + 𝑝𝑝 +𝑛𝑛, Trong pha lí 1) gốc (𝑛𝑛,𝑝𝑝𝑝𝑝)+ 𝑆𝑆mảng =log phần xếp Thời chiathời phần tử tử xếp Thời gian cần thiết là: có kích cỡ mỗiđọc bộ𝑛𝑛𝑝𝑝xử DVD ROM Tổ Tổng gian yêu cầu là: 𝑝𝑝 dụng thuật tốn trộn, q trình xử lí 𝑛𝑛 𝑛𝑛 lại cần chứa mảng kích cỡ Mỗi chọn 𝑝𝑝 phần tử làm mẫu Do thời 𝑝𝑝 dụng tử chốt đượchợp chọnlýtrong Trong Sử1)dụng 𝑝𝑝thuật trộ kích cỡp [2] đệm có có kích cỡ 𝑝𝑝 𝑛𝑛phaphần 3, trường tử nhớ 𝑛𝑛 tốn chọntưởng, 𝑝𝑝trị phần làm mẫu đólog thời +𝑝𝑝𝑝𝑝𝑛𝑛+ 𝑝𝑝 (logDo 𝑝𝑝 + 𝑛𝑛 kích cỡ Sử dụng giá ết là: 𝑂𝑂 ( ) có 𝑝𝑝 node kh 𝑝𝑝đó log 𝑛𝑛 Mỗi lạiDo cần chứa mảng taĐộ cóphức hệ số kích tăngcỡtốc 𝑛𝑛 hợp trộn lý thực hếttrong 𝑂𝑂(𝑝𝑝 log 𝑝𝑝) 𝑝𝑝 gian u cầu tính tốn pha pha 3, trường tưởng, 3.3 tạp truyền thông 𝑝𝑝 𝑛𝑛 + 𝑝𝑝 giá trị 𝑛𝑛 = 𝑂𝑂( 𝑙𝑙𝑙𝑙𝑙𝑙 + 1) ( ) log 𝑝𝑝 + 𝑝𝑝 − ) 𝑂𝑂(𝑝𝑝 = gian cần thiết là: 𝑂𝑂 ( ) 𝑝𝑝 logtrường 𝑛𝑛 gian u cầu tính tốn pha hợp yêu cầu thời gi mà sau danh sách có kích thước 𝑝𝑝 𝑝𝑝 log 𝑛𝑛 + 𝑝𝑝 + 2yêu Trong pha thứ xửgian lí 𝑝𝑝 thứ i trộn danh Speedup bằng: = Tổng thời cầup là: là: 5, trường hợp Trongđược phaTrong 4tính bộlog xử lí gốc truyền nody pha𝑛𝑛2,+tất n phần tử -chia 𝑛𝑛𝑝𝑝 + gđóphaTrong thứ 5,pha xử lí thứ 𝑖𝑖 sách xếp Mỗi danh sách là: Trong 4, mỗisách xử lí 𝑛𝑛phân 3.2 Độ phức vềcắt không gianlà 𝑂𝑂( log 𝑝𝑝) ữ 𝑛𝑛 trộn danh xử lí chốt sẽtạp mà sau danh có kích Do ta có hệ số tăng tạo rasách sử dụng phần tử (Storage1 Trong pha thứ 5,thước bộtrên xử lí thứ 𝑖𝑖 thơng 𝑝𝑝 − giá trị 𝑝𝑝 2 log 𝑛𝑛 gian 𝑂𝑂(𝑝𝑝2log 𝑝𝑝) Stot 𝑛𝑛 𝑝𝑝 +𝑛𝑛 (𝑝𝑝 −3.2 𝑝𝑝 log Độ phức tạp về𝑛𝑛không ) ) 𝑛𝑛 h sách đượcchọn sắptrong xếp pha Mỗi3,𝑂𝑂(𝑝𝑝 thông hợp trị 𝑝𝑝 − g 𝑆𝑆(lý𝑛𝑛, 𝑛𝑛𝑝𝑝) = 𝑛𝑛𝑛𝑛Trong 𝑛𝑛pha 3, xử lí gốc đọc p giá 𝑛𝑛 xếp Thời 𝑂𝑂 ( trường log + 𝑝𝑝) phần tử chia óhời Speedup tính bằng: 𝑝𝑝 𝑝𝑝có chip Xeo Bộ xử lí gốc (0) chứa trộn danh sách xếp Mỗi 𝑛𝑛 Sử dụng thuật tốn trộn kích cỡ 𝑝𝑝 𝑝𝑝 𝑂𝑂Trong (saulog + 𝑝𝑝)mỗi (log + log 𝑝𝑝 +lí𝑝𝑝 gửi + 1) gian xử lí Intel ước trộntạo xử lí mà radanh sửcómỗi 𝑝𝑝sách pha 5, xử kích thước tưởng, danh sách kíchbộ thước Tổng thời song son 𝑝𝑝 𝑝𝑝 Trong pha xử lí gốc truyền thơng p-1 𝑝𝑝 𝑝𝑝 (0) chứa Tổng thời gian Trong pha 4, mỗi𝑝𝑝 xử lí Bộ phânxử lí gốc 𝑛𝑛 𝑛𝑛 Trong GB RAM, 4x7 mảng kích 𝑛𝑛,giá xử lí mà cịnsau sách racủa sửcó 𝑛𝑛 danh Kích 𝑛𝑛(thước trị.thước 𝑛𝑛trộn 𝑛𝑛 cỡcó danh sách kích gian cần thiết là: ).tạo i QuickSort 𝑛𝑛 log 𝑛𝑛 hần chốt trong trường hợp yêu cầu thời gian vàtử sau 2là:số 𝑝𝑝 log 𝑛𝑛 𝑝𝑝Sử dụng thuật tốn có kích cỡ𝑂𝑂chọn sau trộn danh sách xử Trong pha thứ 3, xử lí gốc 𝑛𝑛này 𝑝𝑝 − phần tử, đó, tổng phần tử mảng có kích cỡ 𝑛𝑛,𝑛𝑛𝑆𝑆(mỗi bộ= xử lí cịn ) 𝑝𝑝 𝑛𝑛, 𝑝𝑝 𝑛𝑛 trộn danh sách xử lí 𝑝𝑝 chia pha phần tử xếp Thời 𝑛𝑛 = là: 𝑝𝑝 𝑝𝑝 Trong thứ 3, xử lí gốc 𝑛𝑛 xử lí 𝑛𝑛gửi 𝑛𝑛 − dụng phần tửcỡ chốt chọn 𝑝𝑝Sửsau Mỗi lại cần chứa mảng kích cỡ Trong pha 5, phần 𝑛𝑛 lí có kích dụng thuật tốn trộn xử lí node log 𝑛𝑛 + 𝑝𝑝 + ytrên (log + log g trườnglàhợp lýlog tưởng, 𝑝𝑝 xử lí 𝑝𝑝 𝑛𝑛 trộn 𝑝𝑝 danh sách đãtrộn xếp vớiđược 𝑝𝑝 𝑝𝑝 + 𝑝𝑝2𝑝𝑝 + 1) 𝑝𝑝 𝑛𝑛 danh sách 𝑂𝑂( 𝑝𝑝) 𝑝𝑝 𝑛𝑛 𝑛𝑛 𝑛𝑛 𝑛𝑛 𝑛𝑛 Mỗi lại cần chứa mảng kích cỡ Do thời trường yêu cầu thời gian 𝑝𝑝trường QuickSort thước dữsố + líSử dụng tốn trộn cóhợp kích 𝑛𝑛thuật trộn danh sáchphức đãKích sắpkhông xếp với pha thứ 5,hợp bộcỡ thứ 𝑖𝑖 𝑝𝑝cần pha Trong 3, lýxử tưởng, 𝑝𝑝𝑝𝑝danh sách cóbao kích 𝑂𝑂 (tổng log +tử𝑛𝑛(MGT) + 𝑛𝑛truyền log 𝑝𝑝 ) gồm truyền thơng đó, trường hợp u cầu thời gian phần tử,− phần cần 𝑛𝑛thư 3.2 Độ tạp gian 𝑝𝑝 gian cần thiết là: 𝑂𝑂 ( ) 𝑛𝑛 𝑝𝑝 kích cỡ 𝑝𝑝 thành danh sách 𝑝𝑝 𝑝𝑝 𝑝𝑝 𝑝𝑝 𝑝𝑝 log 𝑛𝑛 𝑝𝑝 phần tử làm mẫu Do thời 𝑛𝑛 𝑝𝑝 + th+ 𝑝𝑝 kích cỡ Sử dụng𝑛𝑛thuật tốn trộn 𝑂𝑂 ( logcần+truyền có ong sách = 𝑝𝑝Core𝑝𝑝 3.2 GHz, 𝑂𝑂( log 𝑝𝑝) kích cỡ 𝑝𝑝 thành mộtlídanh sách 𝑝𝑝 rộn pha 𝑝𝑝làdanh xếp Mỗi thông 𝑝𝑝 liệu xử sau trường hợpkích nàycỡ yêulàsong cầu gian 𝑝𝑝 Tổng thời gian xử log𝑛𝑛mỗi 𝑛𝑛 + danh 𝑝𝑝 𝑛𝑛+ 1sách tr 𝑝𝑝 trộn xếp 𝑝𝑝2 ,thời sau u cầu tính tốn phavới nàylí song Bộ pha xử lícuối gốccùng, (0) chứa (log ) + log𝑛𝑛𝑝𝑝 Trong xửbộ lí=xử𝑂𝑂( xếp với kích cỡ lànày 𝑝𝑝2u ,pha vàcầu sauthời gian danh sách tạo𝑛𝑛ra Trong sửthứ Trong cuối cùng, lí 𝑝𝑝 gốc tập𝑝𝑝𝑛𝑛 hợp trường hợp pha 5, xử lí thứ 𝑖𝑖 GBHDD =Trong 𝑂𝑂( ( sẽTổng là: thờilàgian 3.2 Độ phức tạp khơng gian gốc xử lí song song là: chọn ratửmảng 𝑝𝑝 làm phầncó tửkích làm mẫu thời 𝑂𝑂( log 𝑝𝑝) chọn xử 𝑝𝑝 − phầnsong chốt Sử𝑛𝑛 dụn có kích cỡ Sử 𝑝𝑝 cỡ 𝑛𝑛,Do mỗiđóbộ xử lí cịn Tổng thời gian lí 1song 𝑝𝑝 𝑛𝑛 𝑝𝑝 chọnđược 𝑝𝑝 − phần tử làm chốt Sử dụng phần tử chốt chọn sách tử trộn 𝑝𝑝 danh xếp Mỗi 𝑛𝑛 − phần gốc tập hợp + 𝑝𝑝 + làyêu 𝑂𝑂(quá log 𝑝𝑝) xử gian tính tốn pha 𝑛𝑛 Năng lự1𝑛𝑛 )cvới là: 𝑛𝑛 trộn, trình lí𝑝𝑝 𝑛𝑛dụng thuật 𝑛𝑛 𝑛𝑛tốn 𝑝𝑝cầu + 𝑝𝑝hợp +đư gốc- chứa tập Bộlícỡxử Mỗi lítrong gốctrường (0) lại cần chứa mảng kích 𝑛𝑛 𝑛𝑛 hợp pha 3, trường hợp lý tưởng, dụng thuật tốn trộn, q trình xử 𝑂𝑂 ( log + 𝑝𝑝 + + log 𝑝𝑝 ) 𝑝𝑝 danh sáchthời gian đượcxử tạolírasong bằng2song Do sử tổng số giá trị cần 𝑂𝑂 ( log 𝑝𝑝) Tổng : ược 𝑛𝑛 truyềntrữthông 𝑝𝑝 𝑝𝑝 +𝑝𝑝trộn 𝑝𝑝 thực 𝑝𝑝 là: dùnglàchung E hết 𝑂𝑂(𝑝𝑝 log 𝑝𝑝) 𝑝𝑝 mảng có kích cỡ 𝑛𝑛, xử lí cị i 𝑛𝑛 = 𝑂𝑂( 𝑙𝑙𝑙𝑙𝑙𝑙 𝑛𝑛 + 𝑝𝑝 + 1) 𝑛𝑛 𝑛𝑛 𝑛𝑛 𝑛𝑛 𝑛𝑛 Do tổng số giá trị cần truyền Tổng thời gian xử lí song song trộn thực hết 𝑂𝑂(𝑝𝑝 log 𝑝𝑝) dụng các𝑛𝑛 phần𝑛𝑛tử chốt chọn logSCSI 𝑝𝑝) 𝑙𝑙𝑙𝑙𝑙𝑙320 𝑝𝑝 𝑂𝑂(HDD ộđóxử lí 𝑂𝑂gốc ( log sẽ+là: 𝑝𝑝 = + 𝑂𝑂( + (log log 𝑝𝑝 )+ cầu 𝑝𝑝 = 𝑂𝑂( Tổng thời gian yêu là: Do𝑛𝑛 𝑛𝑛 đó+ ) log 𝑝𝑝 𝑛𝑛 𝑛𝑛 𝑝𝑝 c Trong pha 𝑝𝑝 thứ𝑝𝑝3, xử 𝑝𝑝 𝑝𝑝lí𝑝𝑝gốc𝑝𝑝Tổngsẽthơng M lại cần chứa mảng kích cỡ TẠP CHÍ KHOA HỌC :(ulog là: gian cầu pha 3, trường thời hợp lýlà tưởng, mỗilà: 𝑝𝑝 𝑂𝑂 + 𝑝𝑝) xếp với QUẢN LÝ VÀ CÔNG NGHỆ Sử chia 𝑛𝑛 𝑛𝑛 𝑛𝑛 𝑛𝑛 𝑛𝑛 𝑛𝑛 𝑝𝑝 𝑝𝑝 thơng : sẻt Do ta cóhệTổng hệthống sốthời tăng + + (log 𝑝𝑝 ) ó𝑝𝑝 danh sách 𝑂𝑂=( log + 𝑝𝑝 log 𝑝𝑝 + 𝑝𝑝 − ) 𝑂𝑂(𝑝𝑝 𝑂𝑂(𝑝𝑝 xếp + +(log với) + log 𝑝𝑝 𝑛𝑛 𝑛𝑛 Do ta gian có 𝑛𝑛 𝑛𝑛 𝑝𝑝 ửh lísách v2.3.0.5 𝑝𝑝 𝑝𝑝 𝑝𝑝 𝑝𝑝 𝑝𝑝 ) 2log 𝑝𝑝 + (𝑝𝑝𝑛𝑛− 1𝑛𝑛 ) 𝑂𝑂(𝑝𝑝 Speedup tính bằng: 𝑛𝑛 + 𝑝𝑝 + 𝑝𝑝 − + 𝑛𝑛 − + 𝑛𝑛 − 𝑂𝑂 ( log + 𝑝𝑝 + + log 𝑝𝑝 ) là: Do tổng số giá trị cần truyền thông : HDD SCSI 320 MBps 15KRpm, dùng hệ thống chia sẻ file: GPFS cho Linux 𝑛𝑛 + 𝑝𝑝2 + 𝑝𝑝 − + 𝑛𝑛 − 𝑛𝑛 𝑛𝑛 + 𝑛𝑛 − 𝑝𝑝 𝑝𝑝 = 2𝑛𝑛 (1 − ) + 𝑝𝑝2 + 𝑝𝑝 𝑝𝑝 −1 Mơ thuật tốn Mơ thuật tốn 4.1 Môi trường mô phỏng: 4.1 Môi trường mô phỏng: Quá trình mơ tiến hành hệ thống IBM Linux Cluster 2350: lập trình song song MPI Mơ - node tính tốn, node gồm chip mục đích tra songRAM, song Intel nhằm Xeon Dual Core kiểm 3.2 GHz, GB 1x36 GB HDD, DVD ROM Tổng lực tính hóa thuật tốn PSRS tốn node khoảng 51.2 Gflops Phương mơtrữ - 4.2 node phụcpháp vụ lưu (Storage1 Storage2), node gồm chip Intel Xeon tắc RAM, lấy số4x72 liệu GB mô Dual Core Về 3.2 nguyên GHz, GB HDD.phỏng: - node đóng vai trị quản lí (MGT) bao - Cố định sốCore phần3.2 tửGHz, 3mảng gồm chip Intel Xeon Dual GB RAM, 2x36 GBHDD thay đổi số xử lí sử dụng (2, 4, 8) - Năng lực lưu trữ: thiết bị lưu trữ dùng chạy từ đến 10 lần để đo thời gian chung EXP400 với 10x73 GB HDD SCSI 320 v2.3.0.5 MBps 15KRpm, dùng hệ thống chia sẻ file: GPFS cho Linux v2.3.0.5 - Các node chạy HĐH Redhat - Các node chạy HĐH Redhat Enterprise Enterprise 3.0nối vàvới nốiqua Linux 3.0 vàLinux kết nhaukết thông mạng Gethernet với thông qua mạng Gethernet - Các thuật tốn lập trình ngơn - Các thuậtthưtốn lậpsong trìnhsong ngữ C++ sử dụng việnđược lập trình MPI Mơ nhằm mục đích kiểm tra ngơn ngữ C++ sử dụng thư viện song song hóa thuật tốn PSRS 4.2 Phương pháp mơ - Thay đổi số phần tử mảng Về nguyên tắc lấy số liệu mô phỏng: , 10 , 10số7) phần chạy trênmảng thay số bộđổi (10 - Cố định tử sốxử lí, xửchạy lí sử dụng (2, 4,10 8) lần chạyđểtừđo đến từ đến thời10 lần để đo thời gian lấy giá trị trung bình lầngian chạy.và lấy giá trị trung bình lần - Thay đổi số phần tử mảng (105, 106, chạy 107) chạy số xử lí, chạy từ 4.310Kết mơ đến lần để đo thời gian lấy giá trị trung bình lần chạy 4.3.1 Kết mơ chạy 4.3 thuật Kết mơPSRS tốn 4.3.1 Kết mơ chạy thuật tốn PSRS lấy giá trị trung bình lần chạy Input Size T.sequency (seconds) 105 Thời gian chạy trung bình thuật toán PSRS(giây) P=2 P=3 P=4 P=8 0.0372 0.0285 0.0199 0.0183 0.0514 106 0.4186 0.3343 0.2188 0.1947 0.2146 107 4.6197 3.1352 2.5169 2.1608 2.1887 P: số xử lí sử dụng, T.sequency: thời gian (giây) Input Size (kích thước liệu đầu vào) chạy chương trình trường hợp xử Qua mơ phỏng, trước hết nhận lí song song, với bốn trường hợp QUẢN LÝ VÀ CÔNG NGHỆPSRS hồn tồn thấy thuật tốn cố định số phần tử mảng thay song song hóa chạy đổi số xử lí sử dụng (2, 3, 4, TẠP CHÍ KHOA HỌC Qua mô phỏng, trước hết nhận thấy thuật tốn PSRS hồn tồn song song hóa chạy chương trình sử dụng số xử lí bất kì, khơng cần điều kiện ràng buộc số xử lí sử dụng Về kết mơ phỏng, nhìn vào bảng kết nhận thấy rằng, thời gian chạy chương trình trường hợp xử lí song song, với bốn trường hợp cố định số phần tử mảng thay đổi số xử lí sử dụng (2, 3, 4, xử lí) kết cho thời gian chạy tốt so với thời gian chạy (sử dụng xử lí) Cụ thể, trường hợp sử dụng xử lí so với thời gian chạy tuần tự, với số phần tử n=100000 thời gian chạy song song nhanh gấp 1.5 lần, với số phần tử n=1000000 thời gian chạy song song nhanh gấp 1.36 lần, với n=10000000 thời gian chạy song song nhanh gấp 1.48 lần Trong trường hợp sử dụng xử lí so với thời gian chạy tuần tự, với số phần tử n=100000 thời gian chạy song gấp đồ lần, với số Dướisong nhanh biểu thể phần tử n=1000000 thời gian chạy song song nhanh gấp 2.15 lần, với n=10000000 thời gian chạy song song nhanh gấp 2.16 lần Trường hợp cuối cùng, sử dụng xử lí so với thời gian chạy tuần tự, với số phần tử n=1000000 thời gian chạy song song nhanh gấp 1.95 lần, với n=10000000 thời gian chạy song song nhanh gấp 2.11 lần Rõ ràng, chạy đa xử lí, thuật tốn PSRS cho kết hiệu nhiều lần so với chạy Số xử lí cho kết tốt xử lí Qua kết mơ phỏng, phần giúp ta nhận thấy rằng, tăng số xử lí hệ thống lên thuật toán đạt hiệu tốt thời gian Đến lúc đó, tăng số xử lí hệ thống lên độ hiệu khơng thể tăng lên Do ln ln cần xác định số xử lí tốt mà hệ thống nên sử dụng trình chạy chương trình Dưới biểu đồ thể kết chạy thuật toán PSRS hệ thống song song: Biểu đồ Biểu đồ so sánh thời gian Biều đồ Biểu đồ so sánh thời gian chạy thuật toán PSRS kết chạy thuật toán PSRS hệ Biểu đồ so sánh thời gian chạy thuật toán PSRS 4.5 Thời gian(giây) 3.5 N=1 N=2 2.5 N=4 N=8 1.5 0.5 100 1000 10000 Số phần tử (nghìn) thống song song: chạy BXL với số phần tử N=106 Kết luận TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CƠNG NGHỆ Biều đồ Biểu đồ so sánh thời gian chạy thuật tốn PSRS Qua kết mơ Biều đồ Biểu đồ so sánh thời gian chạy thuật tốn PSRS Qua kết mơ vào độ phức tạp tính tốn Biểu đồ Biểu đồ so sánh thời gian chạy BXL số N=106 định thuật tốnvớiPSRS, cóphần thể tửkhẳng Biểu đồ so sánh thời gian chạy xử lý với số phần tử N=1000000 0.45 Thời gian (giây) 0.4 0.4186 0.35 0.3343 0.3 0.2755 0.25 0.2 0.1947 0.2146 0.15 0.1 0.05 N=1 N=2 N=4 N=8 N=16 Số xử lý Kết luận Qua kết mô vào độ phức tạp tính tốn thuật tốn PSRS, khẳng định rằng, PSRS thuật toán xếp liệu hệ thống song song đạt hiệu cao vượt trội so với hệ thống xử lý Thuật tốn áp dụng rộng rãi ứng dụng xử lý song song, bước tiền đề để nâng cao hiệu tìm kiếm liệu hệ thống liệu lớn (Bigdata) giai đoạn Trong thời gian tác giả cải tiến thuật toán PSRS kết tốt TẠP CHÍ KHOA HỌC QUẢN LÝ VÀ CÔNG NGHỆ TÀI LIỆU THAM KHẢO Grama A., A Gupta, G Karypis, V Kumar (2003), “Introduction to Parallel Computing”, Addison Wesley Xiaobo Li, Paul Lu, Jonathan Schaeffer, John Shillington, Pok Sze Wong (2004), “On the Versatility of parallel sorting by Regular Sampling”, University of Alberta, EdmonTon, Alberta, Canada ... N=8 N=16 Số xử lý Kết luận Qua kết mô vào độ phức tạp tính tốn thuật tốn PSRS, khẳng định rằng, PSRS thuật toán xếp liệu hệ thống song song đạt hiệu cao vượt trội so với hệ thống xử lý Thuật tốn... ban đầu Thuật toán kết thúc Phân chia liệu banbộđầu p xử cho lí cịn lại .xử lí lí cụcxếp Mỗi b? ?sắp xử Tập l? ?xếp tập liệu với Tính tốn độ phức tạp thuật toán hợp vàcục trộn mẫu, 6bộ xửBước PSRS