Tuy nhiên, một số công cụ đánh giá hiệu năng của hệ thống không hỗ trợ trực quan hóa kết quả đánh giá hiệu suất như HPL và Graph500, người dùng phải sử dụng các phương pháp phân tích và
Trang 1
ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
HUỲNH VANG
NGHIÊN CỨU, PHÁT TRIỂN CÔNG CỤ TRỰC QUAN HÓA DỮ LIỆU ĐÁNH GIÁ
HIỆU SUẤT MÁY TÍNH CỤM
Chuyên ngành : Khoa học máy tính
Mã số: 60480101
LUẬN VĂN THẠC SĨ
TP HỒ CHÍ MINH, tháng 12 năm 2016
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG -HCM
Cán bộ hướng dẫn khoa học : PGS.TS THOẠI NAM
Cán bộ chấm nhận xét 1 :
Cán bộ chấm nhận xét 2 :
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày tháng năm
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ) 1
2
3
4
5
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: HUỲNH VANG MSHV:7140020
Ngày, tháng, năm sinh: 01/08/1991 Nơi sinh: Bình Định
Chuyên ngành: Khoa học máy tính Mã số : 60480101
I TÊN ĐỀ TÀI: NGHIÊN CỨU, PHÁT TRIỂN CÔNG CỤ TRỰC QUAN HÓA DỮ
LIỆU ĐÁNH GIÁ HIỆU SUẤT MÁY TÍNH CỤM
II NHIỆM VỤ VÀ NỘI DUNG:
- Xác định mục tiêu cụ thể đề tài
- Công cụ đánh giá hiệu suất và trực quan hóa dữ liệu
- Thiết kế và xây dựng công cụ trực quan hóa dữ liệu
- Thực nghiệm và đánh giá
III NGÀY GIAO NHIỆM VỤ : 04/07/2016
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 04/12/2016
V CÁN BỘ HƯỚNG DẪN : PGS.TS THOẠI NAM
Tp HCM, ngày tháng năm …
Trang 4Tôi cũng xin bày tỏ lòng cảm ơn của mình đến tập thể quý thầy cô trong bộ môn Khoa học máy tính và phòng Đào tạo sau đại học – Trường Đại học Bách Khoa thành phố Hồ Chí Minh đã hỗ trợ tôi trong suốt thời gian học tập tại trường
Cuối cùng, tôi xin gửi lời cảm ơn vô cùng chân thành nhất tới gia đình của tôi và bạn
bè đã luôn động viên, khích lệ và giúp đỡ tôi trong suốt quãng thời gian học tập tại trường
Tôi xin chân thành cảm ơn
Tp Hồ Chí Minh, ngày 04 tháng 12 năm 2016
Huỳnh Vang
Trang 5TÓM TẮT LUẬN VĂN THẠC SĨ
Hiệu suất của các hệ thống máy tính lớn (dạng máy tính cụm) luôn là vấn đề được quan tâm hàng đầu Đo đạc hiệu suất các hệ thống máy tính này có các công cụ như HPL, Graph500 Để hiểu và phân tích kết quả từ hai công cụ này cần người có chuyên môn
Đề tài phát triển một công cụ trực quan hóa để phân tích và trực quan hóa kết quả đo đạc hiệu suất của máy tính cụm từ công cụ HPL Benchmark và Graph 500 Benchmark
1 Công cụ cho phép trực quan hóa và phân tích hiệu năng khi triển khai máy ảo và Docker trên hệ thống máy tính cụm
The performance of supercomputers (computer cluster) is a hot topic To evaluate performance of this computer cluster, HPL benchmark and Graph500 benchmark are used We must have knowledge about this benchmark tools to know and analyze the benchmark result This thesis is to build up a performance visualization tool to analyze and visualize benchmark result from HPL Benchmark and Graph 500 Benchmark This tool also allow us to analyze and visualize performance when deploy virtual machine and Docker on computer cluster
Trang 6LỜI CAM ĐOAN
Tôi tên là Huỳnh Vang, mã học viên 7140020, học viên chuyên ngành Khoa học máy tính, trường Đại học Bách Khoa thành phố Hồ Chí Minh khóa 2014 – 2016 Tôi xin cam đoan rằng: ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi rõ trong luận văn, các công việc trình bày trong luận văn này là do chính tôi thực hiện dưới sự hướng dẫn của thầy PGS TS Thoại Nam và chưa có phần nội dung nào của luận văn được nộp để lấy bằng cấp ở trường này hoặc trường khác
Tp Hồ Chí Minh, ngày 04 tháng 12 năm 2016
Học viên thực hiện
Huỳnh Vang
Trang 7MỤC LỤC
Chương 1: GIỚI THIỆU 1
1.1 Giới thiệu vấn đề 1
1.2 Lý do chọn đề tài 1
1.3 Mục tiêu, giới hạn đề tài 2
1.4 Phương pháp thực hiện 3
1.5 Đóng góp của đề tài 3
1.6 Cấu trúc luận văn 4
Chương 2: CÔNG CỤ ĐÁNH GIÁ HIỆU SUẤT VÀ TRỰC QUAN HÓA DỮ LIỆU 5
2.1 Công cụ đánh giá hiệu suất máy tính cụm 5
2.1.1 Công cụ đánh giá khả năng tính toán (HPL) 5
2.1.1.1 Mục đích của công cụ HPL 5
2.1.1.2 Xác định các thông số quan tâm cho việc khảo sát hiệu suất máy tính cụm 8
2.1.2 Công cụ đánh giá khả năng truy xuất dữ liệu 7
2.1.2.1 Giới thiệu Graph500 Benchmark 1(Graph500) 7
2.1.2.2 Xác định các thông số quan tâm cho việc khảo sát hiệu suất máy tính cụm 8
2.2 Trực quan hóa dữ liệu 8
2.2.1 Khái niệm trực quan hóa 8
2.2.1.1 Mục đích trực quan hóa 8
2.2.1.2 Quá trình trực quan hóa 9
2.2.2 Các biểu đồ trực quan hóa dữ liệu 14
2.2.3 Tương tác trong trực quan hóa 14
2.3 Khảo sát trực quan hóa dữ liệu đánh giá hiệu suất 15
2.3.1 Khái niệm trực quan hóa hiệu suất 15
2.3.2 Các dạng trực quan hóa 16
2.3.3 Tương tác trong trực quan hóa hiệu suất 19
2.4 Khảo sát các thư viện trực quan hóa Javascript 19
2.5 Trực quan hóa dữ liệu sử dụng ELK Stack 20
2.6 Các công cụ trực quan hóa hiệu suất đã có và các công trình liên quan 21
Trang 82.6.1 ParaProf 21
2.6.2 Vampir 21
2.6.3 PerfExplorer 22
2.6.4 Các công cụ trực quan hóa hiệu suất khác 22
2.6.5 Nhận xét chung từ các công cụ đã khảo sát 25
Chương 3: THIẾT KẾ VÀ XÂY DỰNG CÔNG CỤ 27
3.1 Xác định mục tiêu cụ thể của đề tài 27
3.2 Thu thập, lưu trữ dữ liệu đánh giá hiệu suất máy tính cụm 29
3.2.1 Thu thập và lưu trữ dữ liệu công cụ HPL 30
3.2.2 Thu thập và lưu trữ dữ liệu công cụ Graph500 32
3.2.3 Lưu trữ cấu hình vật lý của cụm máy tính 34
3.2.4 Tập dữ liệu đánh giá hiệu suất máy tính cụm 35
3.3 Phân tích dữ liệu đánh giá hiệu suất máy tính cụm 35
3.3.1 Các phương pháp phân tích dữ liệu và các công trình liên quan 35
3.3.2 Phân tích dữ liệu theo kịch bản đo đạc 36
3.3.3 Giải thuật gom cụm và áp dụng 38
3.4 Trực quan hóa dữ liệu 42
3.4.1 Lựa chọn biểu đồ trực quan hóa 42
3.4.2 Trực quan hóa theo kịch bản đo đạc 49
3.4.2.1 Trực quan hóa ảnh hưởng kích thước bài toán đến hiệu suất của hệ thống 49
3.4.2.2 Trực quan hóa số lượng thực thể ảo hóa đến hiệu suất máy tính cụm 51
3.4.2.3 Trực quan hóa ảnh hưởng kích thước bài toán và số thực thể ảo hóa đến hiệu suất máy tính cụm 53
3.4.2.4 Trực quan hóa sử dụng dữ liệu của HPL và Graph500 55
3.4.3 Trực quan hóa dữ liệu phát hiện các bất thường về hiệu suất 56
3.4.4 Trực quan hóa cấu hình vật lý của cụm máy tính 58
3.4.5 Tương tác người dùng trong trực quan hóa 60
3.5 Mô hình và hiện thực 60
3.5.1 Mô hình 60
3.5.2 WEB Server 62
3.5.3 Thư viện JavaScript 65
Chương 4: THỰC NGHIỆM, ĐÁNH GIÁ 68
4.1 Cấu hình cụm máy tính và kịch bản đánh giá hiệu suất sử dụng HPL, Graph500 68
Trang 94.2 Lưu trữ dữ liệu đánh giá hiệu suất của công cụ HPL và Graph500 69
4.3 Các chức năng cơ bản của công cụ 70
4.3.1 Trực quan hóa dữ liệu đánh giá hiệu suất HPL 71
4.3.2 Trực quan hóa dữ liệu đánh giá hiệu suất Graph500 76
4.3.3 Trực quan hóa hiệu suất cụm máy tính sử dụng dữ liệu đánh giá hiệu suất HPL và Graph500 77
4.3.4 Phân loại và tìm các bất thường về hiệu suất 78
4.4 So sánh với mục tiêu đề ra 81
4.5 So sánh với các phần mềm khác 81
Chương 5: TỔNG KẾT 83
5.1 Kết quả đạt được 83
5.2 Hạn chế 84
5.3 Hướng phát triển 84
5.4 Kết luận 85
DANH MỤC TÀI LIỆU THAM KHẢO 86
PHỤ LỤC 92
Trang 10DANH MỤC HÌNH
Hình 2.1: Các bước trực quan hóa 9
Hình 2.2: Lớp biểu diễn hàm F như một lớp trong lập trình hướng đối tượng 12
Hình 2.3: Quá trình trực quan hóa được xem như là một mạng của các đối tượng 13
Hình 2.4: Kỹ thuật trực quan hóa Focus, Context 15
Hình 2.5: Một dạng biểu diễn của Information typography biểu diễn hiệu suất gắn với cấu trúc mạng 18
Hình 2.6: Cấu trúc của file đầu vào và kết quả hiển thị tương ứng 23
Hình 2.7: Kết quả biểu diễn Speedup của hệ thống 24
Hình 2.8: Kết quả biểu diễn Efficiency của hệ thống 24
Hình 2.9: Hiệu suất hệ thống và cấu trúc mạng 25
Hình 3.1: Quá trình thu thập, lưu trữ, phân tích và trực quan hóa dữ liệu đánh giá hiệu suất máy tính cụm 29
Hình 3.2: Cấu trúc của file CSV chứa thông tin đo đạc của HPL, mỗi dòng là một kết quả một lần đo đạc 31
Hình 3.3: Cấu trúc file CSV chứa kết quả cho mỗi lần đo đạc, mỗi dòng tương ứng với 1 lần thực hiện đo đạc bằng Graph500 34
Hình 3.4: Cấu trúc của file text CSV lưu trữ thông tin vật lý của cụm máy tính Cụm máy tính gồm 2 node vật lý, bộ nhớ RAM trên mỗi node vật lý là 32G, tốc độ của CPU là 2.4GHz, tốc độ kết nối là 100Mbps 35
Hình 3.5: Minh họa giải thuật gom cụm k-Means với k=2 40
Hình 3.6: Khảo sát sự thay đổi kích thước bài toán 51
Hình 3.7: Ảnh hưởng số lượng thực thể đến hiệu suất hệ thống 52
Hình 3.8: Ảnh hưởng kích thước bài toán và số lượng thực thể ảo hóa đến hiệu suất hệ thống 54
Hình 3.9: Heatmap biểu diễn hiệu suất thực tế ứng với kích thước bài toán và số lượng thực thể ảo hóa trên môi trường ảo Docker 55
Hình 3.10: Ảnh hưởng của số lượng thực thể đến hiệu suất của cụm máy tính sử dụng HPL và Graph500 56
Hình 3.11: Sử dụng Bubble Chart để trực quan các điểm dữ liệu bất thường cho môi trường Docker 57
Hình 3.12: Sử dụng Parallel Coordinates Chart để biểu diễn các dữ liệu bất thường trong hiệu suất của môi trường Docker 58
Trang 11Hình 3.13: Cấu hình vật lý của cụm máy tính gồm 3 node, mỗi node triển khai 2 máy ảo và
thông tin chi tiết của node vật lý được chọn 60
Hình 3.14: Mô hình tổng quát của ứng dụng 61
Hình 3.15: Kiến trúc của ứng dụng Web Server 63
Hình 3.16: Sơ đồ lớp WEB Server 64
Hình 3.17: Đặc tả chi tiết cho Hpl Module 65
Hình 3.18: Browser gởi Ajax request lên server để lấy thông tin dạng JSON và sử dụng thư viện Javascript để vẽ đồ thị từ dữ liệu JSON 66
Hình 3.19: Sử dụng Ajax để lấy dữ liệu từ WEB server và vẽ các biểu đồ từ dữ liệu JSON
67
Hình 4.1: Chức năng nhập cấu hình cụm máy tính từ file CSV 69
Hình 4.2: Chức năng nhập dữ liệu đánh giá hiệu suất công cụ HPL và Graph500 70
Hình 4.3: Công cụ hỗ trợ xuất dữ liệu dưới dạng file CSV để thay đổi hoặc sử dụng cho các lần phân tích sau 70
Hình 4.4: Ảnh hưởng của kích thước bài toán và số lượng thực thể ảo hóa đến hiệu suất sử dụng công cụ HPL 72
Hình 4.5: Ảnh hưởng của các môi trường ảo hóa đến hiệu suất của cụm máy tính 73
Hình 4.6: Tương tác người dùng lựa chọn môi trường ảo hóa và số lượng thực thể ảo hóa để khảo sát hiệu suất của cụm máy tính 74
Hình 4.7: Ảnh hưởng của kích thước bài toán đến hiệu suất cụm máy tính ứng với môi trường ảo hóa và số lượng thực thể được lựa chọn khảo sát 75
Hình 4.8: Người dùng có thể lựa chọn “Best Case” để khảo sát số lượng thực thể ảo hóa mang lại hiệu suất cao nhất cho cụm máy tính ứng với môi trường ảo hóa được chọn 76
Hình 4.9: Khảo sát hiệu suất của công cụ Graph500 với trường hợp 4 Docker trên một máy vật lý, hiệu suất đạt được sẽ được so sánh với trường hợp tốt nhất 77
Hình 4.10: Ảnh hưởng của số thực thể ảo hóa đến hiệu suất cụm máy tính sử dụng công cụ HPL và Graph500 78
Hình 4.11: Lựa chọn môi trường ảo hóa cần thực hiện gom cụm để thực hiện giải thuật k-Means trên dữ liệu HPL 78
Hình 4.12: Phân loại hiệu suất sau khi thực hiện gom cụm, màu xanh dương thể hiện trường hợp hiệu suất tốt nhất, màu đỏ thể hiện hiệu suất thấp nhất 79
Hình 4.13: Người dùng có thể tương tác với biểu đồ và tooltip được sử dụng khi người dùng chọn một dòng dữ liệu để quan sát 80
Hình 4.14: Bubble chart biểu diễn kết quả phân loại hiệu suất, màu đen là các trường hợp hiệu suất tốt nhất, màu xanh dương là các trường hợp hiệu suất xấu nhất 80
Hình 6.1: Kiến trúc của ELK 98
Hình 6.2: Cấu trúc file config của Logstash để cung cấp dữ liệu cho Elasticsearch 99
Trang 12Hình 6.3: Biểu đồ được tạo ra từ công cụ Kibana 100
Trang 13DANH MỤC BẢNG
Bảng 2.1: Khảo sát các thư viện Javascript hỗ trợ trực quan hóa 20
Bảng 3.1: Khảo sát các biểu đồ trực quan hóa 47
Bảng 3.2: Các gợi ý cho thiết kế biểu đồ trực quan hóa 48
Bảng 3.3: Trực quan hóa cấu hình cụm máy tính 59
Bảng 4.1: Cấu hình cụm máy tính thử nghiệm 68
Trang 15CHƯƠNG 1: GIỚI THIỆU
Hiệu suất của hệ thống tính toán phân tán phụ thuộc vào đặc điểm vật lí của hệ thống như băng thông, RAM, kiểu kết nối giữa các node vật lý, tốc độ xử lý của các node và
cả công nghệ ảo hóa áp dụng lên hệ thống Để có thể tối ưu hóa và hiểu được các vấn
đề hiệu suất trong hệ thống, cần có công cụ hỗ trợ đánh giá và phân tích hiệu suất của
hệ thống đó [1]
Có nhiều kỹ thuật trực quan hóa dữ liệu đã được phát triển để giải quyết vấn đề phân tích hiệu suất và cho người dùng có cái nhìn trực quan về đặc điểm hiệu suất của hệ thống [1], [2], [3] Kỹ thuật trực quan hóa cho phân tích hiệu suất đã ra đời cùng với việc phân tích hiệu suất của hệ thống tính toán song song và phân tán Các kỹ thuật trực quan hóa [4], [5], [6] với các biểu đồ trực quan giúp ta dễ dàng quan sát và phát hiện các vấn đề về hiệu suất
Hiện nay, để giải quyết các yêu cầu đặt ra trong thực tế, các hệ thống máy tính được xây dựng có sức mạnh tính toán ngày càng lớn [7], [8] Vấn đề hiệu năng của các hệ thống máy tính lớn này đang được cộng đồng xem xét và cải tiến
Các công cụ đánh giá hiệu năng ngày càng được chuẩn hóa dựa trên những tiêu chí như: khả năng tính toán, khả năng truy xuất dữ liệu và khả năng giao tiếp Những công
cụ đánh giá hiệu năng hệ thống như High Performance Linpack (HPL) [9], [10],
Trang 16Graph500 [11], [12], [13] được xem là đại diện tiêu biểu cho việc đánh giá những tiêu chí này
Công nghệ ảo hóa [14] đang được sử dụng trong các hệ thống máy tính mạnh Công nghệ ảo hóa mang lại khả năng xây dựng các hệ thống tính toán theo yêu cầu người dùng và nhanh chóng khi triển khai Bên cạnh máy ảo, Docker [15] được xem là một nền tảng ảo hóa mới cho phép các nhà phát triển có thể triển khai, dịch chuyển hoặc thậm chí thực thi với những ứng dụng phân tán một cách hiệu quả
Vấn đề hiệu năng khi triển khai các hệ thống máy tính sử dụng công nghệ ảo hóa đang được xem xét [16], [17]
Hiện tại các công cụ đánh giá hiệu năng hệ thống như High Performance Linpack (HPL), Graph500 xuất kết quả ở dạng tập tin text, đòi hỏi người dùng có kiến thức về
nó mới có thể hiểu được
Một hướng giải quyết là xây dựng một công cụ trực quan hóa kết quả đo đạc hiệu năng
hệ thống để giúp người dùng hiểu về hiệu năng hệ thống dễ dàng
Với sự tăng lên về khả năng tính toán và kích thước của bài toán, dữ liệu đo đạc về hiệu năng của hệ thống cũng tăng lên về số chiều và độ phức tạp, đó là một vấn đề đặt
ra đối với công cụ phân tích hiệu suất Trực quan hóa hiệu suất có thể giúp chúng ta hiểu được đặc tính của hiệu suất và mối liên hệ giữa các đặc tính đó [6], [1] Tuy nhiên, một số công cụ đánh giá hiệu năng của hệ thống không hỗ trợ trực quan hóa kết quả đánh giá hiệu suất như HPL và Graph500, người dùng phải sử dụng các phương pháp phân tích và hiển thị dữ liệu từ kết quả đo đạc đã thực hiện
Trang 17Việc đo đạc và phân tích hiệu suất máy tính cụm đòi hỏi phải hiểu các đặc điểm của dữ liệu nhiều chiều về đánh giá hiệu suất hệ thống, mối liên hệ giữa dữ liệu đối với khả năng tính toán và hiệu suất của hệ thống Các công cụ phân tích hiệu năng của hệ thống hiện nay cần quan tâm đến việc trình bày kết quả cho người dùng dưới dạng trực quan Việc biểu diễn dữ liệu đánh giá hiệu suất hệ thống một cách trực quan là một giải pháp giúp giải quyết vấn đề này
Bởi vì thế, luận văn đề xuất giải pháp tạo một công cụ trực quan hóa dữ liệu từ kết quả
đo đạc bởi các công cụ đánh giá hiệu năng hiện có là HPL và Graph500 Cách tiếp cận trực quan hóa dữ liệu đo đạc hiệu suất dựa trên các kịch bản đo đạc có sử dụng ảo hóa
và phân tích ảnh hưởng của ảo hóa đến hiệu suất của hệ thống giúp người dùng có cách nhìn trực quan về hiệu suất hệ thống và phát hiện các bất thường trong hiệu suất hệ thống
Việc đo đạc đòi hỏi thao tác trực tiếp trên hệ thống thực, đôi khi cần phải cấu hình hệ thống cho phù hợp Việc tự động đánh giá hiệu năng hệ thống rất khó khăn Đề tài không hướng đến xây dựng công cụ đánh giá hiệu năng mà xây dựng công cụ trực quan hóa và phân tích kết quả đánh giá hiệu năng đã có
Số liệu đo đạc về hiệu năng xem như đã có Đề tài quan tâm đến số liệu đo đạc của các công cụ đánh giá hiệu năng phổ biến hiện nay như công cụ về khả năng tính toán (HPL), khả năng truy xuất dữ liệu (Graph500)
Việc trực quan hóa dữ liệu đo đạc cũng hướng tới sử dụng các công cụ và thư viện trực quan hóa dữ liệu trên môi trường WEB hiện có như D3 (Data-Driven Documents) [18], JIT [19], HighCharts [20], ELK [21] và nhiều công cụ và thư viện khác [22], [23]
Trang 18Đề tài tìm hiểu và áp dụng các công nghệ trực quan hóa dữ liệu để hiển thị kết quả đo đạc hiệu suất máy tính cụm sử dụng công cụ HPL và Graph500 Trực quan hóa dữ liệu
là hướng nghiên cứu mới và có nhiều ứng dụng trong thực tế
Đề tài xây dựng một công cụ để trực quan hóa kết quả đo đạc hiệu suất của máy tính cụm trên môi trường WEB, giúp phân tích và đánh giá hiệu suất của máy tính cụm dựa trên dữ liệu đo đạc hiệu suất máy tính cụm, giúp người dùng hiểu rõ hiệu suất máy tính cụm và ảnh hưởng của các công nghệ ảo hóa đến hiệu suất của hệ thống
Cấu trúc luận văn được tổ chức như sau:
Chương 1: Giới thiệu Giới thiệu vấn đề trực quan hóa dữ liệu trong đánh giá hiệu suất
hệ thống, lý do chọn đề tài, mục tiêu, giới hạn đề tài, phương pháp thực hiện và đóng góp của đề tài
Chương 2: Công cụ đánh giá hiệu suất và trực quan hóa dữ liệu Giới thiệu các công cụ
đo đạc hiệu năng máy tính cụm, các kĩ thuật trực quan hóa dữ liệu và trực quan hóa dữ liệu đánh giá hiệu suất Khảo sát các công cụ trực quan hóa hiệu suất máy tính cụm đã
Trang 19CHƯƠNG 2: CÔNG CỤ ĐÁNH GIÁ HIỆU SUẤT VÀ TRỰC QUAN HÓA DỮ LIỆU
Các công cụ đo đạc khác nhau được sử dụng vào các mục đích đánh giá hiệu suất hệ thống khác nhau Một số công cụ tập trung vào việc đánh giá hiệu suất của CPU Một
số công cụ khác tập trung vào đánh giá hiệu suất truy xuất file server Một số công cụ tập trung vào hiệu suất của các thiết bị nhập xuất (I/O) Một số công cụ tập trung đánh giá tốc độ của mạng Có một số danh sách dùng để xếp hạng của hiệu suất của các hệ thống máy tính Linpack TOP500 là danh sách xếp hạng các hệ thống máy tính quan tâm đến hiệu suất của CPU về thực hiện các phép tính động (floating point) Graph500
là danh sách xếp hạng của các hệ thống máy tính quan tâm đến khả năng xử lí dữ liệu
Vì thế việc đánh giá hiệu suất hệ thống máy tính cụm là việc rất phức tạp Trong đó danh sách xếp hạng TOP500 có ảnh hưởng nhất đến công nghiệp Danh sách TOP500 liên tục được cập nhập, là một gợi ý cho việc thiết kế hệ thống máy tính tính toán hiệu năng cao và cũng là một gợi ý cho yêu cầu của các ứng dụng tính toán hiệu năng cao [24]
Máy tính cụm gồm nhiều máy vật lý kết nối với nhau Trên cụm máy tính này ta triển khai các các công nghệ ảo hóa như máy ảo và Docker Các thực thể ảo hóa được triển khai trên máy vật lý với số lượng thực thể tăng dần Để đánh giá hiệu suất của cụm máy tính, các công cụ đo đạc hiệu năng HPL và Graph500 được sử dụng để đo đạc hiệu suất của cụm máy tính Các kịch bản dùng để đánh giá hiệu suất bao gồm khảo sát
sự thay đổi số lượng thực thể ảo hóa và kích thước bài toán ứng với mỗi công cụ
2.1.1 Công cụ đánh giá khả năng tính toán (HPL)
2.1.1.1 Mục đích của công cụ HPL
Trang 20Để chọn và mua một hệ thống tính toán hiệu năng cao (HPC) không dễ dàng như việc mua một chiếc máy tính cá nhân (PC) Bởi vì hệ thống HPC rất đắt, người dùng muốn đánh giá hệ thống một cách kĩ lưỡng trước khi quyết định mua hệ thống đắt tiền đó [24]
Với sự phát triển của kiến trúc máy tính, nó trở nên rất phức tạp khi so sánh hiệu suất của nhiều hệ thống máy tính khác nhau dựa trên thông số kỹ thuật của nhà sản xuất Vì thế ta cần có một công cụ đo đạc để so sánh hiệu năng tính toán của các hệ thống khác nhau, tìm ra điểm yếu của hệ thống và đánh giá các kịch bản sử dụng hệ thống với các kiểu cấu hình khác nhau Yêu cầu cơ bản của các công cụ đo đạc hiệu năng tính toán thông dụng là phải hỗ trợ việc đánh giá hiệu suất của hệ thống với nhiều kiểu tính toán, thuật toán tính toán khác nhau, hỗ trợ tập dữ liệu kiểm thử với nhiều tình huống đo đạc khác nhau [24]
Các công cụ đo đạc được sử dụng để mô phỏng khả năng hoạt động của cả hệ thống máy tính bao gồm từng thành phần của hệ thống và của cả hệ thống Việc đo đạc hiệu suất hệ thống thường không dễ dàng và liên quan đến nhiều lần đo đạc để đưa ra dự đoán và kết luận hữu ích cho hiệu suất hệ thống Việc xử lý dữ liệu đo đạc cũng rất phức tạp đòi hỏi việc hiểu các thông số đo đạc, thông số của hệ thống và các kịch bản
đo đạc khác nhau
Linpack [9] là công cụ phổ biến để đánh giá khả năng thực hiện phép tính động của hệ thống tính toán hiệu năng cao Linpack dùng để xếp hạng TOP500 các hệ thống siêu máy tính trên thế giới bằng cách đo khả năng thực hiện phép tính động bằng cách giải
hệ phương trình đại số tuyến tính sử dụng phương pháp khử Gauss HPL là một công
cụ phổ biến để đánh giá khả năng tính toán của hệ thống máy tính tính toán song song,
nó là một chuẩn để đánh giá khả năng thực hiện các phép tính động của CPU
Trang 212.1.1.2 Xác định các thông số quan tâm cho việc khảo sát hiệu suất máy tính
cụm
Các thông số cần quan tâm cho mỗi phép đo của HPL trên cụm máy tính mà ta cần quan tâm để khảo sát là:
- Lượng RAM sử dụng cho mỗi node tính toán (ram)
- Công nghệ ảo hóa (VM, Docker)
- Số lượng thực thể ảo hóa (instances/node)
- Hiệu suất tối đa trên lý thuyết (Ppeak)
2.1.2 Công cụ đánh giá khả năng truy xuất dữ liệu
2.1.2.1 Giới thiệu Graph 500 Benchmark 1(Graph500)
Hiệu năng tính toán của các hệ thống siêu máy tính không ngừng tăng lên Bởi vì tốc
độ tính toán của CPU tuân theo định luật Moore, và nhanh hơn so với tốc độ tăng của dung lượng bộ nhớ, đĩa cứng, tốc độ của mạng và thông lượng của các thiết bị nhập xuất, cho nên nó là thắt cổ chai cho hệ thống máy tính lớn Đó là lý do ra đời Graph500 Benchmark
Việc phân tích và tính toán trên đồ thị lớn trở thành chủ đề được quan tâm như phân tích mạng xã hội, nghiên cứu cấu trúc protein, và kết nối trên mạng WEB [11] Số lượng các đỉnh và cạnh trong đồ thị cần phân tích không ngừng tăng lên TOP500 [8] là một công cụ phổ biến để xếp hạng khả năng tính toán của máy tính cụm, dựa trên việc giải hệ phương trình đại số tuyến tính Graph500 là một công cụ đo đạc khác dùng để
đo đạc khả năng truy xuất dữ liệu của hệ thống máy tính cụm
Top500 là bảng xếp hạng các siêu máy tính dựa trên tiêu chí về khả năng tính toán, ngược lại Graph500 là bảng xếp hạng các siêu máy tính dựa trên khả năng truy xuất dữ
Trang 22liệu Graph500 Benchmark sử dụng thuật toán BFS (Breadth-First Search) để đo đạc khả năng truy xuất dữ liệu của hệ thống máy tính cụm [13]
Graph500 Benchmark cung cấp một chương trình kiểm tra và đo thời gian để xác định chính xác khả năng truy xuất dữ liệu của hệ thống
2.1.2.2 Xác định các thông số quan tâm cho việc khảo sát hiệu suất máy tính
cụm
Các thông số cần quan tâm cho mỗi phép đo của Graph500 Benchmark 1 trên cụm máy tính mà ta cần quan tâm để khảo sát là:
- Kích thước bài toán sử dụng cho mỗi phép đo
- Công nghệ ảo hóa (VM, Docker)
- Số lượng thực thể ảo hóa (instances/node)
- Hiệu suất tối đa trên thực tế đã đo đạc được
2.2.1 Khái niệm trực quan hóa
2.2.1.1 Mục đích trực quan hóa
Mục đích chính của trực quan hóa là thể hiện thông tin ẩn chứa bên trong dữ liệu dưới dạng trực quan cho người dùng Các kỹ thuật trực quan hóa dữ liệu khác nhau được sử dụng cho các tình huống trực quan hóa khác nhau để chuyển tải các mức hiểu biết khác nhau cho người dùng Nhiệm vụ của trực quan hóa dữ liệu là rút trích các thông tin hữu ích từ dữ liệu đã có hoặc đã được thu thập [25]
Trực quan hóa là một dạng biểu diễn trực quan cung cấp thông tin ẩn chứa bên trong cho người dùng Mục đích cơ bản của trực quan hóa là tạo dạng tương tác trực quan để biểu diễn thông tin tận dụng khả năng giải quyết vấn đề bằng tri giác và hiểu biết của
Trang 23con người Mục đích cuối cùng là người dùng có thể dễ dàng hiểu và làm sáng tỏ lượng lớn và phức tạp của thông tin
“Trực quan hóa là sử dụng sự hỗ trợ của máy tính, tương tác, biểu diễn trực quan của
dữ liệu để mở rộng nhận thức, trong đó nhận thức là khả năng thu nhận hay sử dụng tri thức Trực quan hóa là một biểu diễn dạng hình ảnh mà truyền đạt các ý tưởng phức tạp một cách chính xác, rõ ràng và hiệu quả” Hình ảnh miêu tả này phải dễ hiểu và giải thích hiệu quả Mục đích chính của trực quan hóa là tìm ra các thông tin ẩn chứa bên trong dữ liệu Mục đích của trực quan hóa là phân tích, thăm dò, khám phá, làm sáng tỏ
và truyền đạt thông tin dưới dạng có thể hiểu được Trực quan hóa được sử dụng để biểu diễn một lượng lớn thông tin một cách súc tích, chặc chẽ từ nhiều góc nhìn, và cung cấp chi tiết ở nhiều mức độ khác nhau
2.2.1.2 Quá trình trực quan hóa
Quá trình thiết kế trực quan hóa có thể được chia thành các bước như sau:
Hình 2.1: Các bước trực quan hóa
Ta có thể xem quá trình trực quan hóa là một hàm Vis ánh xạ giữa tập D I, là tập dữ liệu thô gồm nhiều kiểu dữ liệu khác nhau, vào tập I là tập các ảnh được tạo ra để hiển thị cho người dùng:
Vis: D I I (2.1)
Trang 24Quá trình tương tác (thay đổi hình ảnh) giúp người dùng nhận được thông tin nhiều hơn từ tập dữ liệu thô và trả lời các câu hỏi mà người dùng quan tâm từ hình ảnh nhận
được Ta có thể xem quá trình tương tác là một hàm Insight ánh xạ từ ảnh đầu ra vào tập dữ liệu thô ban đầu, là một hàm ngược của hàm Vis:
Bước 1: Nhập dữ liệu (Import Data): Là quá trình nhập dữ liệu đầu vào vào trong quá
trình trực quan hóa, có nghĩa là tìm một biểu diễn cho thông tin ban đầu mà ta muốn khảo sát dưới dạng một tập dữ liệu (dataset), có thể là tập dữ liệu liên tục hoặc rời rạc
Ta có thể xem việc nhập dữ liệu là quá trình ánh xạ từ thông tin thô ban đầu D I có sẵn trước quá trình trực quan hóa vào trong tập D, trong đó D biểu diễn tất cả các tập dữ liệu được hỗ trợ trong quá trình trực quan hóa, là tập dữ liệu có thể lưu trữ trong máy tính và xử lý Quá trình nhập dữ liệu có thể được biểu diễn bằng hàm:
Import: D I D (2.3)
Thực tế, quá trình nhập dữ liệu có nghĩa là chọn một tập dữ liệu cụ thể để hiện thực chuyển từ thông tin ban đầu D I sang một dạng biểu diễn được chọn từ tập D
Bước 2: Lựa chọn, làm giàu dữ liệu (Data Filtering and Enrichment): Sau khi dữ liệu
được nhập, chúng ta cần quyết định các đặc điểm, thuộc tính dữ liệu nào mà ta quan tâm Trong hầu hết các trường hợp, không phải tất cả các thuộc tính nhập đều được
Trang 25quan tâm xử lý Quá trình làm giàu dữ liệu nhằm chuyển tập dữ ban đầu sang dạng biểu diễn thích hợp hơn, có nghĩa là mã hóa các đặc điểm mà ta quan tâm sang một dạng thích hợp cho phân tích và xử lý Quá trình lựa chọn (Filtering) nhằm chọn các thông tin mà cần quan tâm Trong quá trình là giàu dữ liệu (Enrichment), dữ liệu được biến đổi dưới dạng thích hợp đễ hỗ trợ các công việc phân tích và hiển thị Hai quá trình này không thực hiện một cách riêng biệt mà thực hiện đồng thời, nên ta có thể xem hai quá trình lựa chọn và làm giàu là một Các phương pháp phân tích dữ liệu có thể được áp dụng sau khi lựa chọn và làm giàu dữ liệu Quá trình lựa chọn và làm giàu
dữ liệu có thể được xem như một hàm ánh xạ, thao tác trên dữ liệu:
Filter: DD (2.4)
Bước 3: Ánh xạ (Mapping Data): Sau khi lựa chọn các thuộc tính mà ta quan tâm, quá
trình ánh xạ nhằm ánh xạ các thuộc tính lựa chọn này vào miền trực quan Chúng ta thực hiện bằng cách ánh xạ các phần tử được lựa chọn vào tập trực quan hóa Quá trình này có thể mô hình hóa bởi hàm ánh xạ như sau:
Map: DD v (2.5)
Hàm này ánh xạ tập dữ liệu D vào tập trực quan (visual feature) D v Tập trực quan là một không gian nhiều chiều mà mỗi chiều là một thuộc tính dùng để biểu diễn trực quan đối tượng đó Các thuộc tính của một phần tử trong tập trực quan là hình dạng, vị trí, kích thước, màu sắc, chữ, hiệu ứng trên không gian 2D, 3D Nói một cách khác, tập trực quan (visual feature) D v là các dạng dữ liệu có thể biểu diễn được bằng hình ảnh 2D, 3D Ánh xạ giúp chuyển dữ liệu không thể trực quan hóa sang dạng có thể trực quan hóa
Bước 4: Biểu diễn (Rendering Data): Bước biểu diễn là bước cuối cùng trong quá trình
trực quan hóa Bước biểu diễn sử dụng các dạng biểu diễn hình ảnh 2D, 3D được tạo ra
Trang 26ở bước ánh xạ, cùng với các thông số hiển thị của người dùng như điểm quan sát, tham
số khảo sát và tạo ra hình ảnh mong muốn:
Render: D v I (2.6)
Như vậy, ta có thể mô tả quá trình trực quan hóa là một hàm hợp trên tập dữ liệu Nếu
ta kí hiệu D là không gian tất cả tập dữ liệu, khi đó:
Vis = F oF o oF1 2 n , trong đó F D i: D (2.7)
Theo lập trình hướng đối tượng, ta có thể hiện thực hàm F i như là một lớp (class) gồm
có 3 chức năng:
- Đọc một hay nhiều tập dữ liệu đầu vào (input)
- Ghi một hay nhiều tập dữ liệu đầu ra (output)
- Thao tác trên tập dữ liệu đầu vào (input) để tạo tập dữ liệu đầu ra (output)
Gọi Grid là lớp biểu diễn tập dữ liệu đầu vào (input) và tập dữ liệu đầu ra (output)
Ta có lớp F biểu diễn hàm F như sau:
Hình 2.2: Lớp biểu diễn hàm F như một lớp trong lập trình hướng đối tượng
Trang 27Bằng cách hiện thực theo cách này, quá trình trực quan hóa có thể được xem như một mạng kết nối của các hàm hay đối tượng F i được kết nối với nhau bằng cách sử dụng
chung dữ liệu nhập, xuất là các tập dữ liệu Grid
Trong hình dưới, khi ta nhập dữ liệu vào trong quá trình trực quan hóa, các hàm F1, F2
và F3, F4 sẽ thực hiện lần lượt Quá trình thực hiện này có thể được xem như là một dòng dữ liệu từ quá trình nhập dữ liệu đến quá trình biểu diễn dữ liệu
Hình 2.3: Quá trình trực quan hóa được xem như là một mạng của các đối tượng [53]
Trong hình trên, dataset là tập dữ liệu đầu vào và đầu ra qua các công đoạn, operation
là các thao tác trên các tập dữ liệu đầu vào và tạo ra tập dữ liệu đầu ra, reference là thao tác truy xuất tập dữ liệu và dataflow là dòng dữ liệu qua các giai đoạn xử lý
Như vậy, trực quan hóa dữ liệu là nghiên cứu cách biểu diễn dữ liệu dưới các dạng một cách hệ thống, bao gồm các thuộc tính của một đơn vị thông tin Các kĩ thuật trực quan hóa dữ liệu cần biểu diễn dữ liệu một cách rõ ràng, dễ hiểu để chuyển tải các thông điệp tới người đọc một cách hiệu quả Trực quan hóa dữ liệu biểu diễn dữ liệu bằng cách đơn giản hóa sự thể hiện của dữ liệu và mối liên hệ của chúng
Sau khi tạo giao diện trực quan, bước cuối cùng là đánh giá dạng trực quan đã tạo ra Đánh giá là việc quan trọng, để kiểm tra phương pháp trực quan hóa có hiệu quả hay không, mục đích trực quan hóa có đạt được hay không
Trang 282.2.2 Các biểu đồ trực quan hóa dữ liệu
Các biểu đồ trực quan hóa thường được dùng để trực quan hóa dữ liệu bao gồm pie chart, bar chart, line chart, parallel coordinate chart… Việc sử dụng các biểu đồ cho việc trực quan hóa phụ thuộc vào mục đích trực quan, kiểu dữ liệu, và quá trình thử nghiệm với các biểu đồ khác nhau [52]
2.2.3 Tương tác trong trực quan hóa
Vấn đề của trực quan hóa là cung cấp dữ liệu dưới dạng trực quan để người dùng có thể hiểu và nhận được thông tin mà người dùng đang tìm kiếm, vì thế cung cấp khả năng tương tác trong trực quan hóa sẽ cung cấp cho người dùng khả năng thao tác với công cụ trực quan hóa hiệu quả và dễ dàng Người dùng có thể tương tác với giao diện trực quan bằng nhiều cách như di chuyển chuột, single click, double click, thêm các lựa chọn bằng cách nhấp phải chuột, nhấp vào button chức năng của công cụ Có rất nhiều
kỹ thuật cho phép tương tác với biểu đồ hay hình ảnh trực quan hóa, cho phép người dùng hiểu chi tiết thông tin bên trong biểu đồ hay hình biểu diễn Phương pháp tương tác trong trực quan hóa có thể tóm lượt gồm các phương pháp sau:
Zooming (Zoom in, Zoom out):
Khi người dùng muốn xem chi tiết nội dung rõ hơn và chi tiết hơn, người dùng cần phải tới gần hơn đối tượng cần quan sát Phương pháp Zoom cho phép người dùng thay đổi tỉ lệ của vùng quan sát để quan sát với mức độ chi tiết khác nhau
Overview + Detail:
Kĩ thuật này sử dụng nhiều khung nhìn khác nhau ở cùng một thời điểm, ví dụ một khung nhìn biểu diễn tổng quan đối tượng và một khung nhìn biểu diễn chi tiết đối tượng được chọn
Trang 29Focus + Context or Fish Eye:
Kỹ thuật tương tác này cho phép làm cho vùng quan sát lớn hơn hay rộng hơn trong một ngữ cảnh nhất định Vùng được chú ý sẽ cung cấp thông tin chi tiết của đối tượng trên không gian được chọn Lợi ích của phương pháp này là giữ được ngữ cảnh xung quanh khi focus vào một vùng nào đó, tuy nhiên nhược điểm là vùng focus sẽ bị bóp méo hoặc không ổn định
Hình 2.4: Kỹ thuật trực quan hóa Focus + Context
2.3.1 Khái niệm trực quan hóa hiệu suất
Trực quan hóa hiệu suất là quá trình phân tích và hiển thị dữ liệu đánh giá hiệu suất dưới dạng trực quan Quá trình này có thể xem như việc ánh xạ các thuộc tính, tính chất của hệ thống dưới dạng trực quan hóa [2]
Trang 30Quá trình trực quan hóa dữ liệu đánh giá hiệu suất có thể chia thành 4 bước cơ bản như
sau [2]: instrumentation (xác định và tìm cách ghi nhận các thông tin về hiệu suất của
hệ thống cần quan tâm), measurement (lưu trữ các thông tin về dữ liệu hiệu suất của hệ thống sau khi đo đạc), data analysis (phân tích dữ liệu hiệu suất của hệ thống để trực quan hóa), visualization (ánh xạ các đặc tính hiệu suất của hệ thống vào một dạng trực
quan hóa và cho phép tương tác với người dùng)
Dữ liệu đánh giá hiệu suất có thể lưu trữ bằng phương pháp tracing (lưu trữ dữ liệu
tương ứng với mỗi sự kiện xảy ra trong lúc chạy chương trình) hoặc phương pháp
profiling (lưu thông tin tổng kết về xu hướng và thống kê cho quá trình đánh giá hiệu
suất) Dữ liệu quan tâm trong luận văn là dữ liệu đánh giá hiệu suất máy tính cụm đã được thu thập bởi hai công cụ đo đạc hiệu suất máy tính cụm là HPL và Graph500
Sau khi dữ liệu đánh giá hiệu suất đã được thu thập, bước tiếp theo là quá trình phân tích dữ liệu để tính các giá trị cần thiết cho việc đánh giá hiệu suất và trực quan hóa
Để rút trích các thông tin hữu ích từ dữ liệu đánh giá hiệu suất, các phương pháp thu giảm dữ liệu thường được sử dụng (tổng kết, tính giá trị trung bình, tính giá trị cực đại…) Một số hệ thống sử dụng các phương pháp phân tích dữ liệu nhiều chiều bằng cách tìm mối tương quan, thu giảm số chiều, gom cụm [41]… để tìm ra mối liên hệ giữa các thuộc tính trong dữ liệu
Trong bước trực quan hóa dữ liệu, các thông tin được rút trích và mối liên hệ giữa các thuộc tính của dữ liệu từ bước phân tích sẽ được ánh xạ vào một cấu trúc trực quan, sau
đó sẽ được chuyển thành các hình ảnh trực quan cho người dùng
2.3.2 Các dạng trực quan hóa
o Biểu đồ thống kê với một hay hai biến: Đây là dạng đơn giản nhất để trực quan hóa hiệu suất sử dụng các biểu đồ thống kê như biểu đồ phần trăm
Trang 31(pie chart), biểu đồ cột (bar chart), biểu đồ kiviat, các biểu đồ dạng thống
kê, biểu đồ dạng ma trận để biểu diễn thống kê các đại lượng thể hiện hiệu suất về tính toán, thông lượng hoặc mức độ sử dụng tài nguyên của
hệ thống Các biểu đồ đơn giản này rất hữu ích, bởi vì nó cung cấp một cái nhìn tổng quát về các thông số quan trọng của hiệu suất, giúp người dùng có thể nhanh chóng xác định các vấn đề về hiệu suất hệ thống như việc quá tải, tình hình sử dụng tài nguyên cũng như hiệu suất thực tế so với hiệu suất lý thuyết mong muốn Các biểu đồ này được sử dụng rộng rãi trong các hệ thống trực quan hóa hiệu suất, như ParaProf [4], Perfexplorer [41], Vampir [32] Ngoài ra biểu đồ 3D cũng được sử dụng trong dạng này
o Timeline views: Sử dụng trục thời gian trong việc trực quan hóa hiệu suất của hệ thống Biểu đồ theo thời gian được dùng để thể hiện thuộc tính của hệ thống tại thời điểm chạy và quá trình giao tiếp của các thành phần trong hệ thống Biểu đồ theo thời gian cũng được dùng để biểu diễn sự thay đổi hiệu suất của hệ thống theo thời gian Nó thường được dùng để biểu diễn nhiều thông số khác nhau của hệ thống theo thời gian, giúp người dùng có thể so sánh hiệu suất của hệ thống trong quá trình hoạt động Một số công cụ có sử dụng timeline view là Vampir [32], Paje [33] Ưu điểm của timeline view là tập trung vào thời gian và các sự kiện xảy ra trên trục thời gian, giúp phân tích hiệu suất Tuy nhiên, timeline view bị giới hạn bởi kích thước màn hình Chỉ một số phần tử được quan sát tại một thời điểm Một số công cụ như Vampir sử dụng thuật toán gom cụm để giảm số phần tử cần biểu diễn trên trục hoành
o Information typography: là dạng biểu diễn 2D với không gian 2 chiều biểu diễn cấu trúc bên ngoài và các biến liên tục (màu sắc, hình dạng ), được sử dụng để biểu diễn thêm thông tin Đồ thị dạng này có thể kết hợp
dữ liệu đánh giá hiệu suất với cấu trúc vật lý của hệ thống Ví dụ hình
Trang 32bên biểu diễn cấu trúc của các switch được kết nối với nhau trong hệ thống và màu các kết nối biểu diễn [34] dữ liệu đánh giá hiệu suất
Hình 2.5: Một dạng biểu diễn của Information typography biểu diễn hiệu suất gắn với
Trang 332.3.3 Tương tác trong trực quan hóa hiệu suất
Hệ thống trực quan hóa hiệu suất cung cấp nhiều cách để người dùng có thể tương tác
để lựa chọn một phần thông tin cần tìm hiểu, hiệu chỉnh thông tin biểu diễn bằng cách lựa chọn các khung nhìn, thay đổi các cách tiếp cận dữ liệu, phóng to hoặc thu nhỏ cách biểu diễn thông tin Việc tương tác hiển thị dữ liệu có thể được chia thành:
o Tương tác trực tiếp thông qua trực quan hóa: người dùng tương tác trực tiếp với hình ảnh để thay đổi các khung nhìn khác nhau Dạng đơn giản nhất là người dùng có thể chọn để xem thông tin cụ thể của đối tượng, phóng to hoặc thu nhỏ khung nhìn
o Tương tác gián tiếp thông qua các nút điều khiển: Người dùng thay đổi cách hiển thị gián tiếp thông qua các nút điều khiển như các button, data input, scroll-bars, zoom in/out buttons, sliders, radio buttons
Việc xây dựng công cụ trên môi trường WEB có nhiều điểm lợi là tính tiện dụng và dễ dùng Người dùng có thể sử dụng từ nhiều môi trường khác nhau bằng việc sử dụng trình duyệt WEB có sẵn Ta tiến hành khảo sát các thư viện Javacsript hỗ trợ trực quan hóa hiện có [22]
Framework
Name
Map
Parallel Coordinates
Bubble
link or commercial
Trang 34Dygraphs Yes No Yes No No No No MIT
License and MIT
Bảng 2.1: Khảo sát các thư viện Javascript hỗ trợ trực quan hóa
ELK cho phép ta nhanh chóng tìm kiếm và tạo các biểu đồ cơ bản dựa trên dữ liệu định sẵn, người dùng không cần có kiến thức lập trình phức tạp Điểm yếu của công cụ này
là chỉ hỗ trợ các biểu đồ đơn giản và nhiều lúc không thể thực hiện các trực quan phức tạp dựa trên yêu cầu của người dùng Các biểu đồ mà Kibana hỗ trợ bao gồm: Line Charts, Area Charts, Pie Charts, Tile Maps, Bar Charts
Trang 35ELK được sử dụng trong trực quan hóa ở nhiều ứng dụng [21], [35], [36]
2.6.2 Vampir
Vampir [32], [38] là một công cụ hỗ trợ trực quan hóa kết quả đánh giá hiệu suất của
hệ thống Việc trực quan kết quả đo đạc được thực hiện theo mô hình client-server Server thu thập và xử lý các yêu cầu về xử lý dữ liệu và cung cấp thông tin để hiển thị
dữ liệu Client được cài trên máy desktop để trực quan hóa kết quả từ server Dữ liệu đầu vào của Vampir là các trace file có format sẵn Cấu trúc mẫu của trace file là Open Trace Format (OTF) [39] Biểu đồ nổi bật trong công cụ hiểu thị kết quả của Vampir là biểu đồ timeline Ngoài ra công cụ còn cung cấp các biểu đồ khác như biểu đồ thống kê dạng cột, biểu đồ scatter-plot, biểu đồ hình quạt
Trang 362.6.3 PerfExplorer
PerfExplorer [41] là công cụ phân tích và trực quan hóa dữ liệu đánh giá hiệu suất sử dụng mô hình client-server PerfExplorer được thực thi trên nền của PerfDMF [41] là một cơ sở dữ liệu quản lý dữ liệu đánh giá hiệu suất của hệ thống tính toán song song PerfDMF là một module của hệ thống TAU [5] cung cấp khả năng truy xuất, lưu trữ dữ
liệu đánh giá hiệu suất PerfExplorer cung cấp khả năng khai phá dữ liệu đánh giá hiệu
suất sử dụng các thuật toán như gom cụm (k-Means, phân cấp), thu giảm số chiều dữ liệu, tìm mối tương quan của các biến dữ liệu, so sánh các đại lượng đánh giá hiệu suất Sau khi người dùng phân tích hiệu suất, các biểu đồ trực quan hóa sẽ được trình bày cho người dùng kết quả phân tích Các biểu đồ được sử dụng trong PerfExplorer là các biểu đồ cột, biểu đồ dạng cây, biểu đồ 3D, biểu đồ đường biểu diễn sự tương quan các đại lượng khảo sát
2.6.4 Các công cụ trực quan hóa hiệu suất khác
Ngoài ra còn có một số công cụ được xây dựng để trực quan hóa dữ liệu khác Haynes
và các cộng sự [34] thiết kết công cụ để trực quan hóa dữ liệu hiệu suất của cụm máy tính Công cụ đã định nghĩa cấu trúc dữ liệu nhập và hiển thị dữ liệu dựa trên input file
đã định nghĩa từ trước dưới dạng 3D biểu diễn hiệu suất ứng với cấu trúc mạng của cụm máy tính
Trang 37Hình 2.6: Cấu trúc của file đầu vào và kết quả hiển thị tương ứng [34]
Zhang và các cộng sự [3] đề xuất cách hiện thực cho việc trực quan hóa dữ liệu và phân tích speedup và hiệu quả của hệ thống tính toán song song Công cụ thực hiện thu thập dữ liệu về thời gian thực thi, thời gian giao tiếp của chương trình sau đó trực quan hóa, phân tích speedup và hiệu quả thực thi của chương trình Công cụ có sử dụng biểu
đồ đường và biểu đồ hình cột để trực quan kết quả speedup và hiệu quả tính toán song song của hệ thống Mô hình tổng quát cho quá trình trực quan hóa được biểu diễn như hình dưới
Trang 38Hình 2.7: Kết quả biểu diễn Speedup của hệ thống
Hình 2.8: Kết quả biểu diễn Efficiency của hệ thống
Trang 39Schnorr và các cộng sự [1] thiết kế và hiện thực công cụ trực quan hóa hiệu suất hệ thống sử dụng dữ liệu đo đạc từ SMPI và SimGrid Simulation Toolkit [1] Công cụ biểu diễn hiệu suất của hệ thống bằng cách thể hiện mối liên hệ giữa hiệu suất và cấu trúc vật lý của mạng Các node mạng và các kết nối vật lý được ánh xạ bởi các hình vuông Kích thước của hình vuông thể hiện khả năng tính toán hoặc băng thông của các node và kết nối giữa các node Phần màu đen thể hiện lượng tài nguyên của hệ thống đang được sử dụng tại thời điểm khảo sát
Hình 2.9: Hiệu suất hệ thống và cấu trúc mạng [1]
2.6.5 Nhận xét chung từ các công cụ đã khảo sát
Từ việc khảo sát các công cụ trực quan hiệu suất và các bài báo về trực quan hóa hiệu suất ta rút ra các kết luận như sau:
Các công cụ trực quan hóa đọc dữ liệu từ file text hoặc dữ liệu từ một công cụ đo đạc khác, dữ liệu dùng để hiển thị trong các công cụ trực quan hóa thường có cấu trúc quy định sẵn Các công cụ không thể trực quan từ dữ liệu mà người dùng quy định hoặc dữ liệu từ các công cụ đánh giá hiệu năng khác mà công cụ không hỗ trợ
Dữ liệu đánh giá hiệu năng thường lớn, đòi hỏi khả năng xử lý khối lượng lớn dữ liệu Các phương pháp phân tích dữ liệu rất đa dạng như đi từ tổng quát đến chi tiết, so sánh,
Trang 40thống kê, tìm giá trị lớn nhất Ngoài ra các phương pháp khai phá dữ liệu cũng được áp dụng trong phân tích dữ liệu như gom cụm, thu giảm số chiều, tìm sự tương quan của các biến dữ liệu…
Các biểu đồ dùng để trực quan hóa rất đa dạng gồm biểu đồ đường, cột, biểu đồ 3D, và các dạng đặc biệt khác Trực quan hóa nhằm ánh xạ dữ liệu thành dạng trực quan và phụ thuộc vào từng yêu cầu cụ thể của người dùng
Các công cụ thường được hiện thực trên desktop với sự trợ giúp của các thư viện lập trình trực quan hóa đã có sẵn
Cách trực quan hóa thường đi từ tổng quát đến chi tiết, đôi khi có kết hợp trực quan hóa thông số vật lý kết hợp với hiệu suất
Theo khảo sát, vẫn chưa có công cụ thực hiện trực quan hóa hiệu suất máy tính cụm dựa trên kết quả đo đạc của HPL và Graph500 Công cụ HPL và Graph500 không cung cấp công cụ trực quan hóa kết quả đo đạc