TỔNG QUAN
Giới thiệu
Trong những năm vừa qua, sự bùng nổ của dữ liệu lớn (Big Data) đã thúc đẩy sự phát triển của rất nhiều lĩnh vực khoa học và công nghệ trên thế giới Hàng loạt các phát kiến quan trọng đã được khám phá, đem lại lợi ích to lớn cho con người Bên cạnh đó, rất nhiều bài toán và lý thuyết phức tạp trước đây mà gần như không có kết quả đã tìm ra được lời giải hoặc được chứng minh Khi nhắc đến những thành tựu trên, ta không thể không kể tới vai trò cực kì quan trọng của các hệ thống tính toán hiệu năng cao (HPC) Việc tiếp nhận, lưu trữ, xử lý các tập dữ liệu cực kì lớn và phức tạp yêu cầu các hệ thống tính toán đặc biệt với năng lực xử lý cực kỳ mạnh và hạ tầng phần cứng riêng biệt so với các hệ thống máy tính thông thường Do đó, các hệ thống HPC đang thu hút rất nhiều sự quan tâm trên thế giới Đây không chỉ còn là cuộc chơi giữa các cường quốc khoa học như Nhật Bản, Mỹ, Đức, mà đã mở rộng sang quy mô toàn cầu Bản đồ tính toán hiệu năng cao đang ghi nhận thêm số lượng ngày càng tăng các hệ thống mới nổi từ các nước đang phát triển như Trung Quốc, Ấn Độ, Singapore và thậm chí là từ Việt Nam với các hệ thống HPC tại trường Đại học Bách Khoa (SuperNode-XP) hay từ VinAI Bên cạnh đó cũng xuất hiện các nhóm chia sẻ tính toán hiệu năng cao trong nội bộ các tổ chức đa quốc gia như Liên minh Châu Âu (EU) hay Hiệp hội các quốc gia Đông Nam Á (ASEAN) Những sự đầu tư trên cho thấy được sức ảnh hưởng ngày càng lớn của các hệ thống HPC đối với sự phát triển bền vững của con người Vai trò của các hệ thống này không còn chỉ gói gọn trong các ngành khoa học mà còn cả trong việc xây dựng các chiến lược phát triển kinh tế và đời sống xã hội
Một trong những yêu cầu cấp thiết của các hệ thống tính toán hiệu năng cao là khả năng hỗ trợ đa người dùng khai thác hiệu quả tài nguyên tính toán Để đảm bảo việc này, thông thường trên các hệ thống HPC thường sử dụng các trình quản lý tài nguyên và định thời ứng dụng (RJMS) Tuy nhiên, việc chọn lựa được một chương trình định thời tốt là một nhiệm vụ khó khăn đối với quản trị viên các hệ thống HPC Chính sách First-Come-First-Served (FCFS) vẫn được ưu tiên sử dụng trên hầu hết
2 các hệ thống HPC Mặc dù nhược điểm phân mảnh tài nguyên của FCFS đã được giải quyết bằng cách áp dụng các thuật toán Backfilling, hiệu quả của việc kết hợp này vẫn còn xa khi so sánh với một chính sách lập lịch lý tưởng Do đó, nhiều phương pháp tiên đoán (heuristics) đã được nghiên cứu để thúc đẩy các bộ lập lịch công việc HPC chẳng hạn như thuật toán Shorted Job First (SJF), Bin Packing hoặc các phương pháp tối ưu hóa (optimization) [1], [2] Tuy nhiên, sự gia tăng về tính đa dạng của phần mềm khoa học và phần cứng tính toán đang khiến việc sử dụng các phương pháp tiếp cận tĩnh này ngày càng trở nên khó khăn hơn Khi có sự thay đổi đột ngột trong quá trình khai thác hệ thống thì người quản trị thường phải can thiệp bằng tay để căn chỉnh các thông số của thuật toán cho phù hợp với chính sách đang áp dụng trên hệ thống
Do đó, việc áp dụng các thuật toán động có khả năng tự điều chỉnh với sự thay đổi liên tục trên các hệ thống HPC là điều cần thiết
Tuy nhiên, một trong những rào cản lớn trong việc hiện thực các giải thuật quản lý tài nguyên và định thời công việc là tính không chắc chắn của trạng thái hệ thống Điều này là hệ quả của việc các thông số của một công việc phụ thuộc toàn bộ vào giá trị được cung cấp từ người dùng [3] Các phần mềm RJMS sẽ dựa vào các giá trị đầu vào này để xác định số lượng tài nguyên được cấp và ước tính thời gian bắt đầu Một đặc điểm quan trọng là các giá trị dựa trên sự ước tính của người dùng thường không chính xác do nhiều nguyên nhân, từ cả chủ quan và khách quan Việc xác định không chính xác các thông số này sẽ gây ra khó khăn cho các trình định thời khi trạng thái thực tế sai khác với trạng thái do RJMS đã dự đoán trước đó Do đó, giải pháp dự đoán thông số công việc trở nên rất phổ biến trong số các cách tiếp cận mới trên các hệ thống HPC Tuy nhiên, việc căn chỉnh các thông số không hợp lý có thể gây cản trở việc thực thi các tác vụ, làm giảm độ tin cậy trên các hệ thống HPC Ngoài ra, việc thiếu khả năng hỗ trợ chính thức từ các trình RJMS phổ biến đang hạn chế các quản trị viên trong việc tích hợp các thuật toán quản lý hiện đại vào các hệ thống HPC đang sử dụng Do vậy, cần có một phương pháp dự đoán vừa hiệu quả, đơn giản với cả người dùng và người quản trị, cũng như không ảnh hưởng tới việc vận hành bình thường các hệ thống HPC
Với các lí do như đã nêu ở trên, đề tài này được thực hiện với các mục tiêu chính như sau:
- Đề xuất mô hình học máy dự đoán thông số của một công việc mới trên hệ thống dựa trên dữ liệu người dùng cung cấp và lịch sử các công việc đã hoàn thành Việc áp dụng mô hình dự đoán ít gây tác động tới các ràng buộc hiện tại của hệ thống và đảm bảo tính công bằng giữa các người dùng
- Đề xuất giải pháp tăng hiệu suất khai thác tài nguyên tính toán thông qua việc cải thiện quá trình định thời ứng dụng trên hệ thống sử dụng mô hình học tăng cường
- Đề xuất chiến lược kết hợp các mô hình thành một giải pháp hoàn chỉnh nhằm khắc phục các vấn đề của mô hình học tăng cường với dữ liệu thực tế.
Ý nghĩa của đề tài
- Hỗ trợ người dùng sử dụng tài nguyên hiệu quả hơn: Luận văn góp phần hỗ trợ người dùng căn chỉnh thông số tài nguyên sử dụng của một ứng dụng mới được submit lên hệ thống
- Đảm bảo tính an toàn trong việc áp dụng các phương pháp căn chỉnh thông số công việc: Đề tài góp phần đánh giá một phương pháp mới là Soft
Walltime trong việc áp dụng các thông số đã được căn chỉnh một cách an toàn vào các hệ thống HPC đang vận hành
- Cải thiện hiệu suất khai khác các hệ thống HPC: Luận văn đề xuất áp dụng mô hình học sâu tăng cường giúp cho việc khai thác tài nguyên tính toán trên các hệ thống HPC trở nên hiệu quả hơn so với các thuật toán thông dụng khác b Ý nghĩa khoa học:
- Đóng góp về mô hình dự đoán thông số công việc sử dụng thuật toán k NN với Soft Walltime: Các thông số cho một công việc của người dùng được mới dự đoán bằng thuật toán kNN sử dụng dữ liệu lịch sử về những công việc tương tự nhất Sau đó, các giá trị đã được căn chỉnh được chỉ
4 được sử dụng trong quá trình ra quyết định phân bổ tài nguyên, theo định nghĩa của Soft Walltime
- Đề xuất mô hình định thời kết hợp giữa học tăng cường và phương pháp dự đoán công việc: Các công việc thực tế có độ sai lệch rất lớn về dự đoán thời gian chạy, gây nhiều khó khăn cho việc ra quyết định cấp phát tài nguyên của mô hình học tăng cường Đề tài đề xuất phương pháp định thời kết hợp giữa kỹ thuật học tăng cường hiện đại và phương pháp dự đoán thông số công việc ở trên để tối ưu hoá việc sử dụng tài nguyên hệ thống
- Đóng góp về các công cụ hỗ trợ trong việc nghiên cứu khoa học: Hai công cụ nội bộ được đề tài nghiên cứu và sử dụng quá trình thực hiện luận văn được chia sẻ công khai cho cộng đồng bao gồm công cụ chuyển đổi pbspro2swf và mô hình học tăng cường HPCSysGym dựa trên đặc tả của OpenAI Gym.
Phạm vi của đề tài
- Đối tượng thực nghiệm: Đề tài tập trung vào việc cải thiện hiệu năng các hệ thống HPC dành cho tính toán khoa học đang được vận hành trên thế giới và ở Việt Nam Các hệ thống này có thể đồng nhất hoặc không đồng nhất về tài nguyên tính toán
- Dữ liệu thực nghiệm: Dữ liệu trong đề tài được thu thập từ các nguồn uy tín trong lĩnh vực nghiên cứu, bao gồm các tập dữ liệu lịch sử công việc từ các hệ thống HPC trên thế giới và cả từ hệ thống SuperNode-XP tại trường Đại học Bách Khoa
- Phương pháp thực hiện: Các phương pháp đề xuất trong luận văn đều xuất phát từ các vấn đề thực tế, được phân tích từ lý thuyết đến thực nghiệm Kết quả của các mô hình đều được kiểm chứng bằng các tập dữ liệu được sử dụng rộng rãi trong nhiều nghiên cứu trước đây, và được so sánh khách quan với các thuật toán đối chứng phổ biến trong lĩnh vực HPC
- Bối cảnh đề tài: Hiện trạng sử dụng tài nguyên tính toán trên các hệ thống
HPC trên thế giới và Việt Nam trong thời gian vừa qua
Bố cục luận văn
Có tất cả 8 chương trong báo cáo luận văn này Các nghiên cứu liên quan tới lĩnh vực HPC và học máy được trình bày trong chương 2 Chương 3 cung cấp các cơ sở lý thuyết nền tảng cho các giải pháp được đề xuất trong luận văn Tiếp đó, chương
4 phân tích các bài toán mà luận văn cần phải giải quyết dựa trên cơ sở các vấn đề ở thực tiễn Chương 5 trình bày chi tiết quá trình hiện thực các phương pháp đề xuất nhằm giải quyết các vấn đề đặt ra Chương 6 thể hiện phương pháp và kết quả quá trình thực nghiệm, đánh giá trên các tập dữ liệu và phương pháp đối chứng Cuối cùng, chương 7 là kết luận của luận văn về những công việc đã hoàn thành trong phạm vi đề tài, cũng như các hạn chế cần khắc phục và hướng mở rộng trong tương lai
CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN
Các hướng nghiên cứu về dự đoán thông số công việc trên các hệ thống tính toán hiệu năng cao
Liên quan đến việc dự đoán thông số công việc quản lý tài nguyên trên các hệ thống HPC, đã có rất nhiều nghiên cứu được thực hiện từ trước tới nay Đặc biệt, vấn đề về việc dự đoán sai lệch thời gian chạy của một công việc trên hệ thống HPC đã được đánh giá như một vấn đề quan trọng trong việc khai thác các hệ thống này [4] Nhiều nghiên cứu [5], [6] đã đánh giá độ chính xác của các giá trị ước tính do người dùng cung cấp trên các tập dữ liệu thu thập từ các hệ thống HPC trên thế giới và phát hiện ra rằng hầu hết các dự đoán của người dùng là quá cao so với giá trị thực tế Sau sự ra đời của các thuật toán Backfilling, Frachtenberg và Feitelson [4] đã chứng minh tác động của các giá trị ước tính không chính xác lên quá trình định thời công việc Một cách đáng ngạc nhiên, Zotkin và Keleher [7] đã kết luận rằng các hệ thống HPC có thể thu được một số lợi ích đáng kể từ việc dự đoán thời gian chạy của ứng dụng vượt trên thực tế Ahuva và cộng sự [6] cũng cho thấy được những lợi ích tiềm năng khi tăng các giá ước tính từ người dùng lên nhiều lần cho một công việc mới Tuy nhiên, Dan Tsafrir [8] sau đó đã chỉ ra rằng các mô hình được đề xuất ở trên gây ảnh
7 hưởng xấu lên độ hiệu quả của quá trình định thời công việc Việc dựa quá nhiều vào dự đoán từ người dùng khiến cho các trình RJMS không phân biệt được các công việc thực tế có thời gian là ngắn hay dài, làm giảm xác suất Backfilling các công việc phù hợp Ngoài ra, Chiang và cộng sự [9] cũng đã chỉ ra lợi ích của việc thời gian công việc được dự đoán chính xác hơn trên việc cải thiện hiệu suất hệ thống Để giảm tác động của việc dự đoán sai lệch, các nhà nghiên cứu đã tìm hiểu các giải pháp để điều chỉnh các giá trị ước tính từ người dùng Một cách tiếp cận đơn giản như lấy giá trị trung bình của hai thời gian chạy thực tế mới nhất từ lịch sử submit công việc của cùng một người dùng [10] có thể cải thiện đáng kể hiệu suất các hệ thống HPC Ngọc và Wolters [11] đã chia công việc thành các nhóm riêng biệt và sử dụng các thuật toán di truyền trên dữ liệu lịch sử vận hành hệ thống để dự đoán thời gian chạy một công việc mới Ngoài ra, Gaussier và cộng sự [12] đã đề xuất phương pháp bộ ba tiên đoán (heuristic tripple) bằng cách sử dụng kỹ thuật học máy để cải thiện hiệu suất tính toán, trong khi Park và Kim thực hiện việc dự đoán thời gian chạy các công việc song song, phân tán bằng mạng nơ-ron nhân tạo [13]
Cùng với việc phát triển các kỹ thuật mới giúp dự đoán thông số công việc, chi tiết về tác động các kỹ thuật này cũng được phân tích để giúp quản trị viên hệ thống xem xét các ảnh hưởng có thể lên các hệ thống HPC đang vận hành sau khi áp dụng các giá trị được tinh chỉnh Một nghiên cứu sâu hơn về việc cải thiện dự đoán thời gian chạy dựa trên lịch sử hoạt động của người dùng với tính năng Soft Walltime đã được thực hiện bởi Klus'avcek và Chlumsk'y [14] Tuy nhiên, nghiên cứu này chỉ sử dụng một phương pháp heuristic đơn giản bằng cách sử dụng dữ liệu từ năm lần dự đoán gần nhất của người dùng đang submit công việc hiện tại Do vậy đối với một số tập dữ liệu phức tạp, ta phải áp dụng các phương pháp tiên tiến hơn.
Các hướng nghiên cứu trong lĩnh vực học máy
Trong những năm vừa qua, học máy đang trở thành một trong những trụ cột chính trong sự thúc đẩy cuộc cách mạng công nghệ 4.0, bên cạnh các hệ thống HPC Rất nhiều các nghiên cứu về học máy đã được thực hiện trong cả lý thuyết và thực nghiệm, đem học máy gần hơn với thực tế và mở ra ngày càng nhiều lợi ích cho con
8 người Có thể kể tới các ứng dụng nổi bật của học máy như phân biệt khuôn mặt, theo dõi tình trạng giao thông, các hệ thống gợi ý, phân tích dữ liệu kinh tế, nhận diện chữ viết [15], v.v
Tuy nhiên, tồn tại rất nhiều các vấn đề trong thực tế thường rất phức tạp, rất khó để mô hình hoá bằng các kỹ thuật học máy thông thường Học tăng cường (RL) đã trở thành một trong những kỹ thuật nổi bật nhất để giải quyết các vấn đề phức tạp trong các lĩnh vực khoa học khác nhau, bao gồm dạy máy tính chơi các trò chơi điện tử, thiết kế xe tự hành, học cách chuyển động của con người, v.v… Trong lĩnh vực HPC, nhiều mô hình học tăng cường [16]–[18] cũng đã được áp dụng để tìm cách tối đa hóa phần thưởng tích lũy được thông qua quá trình định thời công việc trên các hệ thống HPC Các giải pháp được đề xuất này đã cho thấy tiềm năng đáng kể của việc áp dụng các mô hình học tăng cường trong việc cải thiện không chỉ cho các hệ thống HPC nói chung mà còn cho các hệ thống tính toán phân tán dành riêng cho một mục đích cụ thể như huấn luyện các mô hình học máy học hoặc xử lý dữ liệu
CƠ SỞ LÝ THUYẾT
Tổng quan về các hệ thống tính toán hiệu năng cao
Tính toán hiệu năng cao đề cập đến các hệ thống máy tính có sức mạnh tính toán cực lớn với khả năng giải quyết các vấn đề cực kỳ phức tạp, đòi hỏi nhiều phương pháp xử lý chuyên biệt Việc xây dựng và vận hành thành công một hệ thống HPC yêu cầu sự tổng hoà của rất nhiều yếu tố như kiến trúc xử lý, thuật toán định thời và quản lý tài nguyên, chương trình quản lý người dùng, hạ tầng mạng nội bộ và Internet, ứng dụng hỗ trợ tính toán khoa học, phần mềm giám sát hệ thống, mạng lưới cung cấp điện, bộ tản nhiệt,… Bên cạnh đó, việc quản lý các hệ thống HPC cũng yêu cầu nguồn nhân lực có trình độ cao với kinh nghiệm và kỹ thuật chuyên sâu trong việc vận hành các hệ thống phức tạp và có kích thước lớn Đây cũng những điểm bất lợi lớn trong việc khai thác các hệ thống HPC, đặc biệt là tại các nước đang phát triển như Việt Nam với kinh phí hạn hẹp và nguồn nhân lực hạn chế
Nhìn chung, các hệ thống HPC là nơi tập trung các tiến bộ khoa học tiên tiến nhất trong lĩnh vực máy tính để cung cấp tài nguyên tính toán hiệu quả và nhanh chóng nhất, cũng như các công nghệ chuyên biệt cho việc tính toán song song, phân tán ở quy mô cực kì lớn Có thể kể tới hệ thống siêu máy tính mạnh nhất thế giới hiện nay theo là Fugaku trên Hình 3.1 đang sử dụng vi xử lý tuỳ biến A64FX rất mạnh do Fujitsu sản xuất với kiến trúc ARM Ngoài ra, các hệ thống HPC cũng sử dụng rất nhiều công nghệ mới như HBM (High Bandwidth Memory), mạng cáp quang InfiniBand tốc độ cao, các hệ lưu trữ phân tán như Lustre, GPU,… Ngày nay, các siêu mỏy tớnh hàng đầu thế giới đó đạt tới khả năng tớnh toỏn vượt quỏ 10ạ⁷ - một trăm triệu tỷ phép tính mỗi giây (hiệu suất tiền exascale) Thế hệ tiếp theo - exascale sẽ có khả
10 năng thực hiện hơn một tỷ tỷ (10ạ⁸) phộp tớnh mỗi giõy Siờu mỏy tớnh exascale đầu tiên trên thế giới được kì vọng sẽ được đưa vào hoạt động tại Châu Âu vào năm 2021
Hình 3.1 Hệ thống Siêu máy tính Fugaku
Hình 3.2 Hệ thống Tính toán hiệu năng cao SuperNode-XP
Không nằm ngoài xu thế chung của thế giới, Đại học Quốc Gia Thành Phố Hồ Chí Minh (ĐHQG-HCM) đã đầu tư một hệ thống Tính toán hiệu năng cao như trên Hình 3.2 với tên gọi SuperNode-XP vào năm 2015 Hệ thống này được đặt tại Phòng thí nghiệm Tính toán Hiệu năng cao (HPC Lab) tại Trường Đại học Bách Khoa – ĐHQG-HCM Đây là hệ thống tính toán hiệu năng cao với 24 node xử lý phân tán với năng lực xử lý lớn, giúp thúc đẩy công tác nghiên cứu khoa học không chỉ trong lĩnh vực HPC tại trường Đại học Bách Khoa mà còn cho các ngành khoa học khác tại Việt Nam
Phạm vi ứng dụng của các hệ thống HPC sẽ ngày càng được mở rộng hơn nữa trong tương lai Các ứng dụng hoàn toàn mới sẽ xuất hiện không chỉ trong khoa học kỹ thuật mà còn trong cả đời sống sản xuất như truy xuất thông tin, hỗ trợ ra quyết định, phân tích tài chính hoặc khai phá dữ liệu Đặc biệt, sự gia tăng nhanh chóng trong tương lai về lượng dữ liệu được lưu trữ trên toàn thế giới sẽ khiến sức ảnh hưởng của các hệ thống HPC trở nên ngày lớn hơn đối với con người.
Quản lý tài nguyên và định thời công việc trên các hệ thống tính toán hiệu năng cao 11
Về cơ bản, quản lý tài nguyên và định thời công việc là quá trình kiểm soát việc thực hiện các công việc do người dùng yêu cầu trên các hệ thống HPC Nhìn theo nghĩa rộng hơn, quá trình này tương đương với việc tổ chức công việc và nguồn lực trong phần lớn các hệ thống sản xuất, phân phối hàng hoá, dịch vụ và thậm chí cả trong cuộc sống hàng ngày của chúng ta với đặc điểm chung là bao gồm nhiều công việc cùng với các nguồn lực có hạn Ví dụ về nguồn lực có thể là máy móc dành cho sản xuất, đội ngũ nhân viên tại một công ty, hệ thống xe vận chuyển hàng hoá v.v… Trong khi đó, các công việc tương ứng có thể là các bước trong một quy trình sản xuất, các giấy tờ cần được xử lý hoặc hàng hoá cần được chuyển đi từ kho tới nơi nhận
Xét trong ngữ cảnh HPC, thực thi các công việc từ người dùng một trong những hoạt động chính trên các hệ thống này và là hoạt động tương tác chủ yếu giữa người dùng với hạ tầng tính toán Các ứng dụng được khai thác trên các hệ thống HPC
12 thường mang tính chất phức tạp, cần nhiều công cụ, thư viện đi kèm và đòi hỏi năng lực tính toán cực kì lớn Các công việc này trải dài từ các ứng dụng HPC truyền thống như giải mã trình tự gen, phân tích hoá học, xây dựng các mô hình tài chính, dự báo thời tiết, phân tích địa chất, trực quan hoá thiên tai, tính toán lưu lượng giao thông cho tới các ứng dụng hiện đại mới nổi hiện nay như học máy, trình gợi ý, xe tự hành, trí tuệ nhân tạo Để khai thác hiệu quả lượng tài nguyên tính toán rất trên các hệ thống HPC, các ứng dụng thường được xử lý song song, phân tán với các thư viện phổ biến như MPI [19] hay OpenMP [20] hoặc sử dụng phần cứng đặc biệt như GPU
Hình 3.3 Biểu đồ Gantt cho quá trình định thời 100 công việc với thuật toán
EASY Backfilling Để xử lý việc thực thi một khối lượng công việc rất lớn trên một hạ tầng cực kì phức tạp với nhiều ràng buộc về tài nguyên, các hệ thống HPC thường được quản lý bởi các hệ thống quản lý tài nguyên và công việc (RJMS) như Slurm [21], PBS Pro [22], OAR [23] hoặc Flux [24] Chính sách quản lý tài nguyên và công việc trên các hệ thống HPC cần phải đáp ứng một hoặc nhiều yêu cầu như tối ưu hóa việc khai thác tài nguyên hệ thống, giảm thời gian chờ đợi của các ứng dụng, đảm bảo ràng buộc giữa công việc với nhau,… Để đạt được những mục tiêu này, các trình RJMS phải có trách nhiệm giám sát tất cả các công việc đã được người dùng submit, các công việc đang chạy và cả các công việc đã hoàn tất trên hệ thống HPC Việc quản lý như vậy nhằm mục đích theo dõi chính xác tình trạng sử dụng tài nguyên, từ đó giúp trình định
13 thời đưa ra các quyết định chính xác Các chương trình RJMS chịu trách nhiệm xử lý tập trung các công việc được đệ trình (submit) từ người dùng Các công việc trên được đưa vào hàng đợi và chờ trình RJMS tiến hành phân bổ tài nguyên và định thời các công việc này dựa theo chính sách của hệ thống
Hình 3.4 Các thuật toán Backfilling (Nguồn: [25])
Hiện nay, nhiều chính sách định thời có thể được xem xét cho việc sắp xếp thứ tự thực thi các công việc Một lựa chọn phổ biến trên các hệ thống HPC hiện nay là sử dụng chính sách First-Come-First-Served (FCFS) đơn giản với những ưu điểm chính là cách triển khai đơn giản, đảm bảo sự công bằng giữa người dùng và ngăn chặn tình trạng ứng dụng phải chờ đợi vô hạn định Điều này giúp FCFS được ưu tiên hơn các thuật toán định thời khác như Shorted Job First (SJF) hay Bin-Packing Hơn nữa, các hệ thống này thường được áp dụng thêm các thuật toán Backfilling để khai thác tốt hơn lượng tài nguyên tính toán có hạn EASY [26] và Conservative Backfilling [27] là hai phiên bản phổ biến của Backfilling được biết tới Trên Hình 3.3 là biểu đồ Gantt thể hiện quá trình định thời và cấp phát tài nguyên cho 100 ứng dụng trên một hệ thống HPC sử dụng thuật toán EASY Backfilling Ngoài ra còn có các thuật toán Backfilling khác có thể kể đến như Fatten Backfilling [25] Tổng quan các thuật toán Backfilling này được thể hiện trên Hình 3.4 Ý tưởng cơ bản của các thuật toán Backfilling là cho phép các công việc đang chờ đợi phía sau được quyền thực hiện trước, miễn là các công việc đó không làm trì hoãn thời gian bắt đầu của một số các công việc khác trước nó Số lượng các công việc được “giữ chỗ” này tuỳ thuộc vào thuật toán Đối với EASY, thuật toán này chỉ đảm bảo là duy nhất một công việc ở đầu hàng đợi sẽ được đảm bảo thời gian chạy Trong khi đó, thuật toán Conservative Backfilling – đúng như cái tên của nó, đảm bảo rằng việc thực thi một công việc đang chờ sẽ không gây ảnh hưởng tới tất cả các công việc đứng trước nó Một cách rõ ràng, ta có thể thấy thuật toán Conservative Backfilling đảm bảo việc công bằng giữa các công việc với nhau, đem lại nhiều lợi ích hơn cho việc định thời Tuy nhiên, việc phải xây dựng trạng thái cấp phát tài nguyên cho tất cả công việc yêu cầu một khối lượng tính toán rất lớn, đặc biệt là trong trường hợp có hàng nghìn công việc đang hoạt động trên hệ thống Trong khi đó, thuật toán EASY yêu cầu rất ít tài nguyên tính toán vì chỉ phải đảm bảo tài nguyên cho một công việc duy nhất Ngoài ra, hiệu năng giữa hai thuật toán cũng tuỳ thuộc nhiều vào đặc trưng của các công việc trên mỗi hệ thống HPC [6] Do đó, đa số các trình định thời trên các hệ thống HPC thường sử dụng thuật toán EASY để thực hiện Backfilling các công việc Các trình RJMS phổ biến như PBS Pro đã hỗ trợ thuật toán EASY như một tuỳ chọn cho quá trình định thời [28]
Việc áp dụng các phương pháp Backfilling cho phép các công việc lớn có thể được thực thi liên tục trên hệ thống mà không làm giảm hiệu suất định thời khi các ứng dụng khác phải chờ trong hàng đợi FCFS Backfilling giúp cho các công việc nhỏ có thể chạy trước khi tới lượt và kết thúc trước khi công việc lớn bắt đầu Điều này làm cải thiện hiệu suất của các hệ thống HPC trong việc tối ưu quá trình khai thác tài nguyên tính toán.
Kỹ thuật học máy
Học máy là một lĩnh vực của trí tuệ nhân tạo mà tập trung vào lý thuyết, hiệu suất và thuộc tính của các hệ thống và thuật toán có khả năng học nhằm giải quyết một vấn đề cụ thể Các mô hình học máy đã được triển khai trong rất nhiều ứng dụng thực tiễn, bao trùm hầu hết các lĩnh vực khoa học và đời sống, mang lại tác động to lớn cho sự phát triển của kinh tế xã hội [29]
3.3.1 Khái quát về kỹ thuật học máy
Trong suốt lịch sử loài người, con người đã thành công trong việc thu thập kiến thức và suy ra kết luận từ các dữ liệu được tìm thấy từ thực tế Có thể kể đến như các hiểu biết mà Kepler thu được từ quan sát bầu trời đã đóng góp rất nhiều trong thiên văn học hiện đại, hoặc Darwin với lý thuyết sinh học hiện đại mà chúng ta biết tới ngày nay từ những quan sát trong hệ sinh thái Những thành quả trên kết hợp với sự phát triển nhanh chóng của khoa học kỹ thuật đã dẫn đến động lực phát triển các phương cách thu thập dữ liệu mới và các cách tiếp cận hiệu quả hơn để giúp máy móc có thể tự động tìm ra tri thức từ các dữ liệu có sẵn Có thể nói, nhu cầu thu nhận tri thức từ lượng dữ liệu khổng lồ đang ngày càng tăng, đặc biệt là trong thời đại của Dữ liệu lớn hiện nay chính là động lực của phát triển của các thuật toán học máy
Học máy là một lĩnh vực có tính chất liên ngành cao Các mô hình học máy được xây dựng dựa trên các sự kết hợp từ rất nhiều lĩnh vực khác nhau như trí tuệ nhân tạo, thống kê, tối ưu hóa, mô hình hoá, xử lý dữ liệu và nhiều ngành khoa học, kỹ thuật, toán học khác [30] Các mô hình học máy thường được phân thành ba loại chính theo cách tìm ra tri thức là học có giám sát (Supervised), học không giám sát (Unsupervised) và học tăng cường (Reinforcement Learning – RL), như được mô tả
16 trên Hình 3.5 Ngoài ra còn có các thuật toán lai (Hybrid) là sự giao thoa giữa các phương pháp kể trên
Trong các mô hình học máy, dữ liệu huấn luyện bao gồm tập hợp các mẫu đã quan sát được từ thực tế trước đó Đối với các mô hình học có giám sát, mẫu huấn luyện là tập hợp các thuộc tính cấu thành mẫu đó, và tri thức mong muốn tương ứng với mẫu đó mà đã được xác nhận là sự thật (ground truth) Các bài toán học có giám sát mà chúng ta thường gặp là phân loại (classification) và hồi quy (regression) Trong khi đó, đối với bài toán học không giám sát, mô hình học máy chỉ biết các thuộc tính của mỗi mẫu huấn luyện Mục tiêu trong các bài toán như vậy thường là tìm ra các sự tương đồng trên tập dữ liệu huấn luyện để giải quyết các bài toán như phân cụm (clustering) hoặc xác định sự phân bố của dữ liệu (data distribution)
Hình 3.5 Các phương pháp học máy chính và ứng dụng
Còn đối với học tăng cường, đây là một nhánh đặc biệt của học máy mà tập trung nghiên cứu vào cách thức một thực thể hoặc tác nhân (agent) học cách lựa chọn quyết định thực hiện các hành động (action) trong một môi trường (environment)
17 nhằm mục tiêu cực đại hóa một khoản thưởng (reward) nào đó về lâu dài Mô hình học này có cách tích luỹ tri thức tương tự như cách thức chúng ta học tập trong thế giới thực với nhiều lần thử giải một bài toán và cải thiện bản thân dần dần thông qua việc nhận thưởng hoặc phải bị phạt dựa trên điểm số mà chúng ta đạt được trên mỗi lần đưa ra kết quả
3.3.2 Thuật toán học máy k NN
Thuật toán láng giềng gần nhất (nearest neighbors) [31] là một trong những phương pháp học máy có giám sát lâu đời nhất và đơn giản nhất cho bài toán phân loại và hồi quy Thuật toán này được sử dụng rộng rãi trong nhiều lĩnh vực khoa học bao gồm khai phá dữ liệu, thị giác máy tính, nhận dạng ký tự, hệ thống đề xuất,… [32], [33] Ý tưởng chính của thuật toán là mỗi đối tượng mới xuất hiện sẽ được gắn nhãn bằng cách suy ra từ các điểm dữ liệu tương tự nhất của nó trong tập huấn luyện 𝑇 Sự giống nhau được xác định bằng cách tính khoảng cách của 𝑛 thuộc tính giữa các đối tượng trước đó 𝑝 và đối tượng hiện tại chưa được gắn nhãn 𝑞 Vì vậy, những điểm giống nhau nhất này cũng được gọi là láng giềng gần nhất Thông thường, khoảng cách Euclide trong phương trình (3.1) được sử dụng làm phương pháp tính độ giống nhau cơ bản giữa hai đối tượng
Hình 3.6 Mô tả kết quả của thuật toán k NN với các hệ số k khác nhau
Phiên bản phổ biến nhất của thuật toán láng giềng gần nhất là k-láng giềng gần nhất (kNN) [34] Phương pháp này chỉ chọn ra k đối tượng có sự tương đồng nhất thay vì sử dụng toàn bộ tập dữ liệu hiện có Ví dụ trên Hình 3.6 mô tả các xác định các đối tượng tương đồng nhất với các hệ số 𝑘 khác nhau Hơn nữa, việc tìm ra nhãn của dữ liệu mới cũng áp dụng trọng số với 𝑘 dữ liệu đang xét để cải thiện độ chính xác của phân loại dựa theo nhãn chiếm đa số Phương thức biểu quyết theo đa số này xác định trọng số cho các điểm tương đồng dựa trên khoảng cách của chúng đến đối tượng đang xét với trọng số lớn hơn sẽ được gán cho những người đối tượng gần hơn Điều này giúp tránh việc các đối tượng có sự khác biệt nhiều hơn nhưng có số lượng nhiều hơn có thể gây sai lệch kết quả phân loại
Nhãn 𝑞 & của mỗi đối tượng mới 𝑞 được xác định bằng phương trình sau:
19 trong đó 𝑇 là tập hợp 𝑘 láng giềng gần đối tượng đang xét nhất với các nhãn thuộc tập hợp 𝐶, 𝑤 ! là trọng số của láng giềng gần nhất thứ 𝑖 và 𝛿 6𝑐 = 𝑇 ! & 8 là hàm Delta Kronecker trả về 1 nếu 𝑐 = 𝑇 ! & và 0 nếu ngược lại
3.3.3 Kỹ thuật học tăng cường
Như đã đề cập ở trên, học tăng cường (RL) là một nhánh lớn của học máy cũng như của lĩnh vực trí tuệ nhân tạo Việc áp dụng các thuật toán RL nhằm giúp mô hình đạt được mục tiêu đề ra trong một môi trường phức tạp mà các thuật toán học máy thông thường gần như không thể mô hình hoá được hoặc ngay cả chính con người cũng không thể đưa ra được quyết định chính xác để cho các mô hình học máy có thể học theo Bên cạnh đó, trong các ngữ cảnh mà việc ra quyết định tại một thời điểm có thể ảnh hưởng tới kết quả của toàn bộ quá trình trong tương lai, tức là bài toán có tính tương tác thì các phương pháp RL đem lại khả năng lên kế hoạch lâu dài hơn so với các cách tiếp cận khác
Các phương pháp RL được áp dụng cho việc giải quyết các vấn đề mà trong đó thực thể (agent) tương tác với môi trường theo các bước thời gian rời rạc (Hình 3.7) Tại thời điểm 𝑡, agent đang ở trạng thái 𝑠 * và quyết định thực hiện một hành động 𝑎 * Ở bước thời gian tiếp theo, nó đến trạng thái s +,% và nhận được phần thưởng 𝑟 *,% Mục tiêu của việc huấn luyện agent là tối đa hóa lượng phần thưởng lâu dài mà agent tích luỹ được trong quá trình khám phá các hành động trên môi trường Có thể nói, các mô hình RL học thông qua quá trình tương tác trên môi trường, khác biệt với các phương pháp khác như học có giám sát hoặc không giám sát
Hình 3.7 Tương tác giữa thực thể và môi trường trong mô hình học tăng cường
Một số bài toán thường gặp với phương pháp RL:
- Huấn luyện máy tính chơi trò chơi của con người như trò chơi điện tử hoặc các trò chơi trí tuệ như cờ vua, cờ vây
- Mô phỏng hoạt động của con người bằng robot như di chuyển, cầm nắm đồ vật,… hoặc mô phỏng cử chỉ của các loài động vật
- Xây dựng các hệ thống xe tự hành với khả năng tự di chuyển trên đường, tự tối ưu hoá quãng đường đi,…
- Các mô hình xử lý ngôn ngữ tự nhiên như chatbot với khả năng học cách nói chuyện với khách hàng, các trình sinh ngôn ngữ hoặc tóm tắt nội dung,… Để đi sâu hơn vào việc tìm hiểu lý thuyết của các thuật toán học tăng cường, trước tiên, ta cần xem xét thuộc tính Markov được mô tả trong phương trình (3.3) dưới đây:
Trong lý thuyết xác suất, một quá trình mang tính ngẫu nhiên được coi là có thuộc tính Markov nếu phân bố xác suất có điều kiện của các trạng thái tương lai của quá trình đó chỉ phụ thuộc vào trạng thái hiện tại với điều kiện là đã biết trạng thái hiện tại Một cách nhìn khác, ta có thể nói rằng, xác suất xảy ra một trạng thái trong tương lai của quá trình độc lập có điều kiện với tất cả các trạng thái đã xảy ra trong quá khứ Một quá trình mà các trạng thái của nó thoả mãn thuộc tính Markov thường được gọi là quá trình Markov (Markov Decision Process - MDP) Các bài toán học tăng cường có thể được mô tả dưới dạng MDP và được xác định bởi năm đại lượng dưới đây:
- Không gian trạng thái 𝑺: Là tập hợp các trạng thái mà agent có thể đạt tới
Trong đó mỗi trạng thái 𝑠 đều tôn trọng thuộc tính Markov Không gian này có thể là hữu hạn hoặc vô hạn
- Không gian hành động 𝑨: Tập hợp tất cả các hành động 𝑎 mà agent có thể thực hiện Không gian này có thể là tập hợp hữu hạn hoặc vô hạn, bao gồm các giá trị rời rạc hoặc liên tục
- Một phân phối trạng thái bắt đầu 𝒑 𝟎 (𝒔 𝟎 ): Xác suất của các trạng thái mà agent có khả năng bắt đầu từ đấy
- Một mô hình dịch chuyển động lực học với xác suất 𝐩(𝐬′| 𝐬, 𝐚): Xác định xác suất chuyển sang trạng thái 𝑠′ tại thời điểm 𝑡 + 1 khi agent đang ở trạng thái 𝑠 và thực hiện hành động 𝑎
- Một hàm phần thưởng 𝒓(𝒔, 𝒂, 𝒔′): Định nghĩa phần thưởng mà agent nhận được ngay lập tức sau khi thực hiện hành động 𝑎 ở trạng thái 𝑠 và chuyển trạng thái đến 𝑠′
PHÂN TÍCH VẤN ĐỀ
Tập dữ liệu công việc từ các hệ thống HPC
Dữ liệu là một trong những yêu cầu quan trọng nhất trong quá trình thực nghiệm nhằm đảm bảo tính mới mẻ và khách quan của các phương pháp được đề xuất trong luận văn Các tập dữ liệu sử dụng trong luận văn này được thu thập từ những nguồn dữ liệu uy tín trong lĩnh vực HPC Bên cạnh đó, tập dữ liệu từ chính hệ thống SuperNode-XP cũng được thu thập từ quá trình vận hành hệ thống và chuẩn hoá nhằm mục đích đánh giá khả năng áp dụng trong thực tiễn của đề tài
Các tập dữ liệu công việc sẽ được sử dụng để phân tích hiện trạng sử dụng hiện tại của các hệ thống HPC, cũng như được làm môi trường thực nghiệm nhằm đánh giá mức độ hiệu quả của các phương án mà luận văn đề xuất trong thực tế
4.1.1 Tập dữ liệu lịch sử công việc từ Parallel Workload Archive
Trong phạm vi luận văn này, bốn tập dữ liệu lịch sử công việc (workload) từ kho dữ liệu công khai Parallel Workload Archive (PWA) [37] được sử dụng cho việc đánh giá thực nghiệm Các workload này chứa thông tin lịch sử thực thi các công việc thuộc các hệ thống tính toán song song khác nhau trên khắp thế giới Việc chạy mô phỏng trên các tập dữ liệu này cho phép chúng ta phân tích được kết quả hiện thực giải pháp đề xuất trong ngữ cảnh thực tế Bên cạnh đó, các tập dữ liệu này cũng là lựa chọn phổ biến cho các nghiên cứu liên quan tới lĩnh vực HPC trước đây, giúp việc so
27 sánh kết quả giữa phương pháp đề xuất và các phương pháp đối chiếu trở nên khách quan và trực quan hơn Chi tiết về các tập dữ liệu này được mô tả trong Bảng 4.1 dưới đây:
Bảng 4.1: Thông tin các tập dữ liệu HPC từ PWA dùng trong thực nghiệm
Tập dữ liệu Thời gian bắt đầu
Số node tính toán Số công việc Thời gian ghi nhận
Hình 4.1 Phân phối về thời gian chạy và tài nguyên cần cấp phát của các công việc trên bốn tập dữ liệu
Một điểm quan trọng là các tập dữ liệu này là có lưu trữ thêm thông tin về dự đoán từ người dùng khi họ submit các công việc lên hệ thống, trong khi một số tập dữ liệu khác thì không có thông tin này Hơn nữa, như mô tả trên Hình 4.1, mỗi workload có các đặc trưng riêng về thời gian chạy tài nguyên yêu cầu của các công việc Điều này giúp đề tài có cái nhìn đầy đủ về kết quả của phương pháp đề xuất trên ngữ cảnh các hệ thống tính toán khác nhau
Tất cả các tập dữ liệu đã xử lý và chuyển đổi sang định dạng Standard Workload Format (SWF) [38] Tuy nhiên, vẫn còn một số dữ liệu sót lại chưa được làm sạch hoặc không phù hợp cho việc thực nghiệm Do đó cần phải thực hiện thêm một bước xử lý bổ sung nhằm loại bỏ các dữ liệu dư này Kết quả của quá trình làm sạch này được mô tả trong Bảng 4.2 dưới đây:
Bảng 4.2: Số lượng công việc trên các tập dữ liệu sau khi làm sạch
Tập dữ liệu Trước Sau
4.1.2 Tập dữ liệu lịch sử công việc từ hệ thống SuperNode-XP
Ngoài dữ liệu từ các hệ thống HPC lớn trên thế giới, trong đề tài cũng sử dụng thêm tập dữ liệu thực tế mà đề tài tự thu thập được từ hệ thống SuperNode-XP Chi tiết hệ thống SuperNode-XP gồm các cụm tính toán được kết nối với nhau, như trên Hình 4.2 Trong đó, các node tính toán được phân cụm thành 3 cụm chính:
- S-Island: Bao gồm 12 node tính toán mang cấu hình nhỏ (24 core/node,
- M-Island: Bao gồm 8 node tính toán mang cấu hình trung bình
(24/core/node, 256GB RAM và ổ cứng SSD)
- L-Island: Bao gồm 4 node tính toán mang cấu hình lớn (24/core/node,
512GB RAM và ổ cứng SSD)
Hệ thống gồm có các node quản lý (headnode) được sử dụng để chạy các ứng dụng quản lý và theo dõi hệ thống, bao gồm hai node sẵn sàng hỗ trợ lẫn nhau trong trường hợp hệ thống gặp sự cố Đường giao tiếp InifiniBand là đường giao tiếp nội bộ dùng để trao đổi các dữ liệu lớn với độ trễ thấp Trong khi đó, đường giao tiếp Ethernet được cấu hình để quản lý các node, đồng thời cũng được dùng để giao tiếp đối với các loại ứng dụng không có yêu cầu cao về hạ tầng mạng Và đây cũng là đường kết nối ra Internet của hệ thống, cũng như cung cấp dịch vụ cho người dùng khai thác tài nguyên hệ thống
Hình 4.2 Sơ đồ tổng quát hệ thống SuperNode-XP
Hệ thống SuperNode-XP sử dụng công cụ RJSM rất phổ biến là PBS Pro với PBS server được cài đặt trên headnode của hệ thống SuperNode-XP Trong đó, việc submit job của user sẽ được phân phối đến các node tính toán là PBS Execution host Bên cạnh đó, hệ thống SuperNode-XP cũng sử dụng kiến trúc nhiều hàng đợi khác nhau để phục vụ nhiều loại công việc tính toán có đặc thù khác nhau Tất cả các job đều được xếp hàng và gán thứ tự thực thi trong các hàng đợi cụ thể Thứ tự thực thi
30 được xác định dựa vào thời gian tới của ứng dụng đó trên hàng đợi Lịch sử hoạt động của các công việc trên hệ thống được PBS Pro lưu trữ thành các accounting log file theo từng ngày, cũng như các thông tin khác về quá trình hoạt động của công cụ này như dữ liệu giao tiếp giữa các node, thông tin thiết lập và khởi động hệ thống, v.v Một vấn đề với tập dữ liệu từ hệ thống SuperNode-XP là các thông tin ghi lại đều ở dạng thô, như trên Hình 4.3 Do đó ta cần phải thực hiện chuyển đổi sang các định dạng thân thiện và trực quan hơn
Hình 4.3 Accounting Log file từ PBS Pro
Dữ liệu từ các log file được đọc và xử lý bằng Python script Các công việc chưa hoàn thành được loại bỏ, các thông tin nhạy cảm như username của người dùng, thông tin về ứng dụng cũng đã được ẩn danh hoá Kết quả cuối cùng là tập dữ liệu SuperNode-XP sau khi được chuẩn hoá về định dạng SWF thông dụng nhằm mục tiêu dễ dàng chia sẻ với cộng đồng nghiên cứu trong lĩnh vực HPC Bên cạnh đó, toàn bộ script dùng cho quá trình xử lý được đề tài sắp xếp và chuẩn hoá lại thành một công cụ tên là pbro2swf Thông tin chi tiết về tập dữ liệu HPC được mô tả trong Bảng 4.3 dưới đây:
Bảng 4.3: Thông tin log file thu thập trên hệ thống SuperNode-XP
Số công việc được ghi lại
Số công việc sau làm sạch
Hình 4.4 cho thấy phân phối về thời gian chạy và tài nguyên cần cấp phát của các công việc được chạy trên hệ thống SuperNode-XP Ta có thể thấy những ứng dụng được khai thác có thời gian chạy rất dài, khoảng từ vài tiếng tới vài ngày Thậm chí, trên hệ thống tồn tại các công việc có thời gian chạy trên một tuần Về tài nguyên CPU, các ứng thường tập trung sừ dụng một lượng core nhất định theo các ngưỡng như 12, 24, 48, 96 hay 144 Các con số này tương ứng với hạ tầng phần cứng trên mỗi node tính toán là 24 core
Hình 4.4 Phân phối về thời gian chạy và tài nguyên cần cấp phát trên hệ thống
Sự sai lệch trong việc dự đoán thông số công việc của người dùng
Như đã đề cập ở chương trước, người dùng phải cung cấp các ước tính về thời gian chạy (walltime) cho công việc của họ trước khi gửi công việc mới đó lên hệ
32 thống Một trong những vấn đề cốt lõi của chính sách Backfilling là sự phụ thuộc quá nhiều vào ước tính thời gian chạy từ người dùng để có thể xác định các vùng tài nguyên có sẵn cho các công việc trong hàng chờ Người dùng có động lực để cung cấp các dự đoán tốt hơn nhằm hỗ trợ thuật toán Backfilling định thời công việc của họ hiệu quả hơn Tuy nhiên, các lý do cả khách quan và chủ quan đã làm cho các giá trị dự đoán trở nên sai lệch so với thực tế mà ta sẽ đi sâu vào phân tích trong các mục dưới đây
4.2.1 Sự sai lệch trong dự đoán thời gian chạy của người dùng
Như đã được đề cập trong rất nhiều các nghiên cứu trước đây [3], [4], [7], [39], sự chênh lệch giữa thời gian chạy thực tế và giá trị dự đoán của các công việc song song là không hề nhỏ và cần được xem xét kĩ Trên thực tế, quản trị viên các hệ thống HPC thường thiết lập một chính sách mà bộ định thời sẽ cố gắng kết thúc một công việc nếu nó vượt quá giới hạn thời gian chạy của nó nhằm đảm bảo tài nguyên không bị chiếm dụng vô hạn định Ngưỡng này thường được xác định bởi thời gian chạy được người dùng cung cấp Tuy nhiên, cũng vì lý do này mà người dùng sẽ có xu hướng chọn thời gian chạy dự đoán rất lớn để đảm bảo rằng công việc của họ sẽ không bị chấm dứt trước khi kịp hoàn thành Sự sai lệch này cũng có thể do việc áp dụng giá trị dự đoán mặc định trong trường hợp không có ước tính từ được người dùng được cung cấp Tuy nhiên các giá trị mặc định này thường rất lớn như trên PBS Pro có thể lên tới vài năm Bên cạnh đó, một số người dùng lại chọn các giá trị dự đoán ngẫu nhiên do chưa có kinh nghiệm sử dụng hệ thống Một lý do khách quan khác là sự thay đổi nội bộ của hệ thống tính toán hoặc sự không ổn định của ứng dụng mà người dùng cần sử dụng khiến cho thời gian chạy giữa các lần submit là khác nhau Điều này cũng gây khó khăn cho người dùng trong việc ước lượng chính xác thời gian chạy cho một công việc mới
Chi tiết hơn, ta có thể nhìn vào biểu đồ phân phối tích luỹ của thời gian chạy thực tế và thời gian dự đoán của 4 tập dữ liệu từ PWA trên Hình 4.5 dưới đây Đường liền nét hiển thị phân phối tích luỹ của thời gian chạy thực tế, trong khi đường đứt nét thể hiện phân phối tích luỹ của thời gian chạy dự đoán Một đặc điểm chung trên các tập dữ liệu là đều có sự sai lệch trong dự đoán của người dùng Tuy nhiên, mỗi tập dữ
33 liệu có đặc trưng khác nhau về độ chính xác của dự đoán Tập ANL-Intrepid-2009 có độ chính xác của dự đoán cao nhất khi dự đoán của người dùng gần giống với thời gian chạy thực tế Trong khi đó, hai tập dữ liệu HPC2N-2002 và SDSC-DS-2004 có sự sai lệch khá đáng kể giữa dự đoán và thực tế Đặc biệt hơn, tập dữ liệu UniLu- Gaia-2004 có độ sai lệch rất lớn khi trên 60% công việc có thời gian chạy được dự đoán trên 1 ngày
Hình 4.5 Phân phối tích luỹ thời gian chạy thực tế và dự đoán trên các tập dữ liệu từ PWA
Nhìn về biểu đồ phân phối tích luỹ cùa hệ thống SuperNode-XP trên Hình 4.6, ta có thể thấy rằng các giá trị dự đoán của người dùng trên hệ thống này đang thực sự có vấn đề Đa số các ước tính về thời gian chạy từ người dùng là rất lớn và gần như không thay đổi theo thời gian vận hành hệ thống Điều này phản ánh chính sách hiện thời trên hệ thống SuperNode-XP là chỉ sử dụng giá trị dự đoán của người dùng làm
34 ngưỡng thực thi tối đa Hệ thống chưa có chiến lược khai thác thông tin này để cải thiện quá trình ra quyết định phân bổ tài nguyên Do vậy, người dùng dường như không quan tâm với việc căn chỉnh dự đoán của mình về thời gian thực thi của ứng dụng mà chỉ coi thông số này như là một thông số mặc định trên hệ thống Một nguyên nhân khác là người dùng để cho PBS Pro tự sử dụng thiết lập mặc định về ngưỡng thực thi có giá trị lên lới vài năm Lý do này khiến cho các giá trị dự đoán không còn phản ánh mong muốn từ người dùng hoặc mô tả các đặc trưng của công việc hiện tại Do đó cần có chính sách đánh giá sức ảnh hưởng của các giá trị từ người dùng này trên hệ thống SuperNode-XP khi sử dụng các thuật toán Backfilling
Hình 4.6 Phân phối tích luỹ thời gian chạy thực tế và dự đoán trên tập dữ liệu
Mặc dù những sai lệch trong dự đoán này có thể giúp trình định thời tự do hơn trong việc sắp xếp thời gian thực thi như đề tài đã phân tích trong một nghiên cứu trước đây [39], nhưng sự sai lệch này làm cản trở thuật toán định thời tìm ra được giải pháp tối ưu để chọn lựa phương án phân bổ tài nguyên trong tương lai cho các công việc đã được đưa vào hệ thống Đặc biệt hơn khi chúng ta tiến hành áp dụng các mô hình học tăng cường cho quá trình định thời vì những sự sai lệch này sẽ khiến cho môi trường học của agent trở nên bất định
4.2.2 Tính bất định trong quá trình dự đoán thời gian chạy của người dùng Để xác định cơ chế hiệu chỉnh các giá trị dự đoán một cách thích hợp, chúng ta cần phân tích thêm hành vi dự đoán của người dùng thông qua thông số độ lệch dự đoán Độ lệch dự đoán đo lường độ chính xác của các giá trị ước tính từ người dùng và được xác định bằng tỷ lệ giữa thời gian chạy được dự đoán và thời gian chạy thực tế của mỗi công việc Giá trị này càng gần 1 thì dự đoán càng chính xác Một điểm đáng chú ý là độ lệch của một công việc đã hoàn thành sẽ không bao giờ nhỏ hơn 1 (trừ trường hợp hệ thống ghi nhận cả thời gian tắt các tiến trình và dọn dẹp tài nguyên của công việc đó) Nếu thời gian chạy của một công việc vượt quá giá trị dự đoán từ người dùng, thì trình định thời sẽ chấm dứt công việc đó ngay lập tức để giải phóng tài nguyên bị chiếm dụng cho các công việc còn lại trong hàng đợi Chính sách này là lý do chính khiến cho các giá trị ước tính thường rất cao do người dùng lo ngại về việc bị chấm dứt công việc sớm trước khi hoàn thành
Hình 4.7 Độ lệch giữa giá trị dự đoán và giá trị thực tế trên các tập dữ liệu từ
Hình 4.7 thể hiện tỷ lệ sai lệch giữa thời gian chạy được dự đoán và thực tế của năm người dùng tích cực nhất trên các tập dữ liệu từ PWA Các sai lệch trên được tính từ lần sử dụng thứ 50 đến lần sử dụng thứ 100 nhằm tránh việc đánh giá khi người dùng chưa có kinh nghiệm sử dụng hệ thống Chúng ta có thể nhận thấy rằng các ước tính của người dùng thường không chính xác mặc dù họ đã có lịch sử khai thách các hệ thống HPC trước đó Hơn nữa, hầu hết những sai lệch này đều không ổn định theo thời gian và không tuân theo bất kỳ quy tắc hay phân phối rõ ràng nào
Hình 4.8 Độ lệch giữa giá trị dự đoán và giá trị thực tế trên các tập dữ liệu
Kết quả tương tự cũng có thể được nhìn thấy trên tập dữ liệu từ SuperNode-XP trên Hình 4.8 Tuy nhiên do đặc trưng trên hệ thống là không có quá nhiều hoạt động từ một người dùng cụ thể nên chỉ xem xét từ lần submit công việc thứ 10 tới 60 Đặc biệt hơn như đã trình bày ở phần trước, ta thấy rằng độ lệch giữa dự đoán và thực tế là rất lớn khi so với 4 tập dữ liệu còn lại từ PWA Những đặc trưng quan trọng này sẽ là nền tảng giúp chúng ta thảo luận kết quả thí nghiệm các phương pháp căn chỉnh dự đoán từ người dùng
Bài toán cải thiện hiệu suất quản lý tài nguyên và công việc trên các hệ thống tính toán hiệu năng cao
Với mô hình quản lý tài nguyên tập trung tại các hàng đợi do RJMS quản lý và quy trình người dùng khai thác hệ thống thông qua việc submit các công việc, việc chờ đợi để được thực thi các công việc là điều không thể tránh khỏi khi có nhiều người cùng sử dụng trong một khoảng thời gian Do đó, việc giảm thiểu thời gian chờ là một trong những ưu tiên hàng đầu cần giải quyết trên các hệ thống HPC Thời gian chờ cũng là một trong những tiêu chí quan trọng nhằm đánh giá hiệu năng hệ thống, đặc biệt là từ phía người dùng
Bảng 4.4: Thông số về thời gian chờ trên các tập dữ liệu
Thời gian chờ trung bình (phút)
Thời gian chờ trung vị (phút)
Thời gian chờ tối đa (phút)
Tuy nhiên, khi phân tích về thời gian chờ từ các tập dữ liệu thu thập được thì vấn đề thời gian chờ của các công việc trên hệ thống HPC vẫn đang còn là một vấn đề cần được giải quyết Bảng 4.4 cho thấy thời gian chờ trung bình của đa số các hệ thống HPC dao động trong khoảng vài giờ, có khi lên tới hơn chục giờ đồng hồ, ngoại trừ trên tập dữ liệu UniLu-Gaia-2014 với thời gian chờ trung bình rất thấp Nhưng khi xem xét vào giá trị trung vị (median) của thời gian chờ trung bình, ta lại thấy rằng đa số các công việc trên các hệ thống này có thời gian chờ trung bình rất thấp, từ vài chục phút cho tới chỉ có vài giây Xét thêm giá trị thời gian chờ tối đa, trên các hệ thống
HPC đều tồn tại các ứng dụng phải chờ rất lâu lên tới hàng chục ngày Thông số thời gian chờ trung bình trên các hệ thống bị ảnh hưởng rất nhiều bởi các tác vụ này Do vậy ta nhận thấy rằng việc cải thiện hiệu suất khai thác các ứng dụng trên các hệ thống HPC vẫn là một vấn đề cần được giải quyết
Ngoài ra, hành vi của người dùng hay các công việc giống nhau thường xuyên được lặp lại trên các hệ thống HPC Một đặc điểm quan trọng của các ứng dụng tính toán khoa học là có rất nhiều tham số đầu vào hoặc với các tập dữ liệu khác nhau Ví dụ có thể kể tới việc huấn luyện một mô hình học sâu với learning rate khác nhau hay việc dự đoán thời tiết tại một địa điểm vào các ngày trong tuần Do đó, một ứng dụng trên các hệ thống HPC có thể được thực thi rất nhiều lần bởi một người dùng vào nhiều thời điểm khác nhau Việc rút trích kinh nghiệm từ thông tin lịch sử hoạt động của các ứng dụng có thể giúp các trình RJMS có được các thông tin cần thiết cho việc ra quyết định định thời các công việc tương tự trong tương lai
GIẢI PHÁP ĐỀ XUẤT VÀ PHƯƠNG PHÁP HIỆN THỰC
Giải pháp dự đoán thông số công việc sử dụng thuật toán kNN
Một trong những bước đầu tiên để cải thiện hiệu suất sử dụng các hệ thống HPC là cần phải có được bức tranh hoàn chỉnh mô tả trạng thái sử dụng của toàn hệ thống, bao gồm từ quá khứ cho tới hiện tại và tương lai Thông tin lịch sử của các công việc đã chạy trên hệ thống là nguồn thông tin vô cùng giá trị cho việc xác định các vấn đề cần được giải quyết, cũng như đề ra chiến lược cải thiện trong tương lai Đây chính là cơ sở cho việc áp dụng phương pháp dự đoán thông số các công việc mới trên hệ thống HPC bằng thuật toán kNN được mô tả tiếp theo dưới đây
5.1.1 Hiệu chỉnh dự đoán từ người dùng bằng thuật toán k NN
Như đã phân tích ở trên, lịch sử dự đoán thông số công việc của người dùng là cực kì phức tạp và khó xác định tuân theo một mẫu phân phối nào Do vậy, thay vì áp dụng phương pháp dự đoán dựa trên lịch sử của năm công việc gần nhất của mỗi người dùng như một số nghiên cứu trước đây [14], luận văn này áp dụng thuật toán kNN để dự đoán thời gian chạy của công việc dựa trên các công việc tương tự trước đó, tức là mở rộng vùng tìm kiếm Mỗi công việc của người dùng trên hệ thống, kí hiệu 𝑗, được trình bày bởi tập thuộc tính 𝐴 như sau:
- 𝑗 9 là lượng tài nguyên được yêu cầu (thông thường là số node tính toán hoặc số CPU cần thiết)
- 𝑗 : là uid của người dùng submit công việc này
- 𝑗 ; là thời gian chạy thực tế của công việc
- 𝚥s ; là thời gian chạy được ước tính từ người dùng
Trong phạm vi đề tài chỉ xem xét bốn thuộc tính này do tính khả dụng của chúng trong số tất cả các tập dữ liệu thu thập được Hơn nữa, đây là những thông tin tối thiểu nhất để có thể đưa được một tác vụ mới lên một hệ thống HPC Điều này cũng giúp cho thuật toán đơn giản và dễ hiểu hơn đối với cả quản trị viên hệ thống và người dùng Các thông tin khác sẽ được đề tài nghiên cứu thêm trong thời gian tới Với một công việc mới 𝑞 , chúng ta sẽ xác định giá trị 𝑞 9 của công việc này từ ba thuộc tính còn lại của nó mà người dùng cung cấp khi submit một công việc mới Đầu tiên, khoảng cách giữa mỗi công việc đã hoàn thành 𝑝 và công việc mới 𝑞 được tính toán bằng cách sử dụng khoảng cách Euclide như đã mô tả ở công thức (3.1) Tuy nhiên, một điểm quan trọng cần chú ý là việc áp dụng phương pháp tính khoảng cách này trên thuộc tính uid 𝑗 : là không phù hợp Hai uid có thứ tự cạnh nhau không có nghĩa là hai người dùng đó tương đồng với nhau Điều này có nghĩa là khoảng cách giữa thuộc tính 𝑗 : của hai đối tượng không phụ thuộc vào độ giống nhau cùa thuộc tính này Do đó, khoảng cách 𝑑 : (𝑝, 𝑞) giữa giá trị 𝑝 : của đối tượng 𝑝 và giá trị 𝑞 : của đối tượng 𝑞 sẽ được xác định theo phương trình sau:
0, 𝑝 : = 𝑞 : (5.1) trong đó, hằng số 𝜖 biểu thị sức ảnh hưởng của thông tin lịch sử của người dùng đang submit công việc mới đang xét hiện tại Giá trị này càng lớn thì càng có nhiều công việc từ của người dùng đó có nhiều khả năng được sử dụng cho các bước suy luận tiếp theo Từ đó, chúng ta có được khoảng cách cuối cùng 𝑑(𝑝, 𝑞) giữa hai công việc 𝑝 và
𝑝 bằng cách kết hợp khoảng cách người dùng 𝑑 : (𝑝, 𝑞) ở phương trình (5.1) phía trên
41 với cách tính khoảng cách Euclide thông thường trên tập hợp con 𝐴′ chứa các thuộc tính còn lại: d(p, q) = HEOM(p, q) = ~+ d < (p < , q < ) "
Một phương pháp phổ biến trong thuật toán kNN là kiểm tra tất cả các đối tượng có sẵn của tập dữ liệu huấn luyện để chọn ra k điểm tương đồng nhất Tuy nhiên quá trình vét cạn này đòi hỏi rất nhiều khả năng tính toán, đặc biệt là trong trường hợp các hệ thống HPC với hàng trăm nghìn, thậm chí hàng triệu công việc đã hoàn thành
Do đó, chúng ta sẽ giảm không gian tìm kiếm 𝑇 xuống chỉ còn 𝑁 các công việc đã hoàn thành gần nhất Hơn nữa, một hyperparameter (Siêu tham số) khác là ngưỡng Θ được sử dụng để loại bỏ các nhiễu có thể ảnh hưởng đến quá trình dự đoán Việc lựa chọn các thông số này sẽ ảnh hưởng tới hiệu suất dự đoán của thuật toán kNN
Thứ hai, ta sẽ áp dụng phương pháp tính toán trọng số trong công thức (5.3) để tính trọng số tương ứng 𝑤 ! cho mỗi điểm láng giềng gần nhất 𝑖 Việc sử dụng hàm mũ này đem lại độ chính xác tốt hơn theo lý thuyết [40] Quan trọng hơn, giá trị trọng số được tính toán cho mỗi điểm sẽ không được chia tỷ lệ như phương pháp ánh xạ tuyến tính thường được sử dụng [34] mà sẽ trở nên nhỏ dần nhanh chóng tỉ lệ với khoảng cách giữa điểm đó và điểm đang xét Trong luận văn này, các thiết lập α và β của hàm tính trọng số có giá trị là 1 tương tự như ý tưởng ban đầu được đề xuất w ! = 𝑒 ->? ! " (5.3) Δ @ =𝑝s ;
Sau khi thu được tập hợp các công việc giống nhất 𝑇 của công việc mới 𝑞, chúng ta có thể suy ra được độ lệch trong việc dự đoán của nó so với các công việc được bầu chọn này Như được mô tả trong công thức (5.4), độ lệch trong việc dự đoán
42 của mỗi công việc đã hoàn thành 𝑝 được xác định bằng tỷ số giữa thời gian chạy dự đoán và thời gian chạy thực tế Sau đó, hệ số hiệu chỉnh Δ A được xác định bằng: Δ A = †
Một cách hiển nhiên, chúng ta sẽ sử dụng giá trị 𝛥 A = 1 tức là sử dụng dự đoán ban đầu của người dùng nếu không có công việc nào được đề cử Đây là lý do vì sao mà ta cần áp dụng ngưỡng tương tự Θ đã đề cập để giảm ảnh hưởng của các điểm dữ liệu nhiễu có độ giống nhau rất nhỏ so với công việc đang xét Không giống như các bài toán phân loại khác, chúng ta đã có các giá trị phán đoán ban đầu từ người dùng để sử dụng trong trường hợp tập dữ liệu hiện tại không đem lại nhiều thông tin cần thiết để căn chỉnh Như được hiển thị trong công thức (5.6), mục tiêu thực tế của cách tiếp cận kNN để xuất là căn chỉnh giá trị do người dùng dự đoán về thời gian chạy của công việc do họ submit Do đó, trong trường hợp chỉ có các công việc khác biệt nhiều so với công việc đang xét, sẽ không có bất kì hành động hiệu chỉnh nào được thực hiện và giá trị ước tính ban đầu của người dùng sẽ được bảo lưu
5.1.2 Phương pháp áp dụng các thông số đã được hiệu chỉnh vào quá trình ra quyết định quản lý tài nguyên và định thời ứng dụng
Một trong những vấn đề cực kì cần được chú ý khi áp dụng các kỹ thuật căn chỉnh các thông số như walltime là thời gian dự đoán dưới thực tế sẽ làm kết thúc công việc quá sớm Như đã đề cập từ truớc, các hệ thống HPC thường sử dụng thông số thời gian chạy dự đoán từ người dùng như là cận trên của thời gian thực thi Điều này gây ảnh hưởng tiêu cực tới việc khai thác các nghiên cứu khoa học khi quá trình chạy có thể chưa hoàn tất kịp thời để có các kết quả cần thiết Các nghiên cứu trước đây đã phát triển một số kỹ thuật hiệu chỉnh chẳng hạn như phương pháp bộ ba tiên
43 đoán (triple heuristic) [12] Tuy nhiên, để thực hiện việc hiệu chỉnh, các giải pháp này thường phải tăng thời gian walltime do người dùng dự đoán lên một giá trị lớn hơn khi gặp trường hợp dự đoán thấp hơn thực tế Kết quả là hiệu quả của quá trình dự đoán có thể bị giảm do cơ chế hiệu chỉnh làm giá trị dự đoán sai lệch nhiều hơn so với việc sử dụng chính giá trị dự đoán từ người dùng Để cân bằng giữa nhu cầu cải thiện hiệu suất khai thác tài nguyên hệ thống và tác động của việc căn chỉnh giá trị dự đoán từ người dùng, PBS Pro đã giới thiệu một phương pháp an toàn để áp dụng các giá trị dự đoán được gọi là Soft Walltime [28] Thuật ngữ "mềm" trong phương pháp này được sử dụng để phân biệt giá trị có giới hạn này với giá trị dự đoán "cứng" được gửi từ người dùng Thời gian Soft Walltime này được hệ thống tính toán thông qua hook hoặc được định nghĩa bởi các ràng buộc trên hệ thống HPC Điểm quan trọng nhất là bộ định thời chỉ sử dụng thời gian Soft Walltime này để đưa ra quyết định tốt hơn trong việc phân bổ tài nguyên cho các công việc sắp tới Giá trị dự đoán ban đầu của người dùng vẫn tiếp tục được sử dụng làm giới hạn thời gian cho việc thực hiện công việc Vì vậy, giá trị Soft Walltime này an toàn hơn và rõ ràng hơn cho người dùng khi áp dụng vào các hệ thống HPC đang vận hành.
Giải pháp định thời công việc sử dụng mô hình học sâu tăng cường 43
Những thành công gần đây của các mô hình học tăng sâu cường (DRL) đã thúc đẩy việc áp dụng các mô hình này cho rất nhiều lĩnh vực khác nhau, kể cả các lĩnh vực có tính chất đặc thù như HPC Chúng ta có thể khai thác các mô hình này trong việc định thời công việc các công việc trên các hệ thống HPC So với các phương pháp truyền thống, trình định thời dựa trên DRL có một số lợi thế đáng chú ý mà ta có thể xem xét Việc học bằng cách chỉ tương tác với môi trường giúp giải phóng các quản trị viên hệ thống HPC khỏi việc phải tự tinh chỉnh các thông số cho việc quản lý tài nguyên Các mô hình học sâu có thể tìm ra những đặc điểm quan trọng mà con người khó có thể nhận ra trên trạng thái vận hành các hệ thống HPC, từ đó đưa ra các quyết định phân bổ tài nguyên tốt hơn hiện tại Ngoài ra, các mô hình DRL học hỏi tri thức thông qua quá trình tương tác liên tục với môi trường Điều này làm cho các trình
RJMS có thể tự thích ứng với các mục tiêu động và khối lượng công việc thay đổi theo thời gian mà gần như không cần sự can thiệp của con người Thêm nữa, với đặc thù phục vụ các ứng dụng nghiên cứu khoa học, việc submit các ứng dụng hầu như được lặp lại nhiều lần trên các hệ thống HPC nhằm chạy các thực nghiệm hoặc các mô hình với nhiều tham số khác nhau Vì những lý do trên, chúng ta có thể áp dụng các mô hình học sâu vào việc định thời công việc trên các hệ thống HPC
5.2.1 Mô hình học sâu tăng cường
Tuy nhiên, việc áp dụng các mô hình DRL trong ngữ cảnh HPC đặt ra rất nhiều thách thức Trong các hệ thống HPC hiện nay có thể có hàng nghìn công việc đang chờ được thực hiện và hàng chục nghìn node tính toán Điều này cho thấy một không gian trạng thái rất lớn mà agent phải khám phá Do đó ta cần phải xây dựng một môi trường có độ phức tạp chấp nhận được mà vẫn đảm bảo đủ thông tin cho agent trong việc học các đặc trưng của hệ thống
Trong đề tài này, việc thiết kế môi trường cho mô hình DRL cho bài toán quản lý tài nguyên và công việc được kế thừa và cải tiến từ mô hình DeepRM [41] Cách mô tả này được sử dụng phổ biến cho nhiều nghiên cứu sau này trong việc áp dụng DRL trong lĩnh vực HPC [42], [43] Các tiếp này tương tự như Google DeepMind khi việc biểu diễn trạng thái sử dụng tài nguyên dưới dạng hình ảnh trực quan để mô hình DRL có thể hoạt động trên đó Chi tiết về môi trường huấn luyện được mô tả dưới đây:
(1) Không gian trạng thái: Thể hiện trạng thái hiện tại của một hệ HPC tại một thời gian nhất định Một điểm cực kì quan trọng mà ta cần chú ý khi xây dựng không gian trạng thái này là các mạng nơ ron được sử dụng trong các mô hình DRL sẽ yêu cầu vectơ đầu vào có kích thước cố định Trong khi đó, trên các hệ thống HPC thì số lượng các công việc trên hệ thống là biến động theo thời gian và không thể lường trước được trong tương lai Do đó, ta cần phải ánh xạ các trạng thái của hệ thống HPC thành các vectơ cố định có thể sử dụng cho mạng nơ ron Hình 5.1 dưới đây mô tả một ví dụ cho không gian trạng thái được dùng trong luận văn, bao gồm ba thành phần chính:
- Trạng thái tài nguyên: Trạng thái sử dụng tài nguyên được mô tả bằng 𝑟 ma trận ứng với 𝑟 loại tài nguyên trên hệ thống Mỗi loại tài nguyên được mô tả bằng một ma trận có kích thước 𝑡 x 𝑘 trong đó 𝑡 là số bước thời gian (timestep) tính từ hiện tại tới tương lai mà trạng thái biểu diễn và 𝑘 là số slot tài nguyên Số timestep thể hiện tầm nhìn trong tương lai mà mô hình DRL có thể nhìn thấy Trên ma trận của mỗi loại tài nguyên thể hiện các công việc đang sử dụng tài nguyên trên đó Xét ví dụ trên Hình 5.1, hệ thống HPC có 2 loại tài nguyên tính toán là CPU và RAM, mỗi tài nguyên có 4 slot Và khoảng thời gian trong tương lai mà mô hình DRL xem xét là 8 timestep Trên hệ thống đang có 4 công việc đang chạy với ID là 1, 2, 3, 4 với đặc tả về tài nguyên sử dụng và thời gian chạy được mô tả tương ứng trên các ma trận Một điều quan trọng là trạng thái này bao gồm cả các công việc đã được xếp lịch chạy trong tương lai, tương ứng với định nghĩa tiếp theo về hành động của agent
- Hàng chờ công việc: Mô tả các công việc đang chờ đợi để được chạy trên hệ thống Thông thường thì hàng chờ sẽ chứa toàn bộ các công việc đang xếp hàng Tuy nhiên, ràng buộc liên quan tới đầu vào có kích thước cố định của mô hình DRL khiến cho việc biểu diễn hàng chờ trên trạng thái bị giới hạn trên 𝑀 công việc đầu tiên (𝑀 slot) trong hàng chờ FCFS ngoài thực tế Thông tin về các công việc đang chờ còn lại được biểu diễn tóm tắt trong danh sách các công việc còn tồn đọng (Backlog) Về mặt thực tế, việc tập trung sự chú ý vào 𝑀 công việc đầu tiên trong hàng chờ FCFS giúp agent có khả năng ưu tiên định thời các công việc đã chờ đợi rất lâu này Cách tiếp cận này cũng có thêm ưu điểm là giảm kích thước của không gian hành động xuống mức chấp nhận được, giúp quá trình học tập hiệu quả hơn Ví dụ trên Hình 5.1 mô tả mô hình với hàng chờ có 𝑀 = 3 với 3 công việc đang chờ có ID là 5, 6, 7 Điểm quan trọng là đặc trưng của các công việc này được mô tả tương tự tình trạng sử dụng tài nguyên trên hệ thống bằng ma trận trạng thái của tất cả các loại tài nguyên
- Các công việc còn tồn đọng (Backlog): Thành phần này chỉ đơn giản lưu trữ số lượng các công việc mới hơn đang chờ được tới lượt vào hàng chờ Khi một công việc trên hàng chờ được agent lựa chọn và hành động đó hợp lệ thì công việc đầu tiên trên Backlog sẽ được thế chỗ của công việc mới được định thời đó Ví dụ trên Hình 5.1 cho thấy có 5 công việc trên Backlog vẫn đang chờ tới lượt được agent xem xét, tức là có tổng cộng 8 công việc đang chờ trên hệ thống
Hình 5.1 Cách biểu diễn trạng thái của mô hình học tăng cường
(2) Không gian hành động: Tại mỗi thời điểm, bộ định thời có thể ra quyết định định thời là một tập hợp con của của tập hợp 𝑀 công việc đang chờ trong hàng đợi Tuy nhiên điều này sẽ yêu cầu một không gian hành động rất lớn với kích thước theo hàm mũ 2 B Điều này có thể khiến việc agent học cách ra quyết định trở nên rất khó khăn Do đó chúng ta sẽ thay đổi chiến lược bằng cách cho phép tác nhân thực hiện nhiều hơn một hành động trong mỗi thời điểm Không gian hành động mà ta sẽ sử dụng được xác định bởi tập hợp {∅, 1, , 𝑀}, trong đó hành động 𝑎 = 𝑖 có nghĩa là định thời công việc 𝑎 ở vị trí thứ 𝑖 Đặc biệt 𝑎 = ∅ là một hành động rỗng chỉ ra rằng agent đã hoàn thành việc định thời tại thời điểm hiện tại, không có công việc nào phù hợp để định thời tiếp Tại mỗi bước thời gian trong quá trình học, thời gian được dừng lại cho đến khi agent chọn được hành động và chỉ tiếp tục sang timestep tiếp theo khi 𝑎 = ∅ hoặc hành động agent đưa ra không hợp lệ (slot mà agent chọn không có công việc hoặc công việc được chọn không thể được định thời trên hệ thống) Hơn nữa, mô hình cho phép agent chọn các công việc để định thời trong tương lai, tức là sắp xếp thứ tự thực hiện các công việc trong khoảng thời gian tương lai mà agent có thể nhìn thấy được Ví dụ trên Hình 5.1 cho thấy công việc có ID là 4 được xếp lịch bắt đầu thực thi sau 2 timestep tính từ hiện tại Một cách tổng quát, nhiệm vụ của agent là lên kế hoạch thực thi các công việc từ hiện tại tới tương lai, trong phạm vi tầm nhìn 𝑡 mà agent có thể quan sát được từ trạng thái của hệ thống
(3) Phần thưởng: Trong đề tài này, mục tiêu được đưa ra cho agent là tìm cách giảm thiểu giá trị slowdown của hệ thống Cụ thể, phần thưởng dành cho agent ở mỗi bước thời gian được mô tả trong công thức (5.7), trong đó
𝐽 là tập hợp các công việc hiện có trên trạng thái của hệ thống, bao gồm cả đang chạy, trong hàng chờ hoặc backlog Mặc dù hàm phần thưởng này có vẻ không đầy đủ với agent khi có chứa các thông tin ẩn như thông tin của công việc trên Backlog, nhưng việc áp dụng hàm phần thưởng này trong thí nghiệm lại đem lại kết quả tốt Một điểm cần lưu ý là agent không nhận được bất kỳ phần thưởng nào trong khi ra các quyết định trung gian tại một
48 thời điểm Bên cạnh đó, hệ số chiết khấu được sử dụng là 𝛾 = 1 vì đặc trưng của bài toán định thời công việc là có thời lượng cố định (kết thúc khi tất cả các công việc đã hoàn tất) Có một số hàm phần thưởng khác có thể được xem xét, tuy nhiên việc lựa chọn công thức (5.7) giúp đơn giản hoá việc học của agent và cũng phản ánh mong muốn của chúng ta trong việc cải thiện thời gian chờ của các công việc trên hệ thống như đã đề cập từ trước
Tiếp theo, ta cần lựa chọn mô hình DRL phù hợp cho việc tối đa hoá phần thưởng mà agent có thể đạt được Một đặc trưng quan trọng của quá trình định thời công việc trên các hệ thống HPC là thứ tự định thời các công việc khác nhau có thể dẫn tới sự biến động rất lớn về hiệu năng Do đó đề tài đề xuất sử dụng phương pháp Advantage Actor-Critic (A2C) để giúp agent có thể học hiệu quả trong ngữ cảnh HPC Với việc phương pháp A2C yêu cầu một Actor và một Critic, đề tài triển khai các mạng neural tích chập (CNN) cho cả hai thành phần trên với lý do chúng ta đã diễn tả trạng thái của môi trường bằng hình ảnh trực quan phía trên Đối với mạng CNN cho Actor, toàn bộ hình ảnh của trạng thái của hệ thống HPC được dùng làm đầu vào cho mạng neural với đầu ra là phân phối xác suất trên tất cả các hành động thuộc không gian hành động Đối với mạng CNN cho Critic thì đầu vào của mạng CNN cũng được cung cấp tương tự, tuy nhiên đầu ra chỉ bao gồm một giá trị duy nhất Kiến trúc chi tiết của mô hình A2C dùng trong luận văn được mô tả trong Hình 5.2
Hình 5.2 Kiến trúc mô hình A2C dành cho việc định thời trên hệ thống HPC
Sau khi khởi tạo trạng thái ban đầu 𝑠 của hệ thống và khởi tạo các tham số 𝜃 của Actor và 𝜑 của Critic với các giá trị ngẫu nhiên, việc huấn luyện mô hình A2C trên tập dữ liệu workload đầu vào trên một episode được thực hiện qua các bước sau:
- Bước 1: Thực hiện một mini episode có kích thước 𝑛 mà trong đó Actor thực hiện ra n hành động định thời dựa theo chiến lược π F , quan sát 𝑛 trạng thái tiếp theo và 𝑛 phần thưởng mà môi trường trả về
Giải pháp cải thiện hiệu suất định thời của mô hình học sâu tăng cường bằng kỹ thuật dự đoán thời gian chạy
Như đã đề cập từ trước, việc triển khai các mô hình DRL yêu cầu việc biểu diễn trạng thái phải rõ ràng với agent vì đây là nguồn thông tin duy nhất mà agent biết được để ra quyết định định thời Tuy nhiên, một đặc trưng quan trọng của dữ liệu thực tế mà agent phải đối mặt chính là sự sai lệch trong các giá trị dự đoán thời gian chạy của công việc Nếu thời gian chạy bị cung cấp không chính xác sẽ dẫn đến agent có cái nhìn sai về công việc đó so với thực tế, dẫn tới hiệu suất định thời sẽ bị ảnh hưởng
Do đó, việc áp dụng các kỹ thuật căn chỉnh dự đoán thời gian chạy là điều cần thiết khi ta áp dụng các mô hình DRL vào thực tế trên các hệ thống HPC Từ lý do trên, đề tài đề xuất giải pháp triển khai thực tế kết hợp giữa hai giải pháp phía trên, bao gồm mô hình DRL và thuật toán kNN dành cho việc dự đoán thời gian chạy Chi tiết kiến trúc của giải pháp được mô tả trên Hình 5.3:
Hình 5.3 Kiến trúc cải thiện hiệu suất định thời của mô hình học sâu tăng cường bằng kỹ thuật dự đoán thời gian chạy
Khi người dùng submit một công việc mới lên hệ thống, công việc đó sẽ được căn chỉnh dự đoán thời gian chạy bằng thuật toán kNN với lịch sử các công việc đã hoàn tất trên hệ thống Sau đó giá trị đã được căn chỉnh được thiết lập thành thuộc tính Soft Walltime trước khi công việc đưa vào hàng chờ Khi một công việc mới được đưa vào hàng chờ hoặc có một công việc vừa được kết thúc thì mô hình DRL mà ta đã huấn luyện sẽ dựa vào trạng thái hiện tại của hệ thống HPC và các công việc trong hàng chờ để ra quyết định định thời Một điểm quan trọng là ta chỉ cần sử dụng thành phần Actor trong mô hình A2C để triển khai ngoài thực tế vì đây là thành phần ra quyết định của agent Sau một thời gian nếu có nhiều sự thay đổi trên hệ thống ta sẽ tiến hành huấn luyện lại mô hình bằng thành phần Critic
THỰC NGHIỆM
Môi trường thực nghiệm
Để đạt được hiệu suất tính toán rất lớn, các hệ thống HPC bao gồm số lượng lớn các node tính toán với cơ sở hạ tầng bên dưới phức tạp Việc triển khai một cụm tính toán tương tự chỉ dành cho việc thử nghiệm sẽ gây lãng phí về cả chi phí chuẩn bị và thời gian thực nghiệm Do đó, một giải pháp linh hoạt như mô phỏng (simulation) thường được sử dụng rộng rãi cho việc thực nghiệm các phương pháp mới Các ứng dụng mô phỏng giúp cho việc kiểm thử các mô hình mới diễn ra nhanh chóng nhưng vẫn đảm bảo không sai khác so với kết quả chạy thực tế trên các hệ thống thật Bên cạnh đó, với tập dữ liệu từ các hệ thống HPC có kích thước rất lớn thì việc triển khai các hệ thống này chỉ để kiểm thử kết quả là phi thực tế
Batsim [44] là một phần mềm mã nguồn mở mô phỏng các hệ thống song song phân tán, được xây dựng trên nền tảng mô phỏng phổ biến là Simgrid [45] Không giống như các chương trình mô phỏng khác như Ale [46] và các biến thể của nó, Batsim, như mô tả trong Hình 6.1, tách rời quy trình mô phỏng thành hai thành phần riêng biệt, bao gồm thành phần Batsim (Batsim Process) và thành phần ra quyết định phân bổ tài nguyên và định thời công việc (Decision Process) Điều này cho phép thuật toán ra quyết định có thể được hiện thực dễ dàng trong bất kỳ ngôn ngữ lập trình nào như Python hoặc C++, miễn là cả hai thành phần có thể giao tiếp với nhau thông qua giao thức do Batsim định nghĩa
Hơn nữa, Batsim cũng cho phép tái tạo lại môi trường thử nghiệm trước đó thông qua trình quản lý gói Nix [47] Thông tin phiên bản chính xác của các phần mềm cho việc thử nghiệm được lưu trữ trong một tập tin nix và có thể tái sử dụng lại sau này khi cần kiểm nghiệm lại kết quả Điều này giúp đề tài có được kết quả nhất quán trên nhiều cơ sở hạ tầng tính toán khác nhau trong khi vẫn duy trì được tính linh hoạt của việc triển khai và so sánh các phương pháp đề xuất Bên cạnh đó, Batsim cho
53 phép thực hiện mô phỏng với nhiều cấp độ giả lập thực tế khác nhau và cung cấp kết quả đầu ra chi tiết với công cụ hỗ trợ trực quan hóa dữ liệu
Hình 6.1 Kiến trúc của Batsim (Nguồn: Batsim [44]) Để đưa ra kết quả thực nghiệm, đề tài đã tiến hành mô phòng sử dụng trình ra quyết định định thời của Batsim trên ngôn ngữ Python là PyBatsim và bộ công cụ hỗ trợ mô phỏng Python Evalys, cũng được cung cấp bởi Batsim Tiến trình mô phỏng được chạy trên một node của hệ thống SuperNode-XP với cấu hình chi tiết trong Bảng 6.1 dưới đây:
Bảng 6.1: Cấu hình chi tiết máy tính sử dụng cho mô phỏng
Cấu hình node tính toán Thông tin chi tiết
Phiên bản HP ProLiant XL250a Gen 9
CPU 2 x Intel® Xeon® CPU E5-2680 v3 @ 2.50GHz
Trong luận văn này, tất cả các hệ thống được coi là đồng nhất về tài nguyên và tất cả các công việc mang tính chất cố định (không thể thay đổi tài nguyên đã được cấp phát) để giảm độ phức tạp của vấn đề và tập trung vào việc áp dụng các phương pháp đã được để xuất.
Tiêu chí đánh giá
Dựa theo các vấn đề đặt ra trong luận văn liên quan tới hiệu năng của các hệ thống HPC, các tiêu chí đánh giá sau sẽ được sử dụng trong phạm vi luận văn:
(1) Tiêu chí Thời gian chờ (Wait Time): Đây là tiêu chí thông dụng nhằm đánh giá hiệu suất định thời các công việc Thời gian chờ ít hơn đồng nghĩa với việc ít ứng dụng phải chờ trong hàng đợi hơn, tài nguyên được khai thác hiệu quả hơn Tiêu chí này cũng phản ánh góc nhìn từ người dùng khi mong đợi công việc của họ được thực hiện nhanh chóng hơn Công thức tính thời gian chờ trung bình đuợc mô tả như dưới đây:
(2) Tiêu chí Bounded Slowdown: Tiêu chí này được sử dụng với mục đích đánh giá sự ảnh hưởng của việc phải chờ đợi (chậm lại) từ góc nhìn của hệ thống Khác với tiêu chí thời gian chờ phía trên thì bounded slowdown được tính bằng thời gian chờ tỉ lệ với kích thước của công việc đó nhằm tạo sự công bằng giữa các công việc có kích thước khác nhau Bên cạnh đó, tiêu chí này cũng làm giảm bớt sức ảnh hưởng của các công việc nhỏ mà trong đó thời gian chạy 𝑗 ; là rất nhỏ so với thời gian chờ 𝑗 * Trên thực tế, ngưỡng τ thường được đặt thành 10 giây
(3) Tiêu chí Độ chính xác của dự đoán: Được xác định bằng tỉ lệ độ lệch của dự đoán bằng phương pháp kNN so với giá trị chạy thực tế của công việc
Kết quả thí nghiệm
6.3.1 Kết quả dự đoán thời gian chạy của các công việc sử dụng thuật toán k NN Đối với mô hình dự đoán thời gian chạy bằng thuật toán kNN, các thông số dùng trong thực nghiệm được cho trong Bảng 6.2 dưới đây Một điểm quan trọng là thông số của các công việc sẽ được chuẩn hoá về ngưỡng [0,1] trước khi tính toán khoảng cách
Bảng 6.2: Thông số của thuật toán k NN
Thông số Diễn giải Giá trị
𝑘 Số công việc tương đồng nhất được xem xét 5 Θ Khoảng cách tối đa giữa hai công việc 0.001
𝜖 Khoảng cách giữa hai người dùng khác nhau Θ/4 n Kích thước vùng tìm kiếm 1000
Kết quả của phương pháp kNN được so sánh với việc không sử dụng bất kì phương pháp dự đoán nào - kí hiệu user Bên cạnh đó, đề tài cũng thực hiện so sánh với trường hợp các dự đoán từ người dùng là hoàn toàn chính xác – kí hiệu exact
Phương pháp dự đoán Min.Diff (Min Different) được tính từ giá trị độ lệch nhỏ nhất trong năm lần dự đoán gần nhất của người dùng đang submit job được sử dụng cũng được xem xét Đầu tiên, chúng ta xác định chất lượng của việc dự đoán thời gian chạy của các công việc trên các phương pháp được chọn Hình 6.2 thể hiện tỷ lệ độ lệch trung bình giữa thời gian chạy dự đoán của các phương pháp đã chọn so với thời gian chạy thực tế của các công việc trên các tập dữ liệu Chúng ta có thể nhận thấy rằng phương pháp kNN giúp cải thiện đáng kể các dự đoán của người dùng trên tất cả các tập dữ liệu, đặc biệt là trên tập dữ liệu UniLu-Gaia-2014 và SuperNode-XP Kết quả này cũng chỉ ra một sự cải thiện đáng kể so với phương pháp tiếp cận Min.Diff Từ kết quả trên ta thấy rằng các cách tiếp cận sử dụng thông tin lịch sử của người dùng, đặc biệt là thuật toán kNN cho khả năng điều chỉnh rất tốt các ước tính thiếu chính xác của người dùng
Hình 6.2 Kết quả độ lệch giữa thời gian chạy thực tế và dự đoán của các công việc trên các tập dữ liệu
Một điểm quan trọng mà ta cần xem xét kỹ hơn là đặc trưng của các công việc trên từng tập dữ liệu có thể ảnh hưởng đến quá trình dự đoán như thế nào Hình 6.3 tới Hình 6.8 cho thấy sự cải thiện tốt hơn hoặc tệ hơn của việc dự đoán thời gian chạy bằng phương pháp kNN so với giá trị ước tính ban đầu của người dùng thông qua biểu đồ nhiệt (heatmap) Màu đỏ biểu thị sai số đã được giảm xuống trong việc dự đoán bằng thuật toán kNN, tức là sự cải thiện Trong khi đó, màu xanh lam biểu diễn sai số tăng lên có nghĩa là dự đoán của phương pháp kNN xa rời thời gian chạy thực tế hơn so với dự đoán từ người dùng Nhìn chung, không phải tất cả các loại công việc trên các hệ thống HPC đều có thể thu được lợi ích từ cách tiếp cận sử dụng thuật toán kNN Cụ thể hơn, các công việc có thời gian chạy ngắn sẽ có nhiều khả năng được thuật toán căn chỉnh hơn bởi số lượng đông đảo của chúng trên mỗi tập dữ liệu Do đó, các công việc nhỏ sẽ dễ dàng hơn trong việc tìm thấy những công việc tương tự thích hợp cho bước suy luận thời gian chạy của chúng Giải thích này cũng được áp dụng cho kết quả dự đoán tệ hơn trên các công việc có khối lượng lớn Rất khó để có thể tìm được các công việc tương tự các công việc lớn này trong danh sách các công
57 việc gần nhất Do đó, những công việc này thường bị thuật toán dự đoán sai một cách đáng kể
Hình 6.3 Heatmap kết quả cải thiện dự đoán của người dùng trên tập dữ liệu
Hình 6.4 Heatmap kết quả cải thiện dự đoán của người dùng trên tập dữ liệu
Hình 6.5 Heatmap kết quả cải thiện dự đoán của người dùng trên tập dữ liệu
Hình 6.6 Heatmap kết quả cải thiện dự đoán của người dùng trên tập dữ liệu
Hình 6.7 Heatmap kết quả dự đoán thời gian chạy trên tập dữ liệu SuperNode-
Một điều thú vị mà chúng ta cũng có thể nhận thấy là sự ảnh hưởng của hành vi người dùng lên thuật toán kNN Việc dự đoán trên tập dữ liệu UniLu-Gaia-2014 và
SuperNode-XP đem lại cải tiến tốt nhất Trên tập dữ liệu UniLu-Gaia-2014 ta thấy sự cải thiện của rất nhiều vùng trên 4000 phút Đặc biệt hơn, kết quả dự đoán trên tập SuperNode-XP là cực kì tốt khi cải thiện được rất nhiều lần Trong khi đó, kết quả dự đoán của thuật toán không khá hơn nhiều trên tập dữ liệu ANL-Intrepid-2009 Như thể hiện trong Hình 4.5, kết quả dự đoán trên tập dữ liệu này có đã độ chính xác tốt và quá trình dự đoán của người dùng khá là rõ ràng đối với trình định thời, trong khi tập dữ liệu UniLu-Gaia-2014 và SuperNode-XP cho thấy điều ngược lại
Hình 6.8 Kết quả thời gian chờ trung bình trên các tập dữ liệu với các phương pháp khác nhau
Tiếp theo là so sánh về hiệu suất định thời của cách tiếp cận kNN được đề xuất Kết quả được thể hiện bằng thời gian chờ trung bình trên Hình 6.8 và giá trị bounded slowndown trung bình trên Hình 6.9 Chúng ta có thể thấy rằng phương pháp dự đoán sử dụng thuật toán kNN cho hiệu suất khác nhau trên mỗi tập dữ liệu công việc khác nhau Đầu tiên, trên cả hai tập dữ liệu SDSC-DS-2004 và UniLu-Gaia-2014, cả thời gian chờ trung bình và thống số bounded slowdown trung bình đều giảm đáng kể khi so sánh với việc chỉ sử dụng ước tính của người dùng và phương pháp Min.Diff Kết quả này phản ánh lợi thế của việc cải thiện thời gian hoạt động trên các tập dữ liệu này mà chúng ta vừa phân tích ở trên Ta có thể thấy được rất nhiều sự cải thiện rõ rệt của hai tập dữ liệu này tại các heatmap tương ứng trên Hình 6.10 và Hình 6.11, đặc biệt là tập dữ liệu UniLu-Gaia-2014 Các heatmap này thể hiện sự cải thiện thời gian chờ của từng loại công việc bằng phương pháp kNN so với việc không sử dụng bất kì kỹ thuật căn chỉnh nào
Hình 6.9 Giá trị bounded slowdown trung bình trên các tập dữ liệu với các phương pháp khác nhau
Hình 6.10 Heatmap kết quả cải thiện thời gian chờ trên tập dữ liệu SDSC-DS-
Hình 6.11 Heatmap kết quả cải thiện thời gian chờ trên công việc của tập dữ liệu
Bên cạnh đó, việc áp dụng thuật toán kNN chỉ làm thay đổi hiệu suất một chút trên tập dữ liệu HPC2N-2002 Như ta có thể suy ra từ heatmap trên Hình 6.12, trong khi các công việc nhỏ được cải thiện thời gian chờ, các công việc lớn phải chịu thời gian chờ lâu hơn Hơn nữa, ta cũng thấy được rằng không có sự khác biệt rõ ràng về hiệu suất giữa tất cả bốn phương pháp trên tập dữ liệu HPC2N-2002 Điều này có thể được giải thích bởi số lượng tài nguyên trống còn lại là rất ít cho thuật toán Backfilling Tập dữ liệu này chứa rất nhiều công việc có kích thước lớn và kéo dài Do vậy, việc căn chỉnh giá trị dự đoán thời gian chạy của các công việc trên hệ thống này chỉ giúp một chút công việc được thực thi sớm hơn
Hình 6.12 Heatmap kết quả cải thiện thời gian chờ trên tập dữ liệu HPC2N-2002
Hình 6.13 Heatmap kết quả cải thiện thời gian chờ trên tập dữ liệu SuperNode-
Trên tập dữ liệu SuperNode-XP, các thuật toán căn chỉnh dự đoán đều giúp cải thiện hiệu suất định thời, tuy nhiên sự cải thiện là không nhiều Hình 6.13 cho thấy đa số các công việc được cải thiện thời gian chờ, tuy nhiên trên Hình 6.8 thì lượng thời gian chờ được cải thiện khi so với giá trị trung bình là rất nhỏ, tổng khoảng 2,000 phút
64 thời gian chờ được giảm bớt so với giá trị trung bình khoảng 175,000 phút Bên cạnh đó, mặc dù độ chính xác của các dự đoán đã được giảm đi rất nhiều so với giá trị ban đầu từ người dùng, tuy nhiên độ sai lệch vẫn còn rất lớn (trung bình là 500,000 lần)
Do đó quá trình định thời vẫn còn nhiều khó khăn và khả năng cải thiện hiệu năng vẫn bị hạn chế Tuy nhiên, kết quả tốt của việc sử dụng giá trị dự đoán chính xác từ người dùng cho thấy nhiều tiềm năng trong tương lai của việc căn chỉnh dự đoán trên tập dữ liệu này
Cuối cùng, thuật toán kNN có kết quả tệ nhất trên tập dữ liệu ANL-Intrepid-
2009 Lý do cho hiệu suất kém này là hệ quả của việc thuật toán kNN làm cho tỉ lệ dự đoán sai bị tăng lên đáng kể đối với tập dữ liệu này Heatmap của tập dữ liệu ANL-
Intrepid-2009 trong Hình 6.14 cũng hiển thị cùng một kết quả Mặc dù tỷ lệ sai lệch trung bình của dự đoán bằng kNN trên tập dữ liệu ANL-Intrepid-2009 trong Hình 6.2 là tốt hơn so với ước tính của người dùng và thuật toán Min Diff, sự ảnh hưởng trong sai lệch trong dự đoán thời gian của các công việc lớn đã lấn át sự cải thiện thu được từ các công việc có khối lượng nhỏ
Hình 6.14 Heatmap kết quả cải thiện thời gian chờ trên tập dữ liệu ANL-
6.3.2 Kết quả hiệu suất định thời bằng mô hình học sâu tăng cường kết hợp với phương pháp dự đoán thời gian chạy Để huấn luyện mô hình DRL, tập dữ liệu từ hệ thống SuperNode-XP được sử dụng Với những đặc trưng của hệ thống này, việc diễn tả ma trận trạng thái của hệ thống sử dụng các thông số được mô tả trên Bảng 6.3 dưới đây:
Bảng 6.3: Thông số biểu diễn trạng thái
Số loại tài nguyên 1-CPU
Số lượng tài nguyên 288 Độ dài 1 timestep 10 phút
Số lượng timestep quan sát được 48 (8 tiếng)
Số vị trí trong hàng chờ 5
Tương ứng với các thông số của trạng thái trên hệ thống SuperNode-XP, việc xây dựng mạng neural học sâu cho mô hình DRL sử dụng kiến trúc như được mô tả trên Bảng 6.4, bao gồm 2 lớp neural tích chập và 1 lớp neural kết nối đầy đủ Việc cập nhật các trọng số trên mô hình sử dụng tốc độ học (learning rate) là 0.001 và thuật toán tối ưu Adam sau mỗi 10 lần thay đổi trạng thái Mô hình được hiện thực bằng ngôn ngữ Python sử dụng thư viện học sâu PyTorch [48]
Bảng 6.4: Thiết lập mạng neural của mô hình DRL
Lớp Actor Critic Đầu vào [1732, 48]
Convolutional 1 64 filters, kernel size 3x3 stride = 1, padding = 1
Convolutional 2 32 filters, kernel size 3x3 stride = 1, padding = 1
Flatten Đầu ra (Fully Connected) 6 1
Tổng số parameter cần huấn luyện 1,016,742 185,377