Mặc dù có nhiều ứng dụng sắp xếp thời khóa biểu cho các trường nhưng vẫn chưa đáp ứng được với tình hình mỗi trường cụ thể; hơn nữa thời gian chạy cũng rất lâu do có nhiều ràng buộc nên
Trang 1VOI BO DONG XU LY INTEL XEON PHI
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01
LUẬN VĂN THẠC SĨ
TP HO CHI MINH — 2018
Trang 2Cán bộ hướng dẫn khoa HOC : .ccccsscsccsesscsecscesssscescsscssssessevsescsaesscessanvacs
(Ghi rõ họ, tên, học hàm, học vị và chữ ky)
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đông châm bảo vệ luận văn thạc sĩ)
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên
ngành sau khi luận văn đã được sửa chữa (nếu có)
Trang 3NHIỆM VỤ LUẬN VÁN THẠC SĨ
Họ tên học viên: Võ Minh Khải - 52.2 c5 s22 MSHEV: 7140240
Ngày, tháng, năm sinh: 05/05/1991 s52 cssssssesss Nơi sinh: Phú Yên
Ngành: Khoa học máy tính . - ¿s2 vEcxckrxeEsrxrerkree Mã số : 60.48.01.01
I.TÊN ĐÈ TÀI: THUC HIEN GIAI THUAT SAP XEP THOI KHOA BIEU
TRUONG DAI HOC SU DUNG GIAI THUAT DI TRUYEN VOI BQ DONG XU
LÝ INTEL XEONPPHI .À - G5523 2E 2E EEEEEEEEErrEEkkrkrrxrkrrrrrerkrkerkerrred
II NHIỆM VỤ VÀ NỘIDUNG: THUC HIEN GIAI THUAT SAP XEP THOI KHOA BIEU SU DUNG GIAI THUAT DI TRUYEN VOI BO DONG XU LY INTEL XEONPHI, DANH GIA DO HIEU QUA CUA GIAI THUAT DI TRUYEN KHI CHẠY TREN INTEL XEONPHI SO VOI CAC GIAI THUAT KHAC
TIT NGAY GIAO NHIEM VU: = 15/01/2018 vocececccsccssssssessessestsssesvessstsstsssssesseesen
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 17/06/2018 5c sex
V CÁN BỘ HƯỚNG DẪN : PGS TS Thoại Nam 2-5 6552 x2 2z rxee
Ths Nguyễn Quang Hùng tk SE SE SE 39 TT ren
Tp HCM, ngày 20 tháng S năm 20168
Trang 4Tôi xin chân thành cảm ơn các thầy cô khoa sau đại học trường Đại học Bách
Khoa Tp HCM đã truyền đạt những kiến thức để tôi có nền tảng để thực hiện luận văn này
Tôi xin đặc biệt cám ơn Thầy PGS.TS Thoại Nam và Thầy Ths Nguyễn Quang Hùng đã tận tình hướng dẫn và chỉ bảo đề tôi có thể hoàn thành luận văn.
Trang 5với các trường đại học hiện nay Mặc dù có nhiều ứng dụng sắp xếp thời khóa biểu cho các trường nhưng vẫn chưa đáp ứng được với tình hình mỗi trường cụ thể; hơn
nữa thời gian chạy cũng rất lâu do có nhiều ràng buộc nên việc thực thi trên một bộ
xử lý đơn sẽ kém hiệu quả hơn Do vậy đề tài sẽ thực hiện trên bộ đồng xử ly intel Xeon phi, do đó sẽ rút ngắn thời gian thực thi
Các kết quả chạy trên tập dữ liệu đánh giá độ hiệu quả của giải thuật, các kết quả thực hiên với thời gian ngắn hơn so với việc thực thi giải thuật trên khi không song song Kết quả thực thi thường nhanh hơn 20 lần so với việc thực thi trên máy
tính thường đối với tập dữ liệu liệu nhỏ Và 4 lần so với tập đữ liệu lớn
Trang 6requirement for these universities nowadays Although there were some applications but have not met each specific condition and took along run time due to the number
of constrains
Therefore, in this thesis, Genetic Algorithms with heuristic run on intel Xeon
Phi will be applied to reduce running time The result of this approach is faster 20 times than using single processor for small data Faster 4 times for large data.
Trang 7Tôi xin cam đoan luận văn “Thực hiện giải thuật sắp xếp thời khoá biểu trường
đại học sử dụng giải thuật di truyền với bộ đồng xử lý Intel Xeonphi” là công trình
nghiên cứu của cá nhân tôi Kết quả của nghiên cứu trình bày trong luận văn này không sao chép của bất cứ luận văn nào và chưa được trình bày, công bố ở bất kỳ
công trình nghiên cứu nào trước đây
Tp Hồ Chí Minh, tháng 6 năm 2018
Tác giả luận văn
Võ Minh Khải
Trang 8Chương 1 MO DAU 990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006009606060606066 4
1.1 Lý đo chọn đề tài: - << th x1 7T g1 1 T1 TH TT Tà HT HT TH Tà TT HT tràn 4 1.2 Mục tiêu để tài - cà ch TT TH TT TT TT HT TH TT TH TT Tự Tự TT HT HT cà 4 1.4 Các yêu cầu đặt ra c 2c HH T3 11 1111111111511 T05 11g11 111101 0 TT T1 1111110 gen 5
Chuong 2 CÁC CÔNG TRÌNH LIÊN QUA .co5 5 5csscscsesessssesesesseseseoe 8
2.1 Phương pháp mô phóng luyện kim (SA) c1 HH ng TH ng ng 0000 8
2.2 Tim kiém Tabu (Tabu search - TS) c.cccccsscsssscsscscsssscsssscscsscscsssscsssscsnsessrsesecessscesssavsecansnsecesenceneeeas 8
SE 010600) 9
Chương3 CƠ SỞ LÝ THUYÊT ssceocsssesscseesessseeseseeseseesesessesessesesse Í Í 3.1 Giải thuật di truyn - -5s sen T3 111 10151111513 1111111111151 1511111111051 01x TEgcr re 11 3.2 Các phương pháp song song cho giải thuật đi truyÊn 5s Ss net eEsrrererrrrererrreed 12 XE ki Ji n6 12
b) Fine-Grained ParallelizatiOn - - So G2 0H HT TH n0 0090 90000 13 C) Coarse-Grained Parallel1zation QC nọ gọt TH 1010 9 06 14 EEN›0‹0ì0ii 20.4.) in 15
3.4 Các mô hình lập trình trên XeOfiD1 G0 G2 0 99900092000 00 gọn ng ng ng 17 8,8 , 0\ n6 ốa 17
I)/)/8., 8 0.0, 0n 17
Chương4 PHƯƠNG PHÁP GIẢI BÀI TOÁN SẮP XÉP THỜI KHOÁ BIẾU 18
J1 N9 ác ác 18
4.2 MO Dinh 0.00 19
4.3 Khởi tạo cá thể và quần thỂ 6 c3 39171 1115115 3151111111115 1312k grxrkrrrkd 21 4.4 Phép ÏAÌ: co ch TH ng ng ng ng Tà 0 1000 K11 10 8010-05 8010098110 090 8 00.05.180009 891900 22 L1 ng 24
“r8 0 1nn nh ố e 26
#Z/ nh nn 26
4.8 Câu trúc MEM và tạo cá thể con dựa vào cấu trúc MEM sec ket SE SE Set cerkes 28 Chuong5 HIỆN THỰC VÀ THỨ NGHIỆM - . o-s5 sscsscssessessesseess.s 3Ï Chuong6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIẾỂỂN .s-ssscsesscsese.se 3Õ 6.1 Một số kết luận và đóng góp của đề tài - s2 2E 113 1131101511 2111 011511151 1c erk 35 6.2 Hướng phát triỂn 2+ St 52319 753115 1111551975117 12705107751 1 xe crrkd 35 TAI LIEU THAM KHẢO - - 5 s25 32593321 E9E9 E99 SEEEEEEEEEETEEESEEE1519 1110111 e 37 51080090 9A Ô 37
Trang 9Hình 3.1 - Sơ đồ giải thuật GA - 5-5-5252 SE S232 EESEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEETEEEEErkrrkrrkrrker
Hình 3.2 - Mô Hình Master — SÏaVG - Gv Hình 3.3 - Mô hình FIne-Grained với 8 rút ( DFOCCSSOT) - 5 key Hình 3.4 - Mô hình Coarse-ira1n€d - - - - - s13 11x HH nh rà vn
Hình 3.6 - Câu trúc Vòng của Xeonpphi -. - + + 5222 k+Ex+xzEeExeEvrxerxevsrkerxrxrrserrrrrrree
Hình 4.1 Mô hình cá thể theo mảng một chiều 2: + 5S S2x+EE+E+zE+EEeEvzszrsrerrxee
DANH MUC TU VIET TAT
Ký hiệu chữ viết tắt Chữ viết đầy đủ
SA Simulated Annealing
TS Tabu Search
GSGA Guide Search Genetic Algorithm
MIC Many Integrated Core
SIMD Single instruction, multiple data
LS Local Search
MO EA Multi-objective evolutionary algorithms
Trang 10NSGA-II
MEM
- Elitist Non-dominated Sorting Genetic Algorithm
- MEMory hay cấu trúc dữ liệu được sử dụng hỗ trợ cho việc tìm kiêm
Trang 11
1.1 Ly do chon dé tai:
Việc sắp xếp thời khoá biểu sao cho hợp lý và hiệu quả luôn là một yêu cầu quan
trọng đối với các trường đại học hiện nay cũng như đã thu hút nhiều tô chức, nhà nghiên
cứu quan tâm bởi tính ứng dụng cao và sự phức tạp của nó
Trước đây, việc sắp xếp thời khóa biêu này vẫn được thực hiện thủ công ở một số
nơi Điều này dẫn đến việc tốn kém rất nhiều thời gian và công sức mà kết quả mang lại
là chất lượng của thời khoá biêu không cao và mang tính chủ quan của người sắp xếp, cũng như không thoả mãn được toàn bộ các ràng buộc và tính chất tối ưu Hiện nay có nhiều ứng dụng sắp xếp thời khoá biêu cho các trường học, nhưng nó vẫn chưa đáp ứng
được với tình hình cụ thể của từng trường, cũng như thời gian chạy dé tạo ra với đữ liệu
nhiều thường là rất lâu
Đối với các thời khoá biểu có nhiều ràng buộc thì sẽ dẫn đến không gian tìm kiễm lớn hơn, do đó việc thực thi chương trình trên một bộ xử lý đơn sẽ hoạt động kém hiệu quả hơn việc thực thi song song, chính vì vậy nên đề tài này sẽ hiện thực trên bộ đồng
xử lý intel Xeon phi, do đó sẽ rút ngắn thời gian thực thi Các thời khoá biểu có chất
lượng cao thì đòi hỏi thời gian thực thị lớn
1.2 Mục tiêu đề tài
Mục tiêu để tài là nhằm đưa ra giải pháp cho bài toán cho bài toán sắp xếp thời
khoá biểu của trường đại học vào mỗi đầu học kỳ, đưa ra được thời khoá biêu phù hợp
với chi phí thời gian cho phép và thoấ mãn các ràng buộc
Để đạt được các mục tiêu trên, dé tai tập trung vào các nhiệm vụ cụ thể sau:
- Tìm hiểu giải thuật di truyền và ứng dụng của nó trong việc giải quyết hiệu
quả các bài toán tôi ưu
Trang 12- Ứng dụng giải thuật di truyền vào bài toán xếp thời khóa biêu hệ tín chỉ trong
trường Đại học
- Phân tích các kết quả đạt được khi áp dụng giải thuật di truyền với mô hình
song song trên Xeonphi
1.3 Đối tượng và phạm vi nghiên cứu:
Đối tượng mà đề tài tập trung vào nghiên cứu là bài toán sắp xếp thời khoá biêu
trường đại học bằng giải thuật di truyền và hiện thực trên máy trạm với bộ đồng xử lý Intel Xeon phi, đánh giá độ hiệu quả của giải thuật song song và so sánh với các giải thuật trước đó
1.4 Các yêu câu đặt ra
Chương trình sắp xếp thời khoá biểu môn học phải đáp ứng được toàn bộ các ràng buộc cứng và tô1 ưu hoá các ràng buộc mêm
Các ràng buộc
Ràng buộc cứng:
Mỗi giáo viên chỉ được dạy 1 lớp học tại cùng 1 thời điểm
Không có 2 môn học nào cùng Ì phòng học
Các môn học và tiết học trong danh sách Input phải được xếp lịch
Môn học thực hành phải được xếp vào phòng thực hành
Mỗi giáo viên có một danh sách thời gian mà giáo viên bận việc, không được sắp xếp thời gian giảng dạy vào thời gian bận việc
Các tiết của môn học trong cùng một chương trình giảng dạy hay được dạy bởi cùng một giảng viên phải được xêp vào các tiệt học khác nhau
Trang 13Phòng học phải lớn hơn số lượng sinh viên trong lớp
Các tiết học trong cùng một khoá học nên được xếp gần nhau
Số tiết học trong từng môn học phải được trải dài với số ngày phải lớn hơn số
ngày tối thiếu được quy định trong từng tiết học
1.5 Tóm lược kết quả đạt được
Với mục tiêu của đê tải, sau thời gian nghiên cứu và hiện thực, tôi đã hiện thực được giải thuật di truyền thực thi song song chạy trên bộ đồng xử lý Xeonphi Các kết
quả chạy trên tập dữ liệu đánh giá độ hiệu quả của giải thuật, các kết quả thực hiện với
thời gian ngắn hơn so với việc thực thi giải thuật trên khi không song song Kết quả thực thi thường nhanh hơn 20 lần so với việc thực thi trên máy tính thường đối với tập dữ liệu nhỏ
Ẩ vr 7 A 4
1.6 Cầu trúc của luận văn:
Luận văn được bố cục thành 6 chương với những nội dung như sau:
- Chương 1: Mở Đầu - Đề cập đến lý do chọn đề tài, mục tiêu của đề tài, các yêu
câu đặt ra của chương trình sắp xêp thời khóa biêu
- _ Chương 2: Các công trình liên quan - trình bày một số nghiên cứu liên quan đến bài toán lập lịch thời khoá biểu trong trường đại học
Trang 14phương pháp song song được sử dụng cho giải thuật di truyền
Chương 4: Phương pháp giải bài toán sắp xếp thời khóa biểu - trình bày chỉ tiết
việc hiện thực giải thuật di truyền để áp dụng vào bài toán lập lịch thời khoá biểu,
tỗ chức dữ liệu để sử dụng hiệu quả vector và kiến trúc của Xeonphi, phương
pháp song song được sử dụng trong luận văn
Chương 5: Hiện thực và thử nghiệm — Đưa ra kết quả đạt được sau khi hiện thực
giải thuật, đồng thời so sánh với các kết quả và thời gian hiện thực của các giải
thuật khác để đánh giá
Chương 6: Kết luận và hướng mở rộng đề tài
Trang 15Có nhiều phương pháp đề giải quyết bài toán lập lịch thời khoá biêu cho trường đại
học dựa trên Meta-heuristic Các phương pháp mô phỏng luyện kim, tìm kiếm Tabu, giải thuật di truyền và các phương pháp hỗn hợp đã được dùng để giải quyết bài toán lập lịch
thời khoá biểu cho trường đại học Meta-heuristic bắt đầu với một hay nhiều các lời giải
ban đầu và dùng các chiến lược tìm kiếm để tránh các tối ưu cục bộ Tắt cả các g1ả1 thuật
tìm kiễm có thê tạo ra các kết quả tốt nhưng phải quan tâm đến thời gian thực thi của g1ải thuật
2.1 Phuong phap m6 phong luyén kim (Simulated Annealing - SA)
Giải thuật SA được bắt đầu bằng việc tính toán ngẫu nhiên các bước dịch chuyên đến các lời giải kế Nhiệt độ và hàm lượng giá xác định việc có thể chấp nhận các bước
di chuyển có kết quả không tốt Nhiệt độ cao thì xác suất chấp nhận kết quả không tốt cao và nhiệt độ thấp thì xác suất chấp nhận kết quả không tốt thấp Xác suất chấp nhận được định nghĩa bởi công thức exp(- /£) Trong đó ö là sự thay đổi chất lượng của lời
giải ( là thay đôi giá trị lượng giá) và t là nhiệt độ hiện tại Hiệu quả của SA phụ thuộc
vào thời gian làm mát và việc chọn câu trúc cho các lời giải lân cận
Elmohamed [15] đã áp dụng giải thuật SA với các loại làm mát khác nhau (hình học, thích nghi và thích nghi với việc nung nóng) đê giải bài toán lập lịch cho trường đại học Họ thử nghiệm trên tập đữ liệu thực tế ở trường Syracuse University Kết quả cho thấy việc thực hiện SA với giải thuật làm mát thích nghi và nung nóng cho hiệu quả tốt
nhất
2.2 Tìm kiếm Tabu (Tabu search - TS)
Trang 16phương pháp heuristic để khai phá không gian tìm kiếm mà vượt qua được tối ưu cục
tốt nhất trong các lời giải kế cận của lời giải hiện được khai phá, và cứ như vậy tiếp tục
Danh sách tabu cho phép giải thuật thoát khỏi việc tối ưu cục bộ Các bước dịch chuyên
trong tabu list được ngăn chặn bởi một số lần lặp nhất định goi la “tabu tenure”
Nhiều nghiên cứu đã thực hiện giải bài toán lập lịch thời khoá biểu bằng phương pháp TS Hertz [14] lần đầu tiên sử dụng phương pháp TS để giải bài toán lập lịch thời
khoá biểu Tác giả đã kết luận rằng phương pháp này có thê cho kết quả thoả mãn yêu cầu lập lịch Lợi ích chính của phương pháp này là nó cho phép các bước dịch chuyên
hứa hẹn đến lời giải tốt, việc tìm kiếm nhanh chóng
2.3 Multi-Objective EA (Evolutionary algorithms)
Giải thuật multi-objective EA (MOEA) đầu tiên được goi 1a “vector evaluated GA”, đề xuất bởi Schaffer Sau đó những giải thuật MOEA khác như strength Pareto
EA (SPEA), c-multi-obJective EA (e-MOEA), the elitist non-domnated sorting GA (NSGA-TI), được phát triển và áp dụng thành công
NSGA-II được đề xuất dựa trên khái niệm của sắp xếp các phần từ không trội (non-
domiated) và độ đo đông đúc (crowding distance) Ban đầu, tập các lời giải với kích
Trang 17thước N được tạo ra và sắp xếp dựa trên các phần tử không trội Sau đó, tại mỗi thế hệ,
một tập các cá thể con Q được tạo thành từ tập cá thể cha P bằng cách sử dụng phương
phap chon “tournament” ( hai ca thé duoc lua chon ngau nhién tu tap cha P, ca thé được
lựa chọn dựa theo hạng và khoảng cách đông đúc), phép lai, phép đột biến Sau đó các
cá thê con Q được hợp với P, tạo thành tập cá thê R có 2N phần tử, việc tính toán hạng
và khoảng cách đông đúc được tính cho R, Tập N cá thể tốt nhất theo hạng và theo khoảng cách đông đúc được lựa chọn trong R đề tạo thành thế hệ tiếp theo Do đó, sau
mỗi thế hệ, tập các cá thê không trội được duy trì
Datta [11], str dung NGSA-II dé giai bài toán lập lịch thời khoá biêu Họ phát triển
mô hình tối ưu 2 mục tiêu để giảm thiểu các vi phạm của ràng buộc mềm, áp dung 1 phép lai và 4 phép đột biến, và kiêm tra độ hiệu quả của giải thuật trên tập dữ liệu thực
Họ đưa ra kết luận là độ hiệu quả của giải thuật phụ thuộc vào việc định nghĩa xác suất
đột biến và lời giải được khởi tạo ban đầu.
Trang 18Chuong 3 CO SO LY THUYET
Chương này gồm các phần:
- Phan đầu giới thiệu về giải thuật di truyền
- _ Phần tiếp theo giới thiệu về các phương pháp song song dành cho giải thuật đi
truyền
- - Giới thiệu về Xeon Phi và các loại lập trình với Xeon Phi
3.1 Giải thuật di truyền
Giải thuật di truyền (GA-Genetie Algorithm) là kỹ thuật phỏng theo quá trình thích nghi tiễn hóa của của các quân thê sinh học dựa trên học thuyết Darwin Quá trình tiễn
hoá thê hiện tính tối ưu ở chỗ, thế hệ sau thường tốt hơn ( phát triển hơn, hoàn thiện hơn)
so với thế hệ trước Tiến hoá tự nhiên dựa vào hai quá trình chính là sinh sản và chọn lọc tự nhiên Trong quá trình tiễn hoá tự nhiên, thế hệ sau được sinh ra để bổ sung cho
các thế hệ đầu Cá thể nào phát triển hơn, thích nghi cao hơn với môi trường sẽ tồn tại,
cá thê nào không thích nghỉ sẽ bị đào thải
Các cá thê mới sinh ra trong quá trình tiễn hoá nhờ sự lai ghép từ các cá thể bố mẹ
Cá thé mới có thé mang những tính trạng của cha mẹ (di truyền), cũng có thê mang
những đặc tính mới (đột biến) Di truyền và đột biến có vai trò quan trọng trong tiến hoá
Đột biên có sác xuât xảy ra nhỏ hơn nhiêu so với quá trình di truyện
Vậy nên có thể nói giải thuật di truyền là phương pháp tìm kiếm tối ưu ngẫu nhiên
bằng cách mô phỏng theo sự tiễn hóa của con người hay của sinh vật Ý tưởng của thuật
toán đi truyền là mô phỏng các hiện tượng tự nhiên, là kế thừa và đầu tranh sinh tồn được
Holland [9] phát triên vào hệ thống nhân tạo năm 1975 để tối ưu hóa các vẫn đề và xây dựng xây dựng thuật toán di truyền Cho đến ngày nay, giải thuật đi truyền vẫn được coi
Trang 19như là một công cụ mạnh mẽ để giải quyết những vấn đề về tìm kiếm và tối ưu hóa phức
tạp như là lập thời gian biểu, lập lịch, hệ thống điều khiến, bài toán người du lịch Dù rằng các giải thuật di truyền thực hiện được thay đối theo bài toán cụ thể, nhưng nhìn
chung đều có câu trúc tiêu biêu sau:
Hình 3.1 - Sơ đô giải thuật GA
Hình 3.1 Mô tả các bước cơ bản của một giải thuật GA, Khởi tạo quân thê, Lựa
chọn cá thê cha, Phép Lai ghép, phép đột biến, loại bỏ các cá thể kém thích nghỉ
3.2 Các phương pháp song song cho giải thuật di truyền
a) Master — Slave
Quân thê được lưu trữ tại master, việc tính toán được phân bo cho cac slaves
Trang 20| Cac thao tac trén GA | Master
— Giá trị lượng giá
Hinh 3.2 - M6 Hinh Master — Slave
Mô hình đồng bộ : chỉ có việc tính toán giá trị lượng giá được tinh 6 cac slave, master phải đợi các slave để kết thúc, các thao tác chọn, thay thé, lai va dot bién được thực hiện tại master
Mô hình bắt đồng bộ: các thao tác chọn, thay thế, lai và đột biến được thực hiện
trên các slave, các slave không phải đợi để tiếp tục xử lý trên thế hệ tiếp theo
b) Fine-Grained Parallelization
Quân thê được phân bô cho các processors qua một lưới 2D, các processor gân
nhau chia sẽ các cá thê của mình trong việc lựa chọn cá thê làm cá thê cha
Hình 3.3 - Mô hình Fine-Grained với ö nút ( processor)
Trang 21Việc khởi tạo quan thé gidng voi việc khởi tạo quân thê của một giải thuật GA đơn
giản, nhưng các cá thê được chia đêu cho các processor Cac processor có thê lựa chọn phân tử làm phân tử cha từ các processor kê cận và cá thê con có thê thay thê một cá thê
khác trong quân thể con Việc lai và đột biễn giống với giải thuật GA đơn giản
Hinh 3.4 - M6 hinh Coarse-Grained
Từ Mô hình ở hình 3.4, Các Island được tạo từ quần thê ban đầu cho đến khi số
lượng các Island được thỏa mãn Tân suất di chuyên các cá thê từ Island này đến Island khác có thê xảy ra cố định hoặc tuân theo một phân bố xác suất, dựa trên ngưỡng thấp
nhất của độ lệch chuẩn của giá trị lượng giá Số lượng các cá thê được chuyên đi có thê
được xác định bởi phân trăm cá thể có trong Island hay một số lượng các thê nhất định
Trang 223.3 Bộ xử lý Intel Xeonphi
Bộ đồng xử lý Intel Xeon Phi được biết tới đưới tên gọi Kinght Corner trong giai
đoạn đầu phát triển của nó Việc lập trình không cần đòi hỏi phải hiểu biết sâu về thiết
bị phân cứng, nhưng sẽ hữu hiệu khi biết đến các dic tinh cua Xeon Phi dé sir dung het khả năng của nó Từ góc nhìn lập trình, Xeon Phi sử dụng kiến trúc x86 (CPU nhiều
nhân) và mô hình lập trình với kiến trúc x86, với hơn 50 core, và 4 thread trên một core, 512-bit SIMD (Single instruction, multiple data), được thiét ké dé str dụng cho các hệ
thống tính toán hiệu năng cao - HPC (High Performance Computing)
Xeonphi được kết nối với Intel Xeon processor thông qua PCI Express (PICe) Bus
Việc hiện thực kết nỗi TCP/IP cho phép kết nối tới Xeon Phi như một node cua mạng
kiến trúc MIC (Many Integrated Core)
Trang 23Xeonphi co cac dac tinh sau:
- Nhiéu hon 50 core (sé khac nhau véi cac loai xeonphi khac nhau)
- _ Các core được kết nối bởi vòng hai chiều tốc độ cao
- - Mỗi core có 4 thread nên mỗi Xeon Phi có hơn 200 thread
- _ Xung nhịp mỗi core thường hơn 1 GHz
- _ Cache liên kết với nhau trong toàn bộ Xeon Phi
- - Mỗi core có 512-KB L2 cache và có kết nối tốc độ cao với tất cả các cache L2 khác, điều này làm cho tông cache L2 lên đến hơn 25 MB
- _ Kết nỗi với bộ xử lý chính thông qua kết nối PCI
- _ Sử dụng hệ điều hành Linux
- _ Việc lập trình trên Xeon phi gàn giống với việc lập trình trên CPU
Hình 3.6 - Cấu trúc Vòng của Xeonphi
- _ Các tập lệnh đặc biệt đối với 64-bit x86
- Kha nang SIMD thong qua vector 512-bit
Trang 24- H6 tro hiéu quả các phép toán học: nghịch đảo, can bac hai, ham mt
3.4 Các mô hình lập trình trên Xeon Phi
Lập trình theo hướng Native
Thực thi theo hướng Native là toàn bộ chương trình chạy trên Intel Xeon Phi Xây dựng chương trình theo hướng native là một cách nhanh chóng cho phép chương trình
có thể thực thi trên Intel Xeon Phi Song song hoá việc sử dụng đữ liệu và áp dụng giải
thuật song song, để tối ưu hoá việc thực thi trên Xeon Phi
Complie chương trình để thực thi trên Xeon Phi bằng -mmic thông qua trình biên
dich ICC cua Intel Sau khi chương trình được biên dịch, sử dụng ssh vào mic0 và upload
chương trình và chạy trên Xeon Phi
Lập trình theo hướng Offload
Intel cung cấp một tập các Directive tới các Complier có tên gọi là “LEO” (Language Extension for Offload) Cac directive nay quan ly viéc chuyén va thuc thi
một phần code tới thiết bị Khi host và device không có bộ nhớ vật lý hay bộ nhớ ảo, các
biến phải được sao chép từ host lên Xeon Phi
Offload đề cập tới việc viết chương trình từ góc nhìn thực thi trên processor(s) và
offload thực hiện từ host tới một hoặc vài coprocessor Chương trình bắt đầu thực thi
trên host, dựa trên code mà người dùng định nghĩa, vài phần của chương trình được offload lên một hay nhiều coprocessor
Offload là một cách lập trình tốt khi chương trình dành phần lớn thời gian để tính
toán mà ít sử dụng đến UO
Trang 25Chuong 4 PHUONG PHAP GIAI BAI TOAN SAP XEP THOI
HI Các môn học và tiết học trong danh sách
Input phải được xếp lịch
H2 Mỗi giáo viên có một danh sách thời gian mà
giáo viên bận việc, không được sắp xêp thời gian giảng dạy vào thời gian mà giáo viên bận việc
H3 Các tiết của môn học trong cùng một chương
trình giảng dạy hay được dạy bởi cùng một giảng viên phải được xêp vào các tiệt học
khác nhau
H4 Môn học thực hành phải được xếp vào phòng
thực hành
H5 Không có 2 môn học nào được diễn ra cùng
1 phòng học tại một thời điểm
Hồ Mỗi giáo viên chỉ được dạy l lớp học tại
Trang 26
S1 Các tiệt học của một môn học nên được xêp | Nêu môn học được sắp xêp
ở cùng một phòng học vào nhiêu phòng học, Mỗi
phòng học được sử dụng
được tính là 1 vi phạm
32 Phòng học phải lớn hơn số lượng sinh viên | Mỗi sinh viên vượt quá sức
trong lớp chứa của phòng học được
tính là I vi phạm
S3 Các tiết học trong cùng một khoá học nên | Mỗi tiết học trong cùng
được xếp gần nhau một khoá không liền kề tiết
học khác trong cùng một ngày được tính là 2 vi phạm
34 Số tiết học trong từng môn học phải được trải | Tống số ngày giảng day
dai với số ngày phải lớn hơn số ngày tối thiếu | của môn học nhỏ hơn số
được quy định trong từng tiết học ngày quy định của môn học
được tính là 5 vi phạm
4.2 Mô hình
M6 ta mô hình
Mỗi cá thê là một mảng 2 chiều A (MxN), các cột thê hiện thời gian, các dòng thể
hiện phòng học Thời gian học là 5 ngày (từ thứ 2 đến thứ 6) mỗi ngày sẽ có 6 tiết học
(số tiết học có thể thay đôi tuỳ theo dữ liệu đầu vào của dữ liệu) Nên M sẽ có giá trị là tối thiểu 30 Mỗi phần tử Aij, 14 tên môn học.
Trang 27Dé tối ưu hoá việc xử lý trên Xeon Phi Thay vì sử dụng mảng 2 chiéu dé dinh
nghĩa một cá thể Ta sử dụng mảng một chiều A cũng với kích MxN phân tử Với M
phân tử đầu tiên là số tiết học cho phòng học đầu M phần tử tiếp theo là thời gian cho
phòng học thứ 2 và cứ tiếp tục như vậy Sử dụng mảng một chiều để tối đa hoá vectorization trong Xeon Phi
Hình 4.1 Mô hình cá thể theo mảng một chiêu
Giải thuật di truyền mà một trong những lớp giải thuật hiệu quả để giải quyết bài
input : file xml mô tả thông tin về số môn học, phòng học, tiết học và một số ràng
buộc
Đặt thế hệ đầu tiên là g := 0;
{Khởi tạo ngẫu nhiên các cá thê trong quan thé}
for 1: = l to N do
tạo ngẫu nhiên cá thê S;
áp dụng LocalSearchQ cho cá thê S;
Trang 2812 cá thể con s1 được tạo thành bằng cầu trúc MEM hoặc bằng phép lai từ cá thê cha với xác xuât y
13 cá thể con s2 được thành bằng đột biến với xác xuất Pụ
14 tắt cả các cá thể con được áp dụng LocalSearchQ
15 thay thế những cá thê xâu nhất bằng các cá thể con
1ó gi=gtl
17 endwhile
18 output : két qua sé là cá thê tốt nhất trong quân thể
4.3 Khởi tạo cá thể và quân thể
Các cá thể được tạo ra một cách ngẫu nhiêu Mỗi gen được lựa chọn một các ngẫu
nhiên Các bước tạo một cá thể:
Cac môn học và giáo viên dạy môn học được gán bởi người quản trị, thông tin nay
có san trong input dau vao
BI - Một môn học c từ danh sách các môn học có sẵn được chọn một cách ngầu
nhiên Nếu danh sách này rỗng quay về bước 5
B2 - Chọn ngẫu nhiên một phòng học ¡ và một thời gian học j chưa có môn học,
gán môn học vừa chọn ở bước 1 vào ô được chọn, A[I#*M¬+J] = c, Nếu môn học là
môn 2 tiết học thì cột tiếp theo A[i*M+j+1] = c,
B3 - Trừ số lượng tiết học của môn học được chọn tương ứng là ] hoặc 2 tuỷ
thuộc môn học đó có phải là tiết đôi hay không Nếu số lượng tiết học bằng không
thì xoá môn học đó ra khỏi danh sách môn học
Trang 29B4) Lap lai B1, B2, B3 cho đến khi danh sách môn học rỗng
gid tri cua randSelect[i] < 0.5 thì cá thé con lay giá trị từ cha là A và ngược lại là cá thể
B Phải tách riêng mảng randSelect vì nếu sử dụng hàm randomNumber trong vòng lặp for sẽ không sử dụng đặc tính vector1zation
input: hai cá thê A và B
._ Tạo mảng randSelect để lưu trữ xác suất lựa chọn từng phần tử trong cá thé for 1:= 0 to MxN do
Trang 3013 C2[i] = Afi];
15 endfor
16 Ap dụng LocalSearchQ vào cá thể con C1 và C2
17 output: hai cá thể con C1 và C2
1 Input: Quan thé với N cá thê
2 Khởi tạo mảng rỗng selectChorosome
14 #pragma omp parallel
15 # pragma omp for
16 for (i:=0; i<count; i+=2) do
Trang 3117 crossOver(selectChorosome[i], selectChorosome[i+1 ])
4.5 Phép đột bién:
Phép đột biến dựa trên 2 loại đột biến là đột biến trên 2 điểm và đột biến trên 3
điểm Mỗi phan tử được chọn đề đột biến sẽ tạo ra 2 cA thé con dua vao hai loai d6t bién
này Đột biến 2 điểm, lựa chọn ngẫu nhiên 2 môn học trên thời khoá biêu và hoán đôi lại với nhau Đột biến 3 điểm, lựa chọn ngẫu nhiêu 3 môn học trên thời khoá biểu hoán vị
3 môn học lại với nhau
NI: được định nghĩa bởi phép dịch chuyển một môn học từ tiết học này sang tiết học
khác
N2: được định nghĩa bởi phép hoán đổi 2 môn học ở 2 tiết học khác nhau
N3: được định nghĩa bởi phép hoán vị 3 môn học ở 3 tiết học khác nhau Có 3 hoán vị
có thể có cho 3 môn học Ta dùng ] trong 2 hoán vị khác với vị trí hiện tại của 3 môn học
Trang 32output: hai cá thê con C1 va C2
Các cá thể được lựa chọn để đột biến trong quân thể với xác suất lựa chọn là Pạụ Cũng
giống như thực thi song song với phép lai ghép Các cá thể được lựa chọn để đột biến cũng được thực hiện song song bằng openmp trên Xeonphi
Input: Quân thể với N cá thê
Khởi tạo mảng rỗng selectChorosome
Trang 3310 end for
11 #pragma omp parallel
12 # pragma omp for
Số lượng ràng buộc tăng lên thì độ phức tạp của thuật toán cũng tăng lên Độ phức tạp của việc tính hàm lượng giá là O(M.N.C) Trong đó M là số tiết học, N là số phòng học và C số lượng chương trình giảng dạy Việc sử dụng Local search sẽ tính lại hàm lượng giá nhiều lần, nên để giảm thiếu số tính toán trên hàm lượng giá ở local search ta
sử dụng các mảng tạm đề lưu trữ thông tin dé kiêm tra vi phạm ràng buộc
4.7 Tìm kiếm cục bộ - Local Search (LS)
Trang 341 input: Ca thé A
2 for 1:=0 to MxN do
3 if(A[I] vi phạm ràng buộc cứng) then
4 if (còn phép biên đối chưa thực hiện ) then
5 Tinh phép bién déi lan Iuot N1, N2, N3
6 Nếu NI không thành công thì dùng N2, nếu N2 không thành công thì dùng
N3
1 Tính toán giá trị lượng giá trước và sau khi tính phép biến đối
8 Ïf ( giá trị lượng giá mới < giá trỊ lượng giá cũ ) then
9, Thực hiện phép biến đôi đi tới bước 3
15 if (A[i] vi phạm ràng buộc mém) then
16 Tính phép biến đôi lần lượt N1, N2, N3
11 Nếu NI không thành công thì dùng N2, nếu N2 không thành công thì dùng N3
18 Tính toán giá trị lượng giá trước và sau khi tính phép biến đối
19 Ïf (giá trị lượng giá mới < giá trỊ lượng giá cũ) then
20 Áp dụng phép biến đổi và đi tới bước 15
Trang 35Trong bước đầu của giải thuật tìm kiếm cục bộ (LS — Local Search) LS sẽ kiêm tra các v1 phạm ràng buộc cứng với môn học được gán, và không xét tới v1 phạm ràng buộc mềm Nếu có vi phạm ràng buộc cứng với phép gán LS sẽ loại bỏ các vi phạm ràng buộc cứng bằng cách áp dụng các biến đối N1, N2, N3 theo thứ tự đến khi thoả mãn
điều kiện dừng (Điều kiện dừng: khi cá thê đã được cải thiện hoặc đã lặp được một số lần lặp nhất định) Với mỗi phép biến đổi ta tính giá trị lượng giá thay đôi bởi phép biến đối Nếu giá trị lượng giá nhỏ hơn giá trị ban dau thi ta thực hiện phép biến đổi
Bước tiếp theo với mục tiêu là làm giảm số lượng vi phạm ràng buộc mềm trong
khi vẫn giữ không bị vi phạm ràng buộc cứng Sau khi áp dụng tất cả các phép biến đối,
nếu còn ràng buộc cứng bị v1 phạm vì LŠ sẽ dừng lại Ngược lại thì LS sẽ thực hiện bước
tiếp theo (dòng 14-25 trong giải thuật LS) Bước thứ hai cũng tương tự như bước đầu với từng phép gán môn học để làm giảm số lượng ràng buộc mềm Với từng phép gán,
LS 4p dung các phép biến đôi N1, N2, N3 theo thứ tự mà không vi phạm các ràng buộc cứng Với mỗi phép biến đổi ta tính giá trị lượng giá thay đổi Nếu giá trị lượng giá nhỏ hơn giá trị ban dau thì ta thực hiện phép biến đôi Khi giải thuật LS kết thúc , ta có được một cá thê đã được cải thiện và có thê là kết quả khả thi
4.8 Câu trúc MEM và tạo cá thể con dựa vào cấu tric MEM
Trang 36
Trong gua trinh su dung tim kiếm cục bộ, một bộ nhớ dùng thêm hay cầu trúc dữ liệu
được sử dụng, được ký hiệu là MEM ( được lây từ Memory) Hình 4.2 trình bày cầu trúc
chi tiết của MEM Mỗi phép gán môn học e có một danh sách các cặp phòng học và thời
gian không vi phạm các ràng buộc cứng và ràng buộc mêm
L Giải thuật 5: Tạo cấu trúc MEM
10
1 input: Toàn bộ tất cả các cá thê P
2 sắp xếp các cá thê P theo độ thích nghi giảm tăng dân
for mỗi phép gán môn hoc e; do
Tính toán sự vi phạm ràng buộc đối với phép gán e;
Ïf (c¡ không vi phạm ràng buộc) then
thêm cặp phòng học rẹ và thoi gian t, (fe, t.) vào trong list |, end if
end for
11 end for
12 output: Cau trac MEM
Cau truc MEM sau đó được dùng đê tạo ra các cá thê con ở các thê hệ sau Câu trúc
MEM sẽ được cập nhật sau t thê hệ đê tạo cân băng với việc cho ra kêt quả tôt ưu và thời gian thực thi của giải thuật di truyền GSGA (Guide Search Genetic Algorithm)
Cũng nhăm mục đích tránh được các tôi ưu cục bộ
Với GSGA, Cá thê con được tao ra bang cau trúc MEM hoặc thực hiện phép lai với
xác suất y Khi một cá thể con được tạo ra, một số ngẫu nhiên p thuộc khoảng [0.0, 1.0].
Trang 37Néu p nho hon y, ca thể con được ra bằng cầu trúc MEM, ngược lại cá thể con được tạo
ra bằng phép lai
Khi cá thể con được tạo ra bằng cầu trúc MEM Với mỗi tiết học trong từng hoc môn học e, ta lay ngẫu nhiên một phần tử trong danh sách của môn học e là lạ, Sau đó gán tiết học và phòng học với môn học e vào trong cá thể con Quá trình lặp lại cho đến khi hết số tiết học trong môn học Sau quá trình đó sẽ có những môn học có số tiết học chưa được gán Các tiết học đó sẽ được gán ngẫu nhiên vào các tiết học và phòng còn trống Kết thúc quá trình ta sẽ được một cá thể con
L Giải thuật 6: Tạo cá thể con dựa vào cấu trac MEM
“TT hoat Câu trúc MEM LH TH E2 CS nnn
2 for mỗi môn học trong danh sách đầu vào do
3 _ for mỗi tiết học trong môn học do
11 for các tiết học bị thiếu trong danh sách môn học do
12 Gan ngẫu nhiên môn học vào vị trí tiết học và phòng học còn trồng
13 end for
14 Áp dụng LocalSearch vào cá thé con
15 output: Ca thể con được tạo ra dựa vào cầu trúc MEM
Trang 38Chuong 5 HIEN THUC VA THU NGHIEM
Môi trường thực thi
- Host: May tram su dung 2 CPU Xeon 2650
Mỗi Cpu có 8 core 16 luồng thực thi với tốc đột 3.1 GHz
Bộ nhớ chính (RAM) 32G
- Card Xeonphi: st dụng Xeonphi 7120p, gồm có 61 Cores 1.24 GHz, mỗi core có
4 luồng thực thi, bộ nhớ cache 30.5MB L2, Bộ nhớ chính 16GB
Chương trình được viết trên ngôn ngữ C Sử dụng trình biên dịch ICC của Intel để
biên dịch chương trình song song Chương trình được thực thi trực tiếp trên Card Intel Xeonph1 7120p ( lập trình theo hướng native), sức mạnh tính toán của Xeonphi là hon 1 TeraFLOPS
Chương trình sử dụng tập đánh gia ITC-2007 Curriculum Based Course
TimeTabling, tập đánh giá gồm 19 input dau vào
Thông số được dùng cho giải thuật GSGA như sau:
Bảng 5.1 - Thông số giải thuật GSGA
Trang 39
Bang 5.2 - Tap dit liéu dau vao
Mônhọc Số tiét| Phong Số tiết Số ngày Chương Ngày
Trang 40Đầu tiên chương trình được chạy thử nghiệm 4 tập dữ liệu, 2 tập dữ liệu nhỏ và 2 tập dữ liệu lớn Chương trình được thực thi thử nghiệm trên số luéng thực thi khác nhau và
được thực thi với 50 thế hệ và thời gian thực thi được tính bằng giây Kết quả trung bình được thể hiện ở bảng 5.3
Bảng 5.3 - So sánh kết quả đạt được với 4 giải thuật khác