đà <> VO MINH KHAI
THUC HIEN GIAI THUAT SAP XEP THOI KHOA BIEU TRUONG DAI HQC SU DUNG GIAI THUAT DI TRUYEN
VOI 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Ĩ
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) Cán bộ chấm nhận xét l : ¿52tr (Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ châm nhận xét 2 : - 2 2.1 St Sa SvESESEESEEEEEEsErkrerrsesrsrrsrsrd (Ghi rõ họ, tên, học hàm, học vị và chữ ký) Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày tháng năm
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
CAN BO HUONG DAN TRUONG KHOA KH & KTMT
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
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
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
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
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
Trang 9Bảng 4.1 - Mô tả các ràng ĐUỘCC - - - - << << KT Bảng 5.1 - Thông số giải thuật Œ'ŠŒA - - 55+ 2k EEEkkEEk E11 rrki |;11.Đ9⁄VL):1.0Ẵ.1201./.08 1.000000NNN ấn Bảng 5.3 - So sánh kết quả đạt được với 4 giải thuật khác - cccccccscseereered DANH MỤC HÌNH ẢNH
Hì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
Hirth S09 ‹i 0 9091
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
Hình 4.2 Câu trúc MEM +: hư gi
DANH MUC TU VIET TAT Ký hiệu chữ viết tắt Chữ viết đầy đủ GA Genetic Algorithm SA Simulated Annealing TS Tabu Search
GSGA Guide Search Genetic Algorithm MIC Many Integrated Core
SIMD Single instruction, multiple data LS Local Search
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 111.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
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
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
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á
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
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
bộ
Giải thuật TS bắt đầu từ một lời giải ban đầu sau đó được lặp để khai phá các lời giải kế cận Bước di chuyên tiếp theo được chọn sau khi đánh giá hết toàn bộ các lời giải kế cận của lời giải hiện tại Một lời giải không tốt có thê được chấp nhận miễn là chất lượng lời giải đó tốt hơn toàn bộ các lời giải kế cận Việc này có thể dẫn đến việc lặp
vòng, như việc di chuyền lặp lại trong một phần của không gian tìm kiếm Đề tránh việc lặp vòng TS sử dụng bộ nhớ đê lưu trữ danh sách tabu (tabu list) Nếu một lời giải được tìm thấy trong danh sách tabu, nó được gọi là một lời giải tabu (tabu solution) và lời giải
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-
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
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
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: Khởi tạo quân thẻ Y Lira chon cha me 4+——— v Lai chép Y Đột biện Y Đâu tranh sinh tồn "ộỘỪỒỖỒ ee ee FALSE ——_ Điều kiện dừng —- —— —~T””” TRUE Y Các cá thẻ tôt nhất
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
Trang 20| Cac thao tac trén GA | Master
— Giá trị lượng giá
| | | Slave
Tính toán Tính toán Tính toán Tinh toan
gia tri gia tri gia tri gia tri
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
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
c) Coarse-Grained Parallelization
Ở phương pháp này, mỗi process được gán một một thuật GA đơn giản và giữa các processor có kêt nôi với nhau đê có thê truyền các cá thê lần nhau
island
Migration
Island Island
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ê
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
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
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
Trang 25Chuong 4 PHUONG PHAP GIAI BAI TOAN SAP XEP THOI KHOA BIEU 4.1 Các ràng buộc: Bảng 4.] Mô tả các ràng buộc Tên ràng | Mô tả Giá trị vi phạm buộc
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
cùng 1 thời điểm
Trang 26S1 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 khố 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
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 A, bene soneae 1 2 3 4 5 6 7 8 9 10 11 LTTTTT-TT+TTT- MA M M 4 * ch ¥ + *
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;
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
Trang 29B4) Lap lai B1, B2, B3 cho đến khi danh sách môn học rỗng
B5) Kết thúc quá trình
Lặp lại N lần việc tạo cá thể ta được quân thê N phần tử
4.4 Phép lai:
Để việc song song hoá trở nên hiệu quả, ta tối đa hoá vectorization trong Xeonphi bằng các sử dụng phép lai đa điểm Đâu tiên ta khởi tạo randSelect để lưu trữ các giá trị ngẫu nhiên trong khoảng [0, 1], sau đó lặp qua toàn bộ các tiết học và phòng học Nếu
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
Trang 3013 C2[i] = Afi];
14 endif
15 endfor
16 Ap dụng LocalSearchQ vào cá thể con C1 và C2
17 output: hai cá thể con C1 và C2
Các cá thê được lựa chọn để lai ghép trong quân thể với xác suất lựa chọn là Pc Khi số lượng cá thể được lựa chọn là số lẻ thì ta loại bỏ cá thể cuối cùng ra khỏi danh
sách lựa chọn phép lai được sử dụng song song cho từng cặp cá thể cha trên Xeonphi thông qua openmp, mỗi cặp cá thê cha được lựa chọn sẽ được thực thi lai ghép trên một core cua Xeonphi
1 Input: Quan thé với N cá thê
2 Khởi tạo mảng rỗng selectChorosome 3 count=0 4 for i=1 to N do 5 rand = số ngẫu nhiên trong khoảng [0, 100] 6 7 8 9 if ( rand < Pc) then selectChorosome[count] = cá thé i count ++; end if 10 end for 11 if (count 1a sé lẻ) then 12 count ; 13 endif
14 #pragma omp parallel 15 # pragma omp for
Trang 3117 crossOver(selectChorosome[i], selectChorosome[i+1 ])
18 end for
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à hố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 hố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 hốn đổi 2 mơn học ở 2 tiết học khác nhau
Trang 3224 25 26 21 28 29 30 31 32 33 34 35 36 randomPosition1 = randomNumber(0, MxN); randomPosition2 = randomNumber(0, MxN); randomPosition3 = randomNumber(0, MxN); temp]l = CI[RandomPosition] ]; temp2 = C1[RandomPosition2]; temp3 = C1[RandomPosition3]; C1[RandomPosition1] = temp2; C1[RandomPosition2] = temp]; C2[RandomPosition1 ] = temp2; C2[RandomPosition2] = temp3; C2[RandomPosition3] = temp]; Ap dung LocalSearch() trén C1 va C2;
output: 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ê
Trang 3310 end for
11 #pragma omp parallel 12 # pragma omp for 13 for G:=0; i<count; 1+=1) do 14 muation(selectChorosome[1]) 15 end for 4.6 Hàm lượng gia: F(x) = » w‡xPỆ + » w?xPh i=1 4 i=1 6
Trong đó x là cá thê w là trọng số tương ứng cho các ràng buộc cứng và ràng buộc mềm, P; bằng 0 nếu cá thể không thoả mãn ràng buộc và bằng 1 nếu cá thê thoả mãn ràng buộc 1
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 tố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 10 endif 11 endfor 12 13 if ( trong cá thể A không có vi phạm ràng buộc cứng ) then 14 fori:=0 ío MxN do
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
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
Trang 36Trong 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 3 chọn ra tập Q gồm ơ cá thể tốt nhất trong P 4 for mỗi cá thé I trong Q do 5 6 7 8 9
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
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 4 if (1, != NULL) then 5 Chọn ngẫu nhiên phép gán môn học vào trong tiết học và học phòng học từ danh sách l, 6 Gián thời gian và phòng học với môn học đã được chọn trong 7 end if 8 end for 9 end for
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
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:
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