4.2.3 Biến đổi mô hình lớp
Để thực hiện các phép biến đổi mô hình tự động để tối ƣu hiệu năng, chúng tôi sử dụng chƣơng trình tối ƣu mức mô hình đã xây dựng ở trên. Chƣơng trình tối ƣu sử dụng T4 để chuyển từ tệp mô hình sang biểu diễn toán học dạng tập hợp, phân tích tần suất truy xuất các thành phần của lớp và thực hiện phép biến đổi phân chia cấu trúc dựa theo thuật toán K-mean và chuyển thành phần động thành tĩnh. Sau khi phân chia sẽ thu đƣợc mô hình dữ liệu mới. Mô hình dữ liệu mới này cũng đƣợc biểu diễn sang tập hợp của mô hình mới. Từ mô hình dữ liệu mới dạng tập hợp, có thể thực hiện sinh mã hoặc chuyển sang mô hình trực quan. Để sinh ngƣợc lại mô hình trực quan, chƣơng trình tối ƣu sẽ phân tích biểu diễn tập hợp của mô hình và ghi ra tệp XML theo cấu trúc của DSL đã định nghĩa.
Hình 4-6. Mẫu T4 lấy các thông tin ngữ nghĩa từ mô hình lớp A
Hình 4-7. Tệp XML đƣợc tạo từ chƣơng trình tối ƣu A
Sau khi chƣơng trình tối ƣu phân tích biểu diễn tập hợp của mô hình ban đầu và ghi ra tệp XML theo cấu trúc của DSL đã định nghĩa thì mô hình dữ liệu cải tiến dựa trên phân chia cấu trúc nhƣ Hình 4-8 đƣợc tạo thành.
Biểu đồ lớp A2
Hình 4-8. Mô hình dữ liệu mới A
Hình 4-9. Tệp tham số dựa trên các T4 templates của A
4.2.4 Đánh giá hiệu năng và lựa chọn mô hình tốt hơn
Chƣơng trình tối ƣu sẽ nhận đầu vào là tập các tệp tham số tƣơng ứng với các mô hình và tính toán hàm đánh giá hiệu năng theo thuật toán đã cài đặt cho mô hình ban đầu và mô hình tối ƣu để lựa chọn mô hình tốt hơn.
Hình 4-10. Tính toán hiệu năng và bộ nhớ cho mỗi biểu đồ lớp A
Hình 4-11. Biểu đồ so sánh tối ƣu hiệu năng và bộ nhớ chiếm dụng của biểu đồ lớp A
Kết quả tối ƣu hiệu năng và tối ƣu bộ nhớ chiếm dụng đƣợc chỉ ra nhƣ trong biểu đồ ở Hình 4-11. Trong biểu đồ này, nếu chúng ta muốn tối ƣu hiệu năng thì biểu đồ lớp A2 đƣợc lựa chọn vì có hiệu năng tốt hơn, giá trị của hàm mục tiêu là nhỏ hơn và nếu chúng ta muốn tối ƣu bộ nhớ chiếm dụng thì biểu đồ lớp A1 đƣợc lựa chọn vì có bộ nhớ chiếm dụng tốt hơn, giá trị hàm mục tiêu là nhỏ hơn. Kết quả tối ƣu bộ nhớ chiếm dụng ở đây đƣợc sử dụng để đánh giá xem mô hình nào
chiếm dụng bộ nhớ nhiều hơn, chúng tôi sẽ không cài đặt các chƣơng trình để kiểm tra kết quả tối ƣu bộ nhớ chiếm dụng mà chỉ cài đặt các chƣơng trình để kiểm tra kết quả tối ƣu hiệu năng.
Sau khi thực hiện tối ƣu hiệu năng từ biểu đồ lớp, chúng tôi đã cài đặt các chƣơng trình khác nhau tƣơng ứng với với các mô hình lớp để thực thi và kiểm tra hiệu năng thực tế. Tập lệnh và thuật toán chƣơng trình giống nhau, các chƣơng trình chỉ khác nhau về cấu trúc và các loại thuộc tính. Điều này nhằm tránh ảnh hƣởng của phần cài đặt đến việc đánh giá mức mô hình. Cuối cùng, thực hiện các chƣơng trình, thống kê và đánh giá hiệu năng thực nghiệm so với phƣơng pháp đã cài đặt. Mỗi chƣơng trình thực hiện chúng tôi chọn giá trị đĩa cần sắp xếp là 5 và chƣơng trình chạy 20 lần trên cùng một môi trƣờng thực tế, tính thời gian thực thi trung bình để đánh giá hiệu năng thực tế của chƣơng trình theo mô hình ban đầu và mô hình tối ƣu. Giao diện chƣơng trình và kết quả đƣợc thống kê trong bảng.
Bảng 4-1. So sánh hiệu năng thực tế các chƣơng trình Bài toán Tháp Hà Nội
Thực nghiệm 1/1 Chƣơng trình 1 Chƣơng trình 2
Lần 1 93002 93005 Lần 2 93004 93003 Lần 3 93004 93004 Lần 4 93004 93004 Lần 5 93004 93043 Lần 6 93055 93004 Lần 7 93004 93004 Lần 8 93032 93004 Lần 9 93017 93004 Lần 10 93004 93004 Lần 11 93020 93006 Lần 12 93004 93004 Lần 13 93004 93006 Lần 14 93004 93004 Lần 15 93004 93005 Lần 16 93004 93004 Lần 17 93004 93005 Lần 18 93005 93004 Lần 19 93005 93004 Lần 20 93004 93004 Trung bình (ms) 93009.4 93006.25
Từ kết quả trên chúng tôi so sánh hiệu năng tính toán của mô hình ban đầu và mô hình tối ƣu có tỷ lệ giảm 0.76%, thời gian chạy thực tế chƣơng trình bài toán Tháp Hà Nội khi cài đặt mô hình ban đầu và mô hình tối ƣu có tỷ lệ giảm 0.00339%.
Bảng 4-2. So sánh tỷ lệ giảm khi chạy chƣơng trình Bài toán Tháp Hà Nội
Mô hình lớp Hiệu năng tính toán Thời gian thực hiện (ms)
Ban đầu 4208 93009.4
Tối ƣu 4176 93006.25
4.3 Thực nghiệm 2 - Ứng dụng Bài toán 8 Quân hậu4.3.1 Mô tả bài toán 4.3.1 Mô tả bài toán
Bài toán “ 8 Quân hậu” nhƣ sau: Quận hậu trên bàn cờ vua có thể ăn theo hàng, cột, đƣờng chéo chứa nó. Tìm cách đặt 8 quân hậu trên bàn cờ sao cho không quân nào ăn đƣợc quân nào. Bài toán đƣợc cài đặt theo thuật toán di truyền.
4.3.2 Thiết kế lớp gốc
Dựa vào DSL đã xây dựng trong chƣơng trƣớc để thiết kế mô hình dữ liệu ban đầu cho ứng dụng Bài toán 8 Quân hậu. Biểu đồ lớp ban đầu của ứng dụng đƣợc thiết kế nhƣ Hình 4-13.
Hình 4-14. Tệp XML của biểu đồ lớp B1
Sau khi thiết kế xong biểu đồ chúng ta sẽ bổ sung thông tin về thuộc tính tần số truy suất các thành phần của lớp, nhƣ Hình 4-15, tên thuộc tính có tên là + genes: int[] và thông tin về tuần suất truy suất của thuộc tính là 2000 lần.
Hình 4-15. Thuộc tính tần số truy xuất thành phần trong biểu đồ lớp B1
4.3.3 Biến đổi mô hình lớp
Để thực hiện các phép biến đổi mô hình tự động để tối ƣu hiệu năng, chúng tôi sử dụng chƣơng trình tối ƣu mức mô hình đã xây dựng ở trên. Chƣơng trình tối ƣu sử dụng T4 để chuyển từ tệp mô hình sang biểu diễn toán học dạng tập hợp, phân tích tần suất truy xuất các thành phần của lớp và thực hiện phép biến
đổi phân chia cấu trúc dựa theo thuật toán K-mean và chuyển đổi thành phần động thành tĩnh. Sau khi phân chia sẽ thu đƣợc mô hình dữ liệu mới. Mô hình dữ liệu mới này cũng đƣợc biểu diễn sang tập hợp của mô hình mới. Từ mô hình dữ liệu mới dạng tập hợp, có thể thực hiện sinh mã hoặc chuyển sang mô hình trực quan. Để sinh ngƣợc lại mô hình trực quan, chƣơng trình tối ƣu sẽ phân tích biểu diễn tập hợp của mô hình và ghi ra tệp XML theo cấu trúc của DSL đã định nghĩa.
Hình 4-16. Chƣơng trình thực hiện phép phân chia cấu trúc biểu đồ lớp B
Hình 4-18. Tệp XML đƣợc tạo từ chƣơng trình tối ƣu B
Sau khi chƣơng trình tối ƣu phân tích biểu diễn tập hợp của mô hình ban đầu và ghi ra tệp XML theo cấu trúc của DSL đã định nghĩa thì mô hình dữ liệu cải tiến dựa trên phân chia cấu trúc nhƣ Hình 4-19 đƣợc tạo thành.
Hình 4-19. Mô hình dữ liệu mới B Biểu đồ lớp B2 Biểu đồ lớp B2
Hình 4-20. Tệp tham số dựa trên các T4 templates của B
4.3.4 Đánh giá hiệu năng và lựa chọn mô hình tốt hơn
Chƣơng trình tối ƣu sẽ nhận đầu vào là tập các tệp tham số tƣơng ứng với các mô hình và tính toán hàm đánh giá hiệu năng theo thuật toán đã cài đặt cho mô hình ban đầu và mô hình tối ƣu để lựa chọn mô hình tốt hơn.
Hình 4-22. Biểu đồ so sánh tối ƣu hiệu năng và bộ nhớ chiếm dụng của biểu đồ lớp B
Kết quả tối ƣu hiệu năng và tối ƣu bộ nhớ chiếm dụng đƣợc chỉ ra nhƣ trong biểu đồ ở Hình 4-22. Trong biểu đồ này, chúng tôi thấy kết quả giá trị hàm mục tiêu hiệu năng của biểu đồ lớp B2 nhỏ hơn nên chúng tôi sẽ lựa chọn biểu đồ lớp B2 nếu muốn tối ƣu hiệu năng, tƣơng tự kết quả giá trị hàm mục tiêu bộ nhớ của biểu đồ lớp B1 nhỏ hơn nên chúng tôi muốn tối ƣu về bộ nhớ chiếm dụng khi thực thi chƣơng trình theo mô hình B1 thì biểu đồ lớp B1 sẽ đƣợc lựa chọn. Kết quả tối ƣu bộ nhớ chiếm dụng ở đây đƣợc sử dụng để đánh giá xem mô hình nào chiếm dụng bộ nhớ nhiều hơn, chúng tôi sẽ không cài đặt các chƣơng trình để kiểm tra kết quả tối ƣu bộ nhớ chiếm dụng mà chỉ cài đặt các chƣơng trình để kiểm tra kết quả tối ƣu hiệu năng.
Sau khi thực hiện tối ƣu hiệu năng từ biểu đồ lớp, chúng tôi đã cài đặt các chƣơng trình khác nhau tƣơng ứng với với các mô hình lớp để thực thi và kiểm tra hiệu năng thực tế. Tập lệnh và thuật toán chƣơng trình giống nhau, các chƣơng trình chỉ khác nhau về cấu trúc và các loại thuộc tính. Điều này nhằm tránh ảnh hƣởng của phần cài đặt đến việc đánh giá mức mô hình. Cuối cùng, thực hiện các chƣơng trình, thống kê và đánh giá hiệu năng thực nghiệm so với phƣơng pháp đã cài đặt. Mỗi chƣơng trình thực hiện chúng tôi chọn giá trị Population Size = 1000, Generations = 10, Crosttover Probability = 0.70, Mutation Probability = 0.01 và chƣơng trình chạy 20 lần trên cùng một môi trƣờng thực tế, tính thời gian thực thi trung bình để đánh giá hiệu năng thực tế của chƣơng trình theo mô hình ban đầu và mô hình tối ƣu. Giao diện chƣơng trình và kết quả đƣợc thống kê trong bảng.
Hình 4-23. Giao diện chƣơng trình Bài toán 8 Quân hậu
Bảng 4-3. So sánh hiệu năng thực tế các chƣơng trình Bài toán 8 quân hậu
Thực nghiệm 2/1 Chƣơng trình 1 Chƣơng trình 2
Lần 1 4885 4936 Lần 2 4874 4923 Lần 3 4871 1139 Lần 4 4912 4903 Lần 5 4894 4929 Lần 6 3618 1691 Lần 7 4878 3091 Lần 8 4876 4909 Lần 9 4924 4931 Lần 10 4878 4918 Lần 11 4863 4912 Lần 12 4874 4952 Lần 13 1083 4902 Lần 14 4887 4936 Lần 15 4879 2152 Lần 16 2558 4906 Lần 17 4894 4909 Lần 18 4930 4946 Lần 19 4872 4914 Lần 20 4870 1034 Trung bình (ms) 4516 4146.65
Từ kết quả trên chúng tôi so sánh hiệu năng tính toán của mô hình ban đầu và mô hình tối ƣu có tỷ lệ giảm 2.089%, thời gian chạy thực tế chƣơng trình Bài toán 8 quân hậu khi cài đặt mô hình ban đầu và mô hình tối ƣu có tỷ lệ giảm 8.179%.
Bảng 4-4. So sánh tỷ lệ giảm khi chạy chƣơng trình Bài toán 8 quân hậu
Mô hình lớp Hiệu năng tính toán Thời gian thực hiện (ms)
Ban đầu 6892 4516
Tối ƣu 6748 4146.65
Tỷ lệ giảm 2.0893789901335% 8.1786979627989%
4.4 Thực nghiệm 3 - Ứng dụng Sắp xếp kiểu phân đoạn (Quick Sort)4.4.1 Mô tả bài toán 4.4.1 Mô tả bài toán
“Quick Sort”: chọn ngẫu nhiên một dãy n số không theo thứ tự, ứng dụng cài đặt thuật toán quick sort để thực hiện sắp xếp theo thứ tự từ nhỏ đến lớn.
4.4.2 Thiết kế lớp gốc
Dựa vào DSL đã xây dựng trong chƣơng trƣớc để thiết kế mô hình dữ liệu ban đầu cho ứng dụng Quick Sort. Biểu đồ lớp ban đầu của ứng dụng đƣợc thiết kế nhƣ hình 4-24.
Hình 4-25. Tệp XML của biểu đồ lớp C1
Sau khi thiết kế xong biểu đồ chúng ta sẽ bổ sung thông tin về thuộc tính tần số truy suất các thành phần của lớp, nhƣ Hình 4-26, tên thuộc tính có tên là +static strt: double và thông tin về tuần suất truy suất của thuộc tính là 30 lần.
Hình 4-26. Thuộc tính tần số truy xuất thành phần trong biểu đồ lớp C1
4.4.3 Biến đổi mô hình lớp
Để thực hiện các phép biến đổi mô hình tự động để tối ƣu hiệu năng, chúng tôi sử dụng chƣơng trình tối ƣu mức mô hình đã xây dựng ở trên. Chƣơng trình tối ƣu sử dụng T4 để chuyển từ tệp mô hình sang biểu diễn toán học dạng tập
đổi phân chia cấu trúc dựa theo thuật toán K-mean và chuyển thành phần động thành tĩnh. Sau khi phân chia sẽ thu đƣợc mô hình dữ liệu mới. Mô hình dữ liệu mới này cũng đƣợc biểu diễn sang tập hợp của mô hình mới. Từ mô hình dữ liệu mới dạng tập hợp, có thể thực hiện sinh mã hoặc chuyển sang mô hình trực quan. Để sinh ngƣợc lại mô hình trực quan, chƣơng trình tối ƣu sẽ phân tích biểu diễn tập hợp của mô hình và ghi ra tệp XML theo cấu trúc của DSL đã định nghĩa.
Hình 4-27. Chƣơng trình thực hiện phép phân chia cấu trúc biểu đồ lớp C
Hình 4-29. Tệp XML đƣợc tạo từ chƣơng trình tối ƣu C
Sau khi chƣơng trình tối ƣu phân tích biểu diễn tập hợp của mô hình ban đầu và ghi ra tệp XML theo cấu trúc của DSL đã định nghĩa thì mô hình dữ liệu cải tiến dựa trên phân chia cấu trúc nhƣ Hình 4-30 đƣợc tạo thành.
Biểu đồ lớp C2
Hình 4-31. Tệp tham số dựa trên các T4 templates của C
4.4.4 Đánh giá hiệu năng và lựa chọn mô hình tốt hơn
Chƣơng trình tối ƣu sẽ nhận đầu vào là tập các tệp tham số tƣơng ứng với các mô hình và tính toán hàm đánh giá hiệu năng theo thuật toán đã cài đặt cho mô hình ban đầu và mô hình tối ƣu để lựa chọn mô hình tốt hơn.
Hình 4-33. Biểu đồ so sánh tối ƣu hiệu năng và bộ nhớ chiếm dụng của biểu đồ lớp C
Biểu đồ ở Hình 4-23 là kết quả tối ƣu hiệu năng và tối ƣu bộ nhớ chiếm dụng. Trong biểu đồ này, nếu chúng ta muốn tối ƣu hiệu năng thì biểu đồ lớp C2 đƣợc lựa chọn vì có hiệu năng tốt hơn, giá trị của hàm mục tiêu là nhỏ hơn và biểu đồ lớp C1 đƣợc lựa chọn nếu chúng tôi muốn tối ƣu bộ nhớ vì có bộ nhớ chiếm dụng tốt nhất, giá trị hàm mục tiêu là nhỏ hơn. Kết quả tối ƣu bộ nhớ chiếm dụng ở đây đƣợc sử dụng để đánh giá xem mô hình nào chiếm dụng bộ nhớ nhiều hơn, chúng tôi sẽ không cài đặt các chƣơng trình để kiểm tra kết quả tối ƣu bộ nhớ chiếm dụng mà chỉ cài đặt các chƣơng trình để kiểm tra kết quả tối ƣu hiệu năng.
Sau khi thực hiện tối ƣu hiệu năng từ biểu đồ lớp, chúng tôi đã cài đặt các chƣơng trình khác nhau tƣơng ứng với với các mô hình lớp để thực thi và kiểm tra hiệu năng thực tế. Tập lệnh và thuật toán chƣơng trình giống nhau, các chƣơng trình chỉ khác nhau về cấu trúc và các loại thuộc tính. Điều này nhằm tránh ảnh hƣởng của phần cài đặt đến việc đánh giá mức mô hình. Cuối cùng, thực hiện các chƣơng trình, thống kê và đánh giá hiệu năng thực nghiệm so với phƣơng pháp đã cài đặt. Mỗi chƣơng trình thực hiện 20 lần trên cùng một môi trƣờng thực tế, tính thời gian thực thi trung bình để đánh giá hiệu năng thực tế của chƣơng trình theo mô hình ban đầu và mô hình tối ƣu. Giao diện chƣơng trình và kết quả đƣợc thống kê trong bảng.
Hình 4-34. Giao diện chƣơng trình Quick sort Bảng 4-5. So sánh hiệu năng thực tế các chƣơng trình Quick Sort