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 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 4.5.1 Mô tả bài toán
“Vẽ đồ thị”: nhập hàm toán học, ứng dụng thực hiện vẽ đồ thị theo hàm nhập vào.
4.5.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 Vẽ đồ thị. Biểu đồ lớp ban đầu của ứng dụng đƣợc thiết kế nhƣ hình 4-35.
Hình 4-36. Tệp XML của biểu đồ lớp D1
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-37, tên thuộc tính có tên là +max: 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-37. Thuộc tính tần số truy xuất thành phần trong biểu đồ lớp D1
4.5.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, loại bỏ thuộc tính dƣ thừa. 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-35. Chƣơng trình thực hiện phép phân chia cấu trúc biểu đồ lớp D
Hình 4-37. Tệp XML đƣợc tạo từ chƣơng trình tối ƣu D
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-41 đƣợc tạo thành.
Biểu đồ lớp D2
Hình 4-4239. Tệp tham số dựa trên các T4 templates của D
4.5.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-44. 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 D
Biểu đồ ở Hình 4-44 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 D2 đƣợ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 D1 đƣợ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 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 vẽ hàm f(x) = sin(x), - Độ trễ (ms): =2, 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-45. Giao diện chƣơng trình Vẽ đồ thị Bảng 4-7. So sánh hiệu năng thực tế các chƣơng trình Vẽ đồ thị
Thực nghiệm 4/1 Chƣơng trình 1 Chƣơng trình 2
Lần 1 4025 4023 Lần 2 3996 3998 Lần 3 3998 3997 Lần 4 3998 3997 Lần 5 3998 3996 Lần 6 3998 3996 Lần 7 3996 3997 Lần 8 3997 3996 Lần 9 3996 3997 Lần 10 3997 3997 Lần 11 3996 3996 Lần 12 3997 3997 Lần 13 3996 3996 Lần 14 3997 3996 Lần 15 3996 3996 Lần 16 3996 3998 Lần 17 3997 3996 Lần 18 3997 3997 Lần 19 3996 3996 Lần 20 3996 3996 Trung bình (ms) 3998.15 3997.9
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.4%, thời gian chạy thực tế chƣơng trình Vẽ đồ thị khi cài đặt mô hình ban đầu và mô hình tối ƣu có tỷ lệ giảm 0.00625%.
Bảng 4-8. So sánh tỷ lệ giảm khi chạy chƣơng trình Vẽ đồ thị
Mô hình lớp Hiệu năng tính toán Thời gian thực hiện (ms)
Ban đầu 15744 3998.15
Tối ƣu 15680 3997.9
Tỷ lệ giảm 0.4065040650406% 0.0062528919625%
Ngoài ra, chúng tôi tiến hành thực nghiệm trên một số chƣơng trình đơn giản khác nhƣ Game Snake, Mã đi tuần cũng thu đƣợc các kết quả tƣơng tự.
Tổng kết chƣơng
Cho đến hiện tại thì không có nhiều nghiên cứu về tối ưu phần mềm nhúng dựa trên chuyển đổi mô hình
. Cụ thể như so với nghiên cứu của Anne Keller về “Tối ưu cấu trúc dữ liệu phần mềm nhúng ở mức mô hình” (Optimizing Abstract Data Types in Embedded Applications at Modeling Level), thì luận văn của tôi đã có quy trình xây dựng DSL hỗ trợ thiết kế mô hình dữ liệu của ứng dụng tích hợp công nghệ sinh mã T4 để trích suất tham số từ mô hình. Ngoài ra luận văn cũng đã có chương trình tối ưu hóa cài đặt phép biến đổi phân chia cấu trúc và chuyển thành phần động thành tĩnh và cài đặt công thức đánh giá hiệu năng và bộ nhớ chiếm dụng từ biểu đồ lớp, để từ đó chúng ta có thể so sánh và lựa chọn được biều đổ lớp tối ưu hơn. Kết quả thực nghiệm đã kiểm chứng cho các nghiên cứu ở trên.
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỀN
Tối ƣu dựa trên biến đổi mô hình là một hƣớng tối ƣu theo cách tiếp cận đánh giá trực tiếp mô hình hiện đang đƣợc quan tâm nghiên cứu nhƣng vẫn còn gặp nhiều thách thức. Do vậy luận văn đã phát triển phƣơng pháp tối ƣu phần mềm nhúng dựa trên biến đổi mô hình và xây dựng chƣơng trình tối ƣu cũng nhƣ công cụ hỗ trợ. Từ biểu đồ lớp chúng ta phân tích các tham số, xây dựng các hàm đánh giá hiệu năng và mức chiếm dụng bộ nhớ để sử dụng làm tiêu chí lựa chọn. Các phép biến đổi mô hình cũng đƣợc xây dựng để chuyển đổi mô hình ban đầu sang mô hình tối ƣu. Quá trình tối ƣu đƣợc tiến hành tự động dựa trên ngôn ngữ miền chuyên dụng (DSL) và công nghệ sinh mã T4.
Cụ thể về lý thuyết, luận văn đã bổ sung tham số vào hàm đánh giá hiệu năng từ mô hình phần mềm, tìm hiểu hàm đánh giá bộ nhớ và ba phép biến đổi mới để tối ƣu hiệu năng. Về thực nghiệm, luận văn cũng đã xây dựng framework DSL, T4 để thiết kế và sinh thông tin đặc tả, tham số tự động và xây dựng chƣơng trình tối ƣu cho phép chuyển đổi mô hình để tối ƣu hiệu năng, dung lƣợng bộ nhớ chiếm dụng, xây dựng chƣơng trình cài đặt và so sánh hàm đánh giá hiệu năng và bộ nhớ chiếm dụng.
Mặc dù thu đƣợc một số kết quả khả quan nhƣng vấn đề tối ƣu trong giai đoạn thiết kế vẫn còn nhiều thách thức và bài toán tối ƣu dựa trên chuyển đổi mô hình cũng cần đƣợc giải quyết đầy đủ và tự động. Trong luận văn này, chúng tôi đã giới hạn bài toán không xét đến tính kế thừa giữa các cấu trúc cũng nhƣ tính bao gói và phạm vi truy xuất của các thành phần bên trong cấu trúc. Mở rộng cho các nghiên cứu tiếp sau, chúng tôi có thể tiếp tục nghiên cứu sâu hơn về tối ƣu dựa trên chuyển đổi mô hình đầy đủ hơn xét các mô hình động nhƣ mô hình tuần tự, mô hình trạng thái; đánh giá các khía cạnh khác của mô hình nhƣ tính cấu trúc, tính bao gói, tính kế thừa và khả năng tái sử dụng. Ngoài ra chúng tôi sẽ tiến hành thực nghiệm đầy đủ các phép biến đổi còn lại hoặc kết hợp giữa các phép biến đổi để tối ƣu.
TÀI LIỆU THAM KHẢO Tiếng việt
1. Phạm Thƣợng Cát, “Hệ thống nhúng và sự phát triển của công nghệ thông tin”, Tạp chí Tin học và Điều khiển, Tr. 1-9, 2005
2. Nguyễn Ngọc Bình, ”Công nghệ phần mềm nhúng”, Nhà xuất bản Đại học quốc gia Hà Nội, Tr. xii-xvi, 1-11, 2014
Tiếng anh
3. Anne Keller, Optimizing Abstract Data Types in Embedded Applications at Modeling Level, November 2006
4. Armita Peymandoust, Tajana Simunic, Giovanni De Micheli, “Low Power
Embedded Software Optimization using Symbolic Algebra”, 2002
5. Angyoon Oh and Geoffrey C. Fox, “Optimizing Web Service Messaging
Performance in Mobile Computing’, Community Grids Lab, Indiana
University, Bloomington, Indiana, 47404, USA 2008
6. Feeney, L. & Nilsson, M., “Investigating the energy consumption of a
wireless network interface in an ad hoc networking environment”, IEEE