“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 Bảng 4-5. So sánh hiệu năng thực tế các chƣơng trình Quick Sort
Thực nghiệm 3/1 Chƣơng trình 1 Chƣơng trình 2
Lần 1 68.03 55.72 Lần 2 53.92 53.27 Lần 3 53.58 53.47 Lần 4 54.73 54.21 Lần 5 54.47 53.67 Lần 6 55.39 53.38 Lần 7 69.79 54.42 Lần 8 54.35 55.63 Lần 9 52.74 54.08 Lần 10 54.19 53.87 Lần 11 53.86 53.92 Lần 12 54.24 55.38 Lần 13 54.01 54.48 Lần 14 54.19 54.78 Lần 15 54.9 54.92 Lần 16 54.34 54.44 Lần 17 54.14 54.21 Lần 18 68.18 53.96 Lần 19 53.63 54.63 Lần 20 54.81 54.04 Trung bình (ms) 56.3745 54.324
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 8.535%, thời gian chạy thực tế chƣơng trình Quick Sort khi cài đặt mô hình ban đầu và mô hình tối ƣu có tỷ lệ giảm 3.637%.
Bảng 4-6. So sánh tỷ lệ giảm khi chạy chƣơng trình Quick Sort
Mô hình lớp Hiệu năng tính toán Thời gian thực hiện (ms)
Ban đầu 6608 56.3745
Tối ƣu 6044 54.324
Tỷ lệ giảm 8.5351089588378% 3.6372828140383%
4.5 Thực nghiệm 4 - Ứng dụng Vẽ đồ thị4.5.1 Mô tả bài toán