Để kiểm định độ chính xác của chƣơng trình với chƣơng trình Clustal, phần mềm BAliBASE version 2.0 đƣợc sử dụng. Dữ liệu thử nghiệm đƣợc tách làm 2 nhóm: nhóm chạy trên môi trƣờng CUDA và nhóm chạy trên Clustal.
Kết quả chạy chƣơng trình BAliBASE với 2 nhóm dữ liệu nhƣ sau:
CLUSTAL CUDA Nhóm 1A 1 1 Nhóm 1B 0.999 0.998 Nhóm 1C 1 1 Nhóm 2A 1 1 Nhóm 2B 0.995 0.979 Nhóm 2C 1 1 Nhóm 3A 1 1 Nhóm 3B 0.997 0.984 Nhóm 3C 1 1
Biểu đồ tƣơng quan về độ chính xác của 2 chƣơng trình với 2 nhóm dữ liệu.
Biểu đồ 5.3. Biểu đồ t ơng qu n về độ chính xác củ 2 ch ơng trình với 2 nhóm dữ liệu.
Thông qua kết quả chạy thực nghiệm, có thể thấy chƣơng trình CUDA vƣợt trội hơn chƣơng trình CPU ở những trƣờng hợp các trình tự có độ dài chuỗi lớn và số trình tự nhiều. Chƣơng trình CPU chạy nhanh hơn trong các trƣờng hợp chuỗi ngắn và ít trình tự cần so sánh. Về độ chính xác, 2 chƣơng trình tƣơng đƣơng nhau ở nhóm các trình tự có độ dài đồng đều và có chút khác biệt ở nhóm các trình tự có độ dài không giống nhau và cách biệt lớn.
Kết luận: trong chƣơng này, kết quả thực nghiệm của luận văn đƣợc thực hiện hai công đoạn xử lý trên hai chƣơng trình trình khác nhau và độc lập nhau. Chƣơng trình thứ nhất có chứa công đoạn xử lý trên MPI nhằm phân chia dữ liệu song song cho các máy client Mỗi tiến trình xử lý trên một nhóm các trình tự đƣợc phân đoạn một cách đồng thời. chƣơng trình thứ hai chứa công đoạn xử lý trên CUDA thực hiện song song hóa thuật toán bắt cặp trình tự.
0.965 0.97 0.975 0.98 0.985 0.99 0.995 1 1.005 Nhóm 1A Nhóm 1B Nhóm 1C Nhóm 2A Nhóm 2B Nhóm 2C Nhóm 3A Nhóm 3B Nhóm 3C
Biểu đồ tương quan về độ chính xác giữa CUDA và Clustal
KẾT LUẬN
Mục tiêu: Sinh tin học đang có những bƣớc phát triển đột phá và từng bƣớc trở thành một ngành khoa học có vai trò vô cùng quan trọng trong sự phát triển của nhân loại. Đƣợc đánh giá là một trong 10 bài toán lớn của sinh tin học, từ khi đƣợc đặt ra cho đến nay, bài toán sắp hàng đa trình tự vẫn đang đƣợc nghiên cứu. Nhiều giải pháp đƣợc đƣa ra để giái quyết bài toán này, tuy nhiên cho đến hiện nay, bắt cặp trình tự vẫn là một thách thức, đặc biệt là khi phải xử lý tính toán với khối lƣợng dữ liệu lớn. Đề tài này đƣa ra giải pháp song song hoá giải thuật Clustal phổ biến nhằm nâng cao hiệu năng tính toán cho bài toán bắt cặp trình tự, dựa vào việc tính toán dữ liệu trên môi trƣờng lập trình CUDA của hãng nVidia.
Đóng góp của luận văn: Do chỉ tiếp cận theo hƣớng nâng cao năng lực xử lý của giải thuật Clustal, độ chính xác chỉ tƣơng đƣơng với giải thuật ban đầu. So sánh kết quả sắp hàng của đề tài với giải thuật Clustal có thể chứng minh điều này. Để cải tiến về tốc độ thực thi, đề tài thực hiện song song hoá tại bƣớc thứ nhất của giải thuật Clustal, tính toán đồng thời các phần tử nằm trên đƣờng chéo phụ của ma trận đánh giá. Dữ liệu đầu vào đƣợc chia làm nhiều tập khác nhau nhƣ đã đề cập trong chƣơng thứ 5. Kết quả thực hiện chƣơng trình phản ánh tính đa dạng của tập dữ liệu thực nghiệm. Có trƣờng hợp chƣơng trình CUDA chạy nhanh hơn giải thuật trên CPU, và có trƣờng hợp chƣơng trình trên CPU chạy nhanh hơn. Nhƣ vậy qua kết quả thực nghiệm, nếu tập dữ liệu càng lớn thì chƣơng trình CUDA càng phát huy đƣợc ƣu thế về tính toán của mình.
Hƣớng phát triển của luận văn: Chƣơng trình CUDA của luận văn này vẫn còn có thể phát triển thêm để chạy nhanh hơn và đáp ứng đƣợc yêu cầu của các nhà sinh học. Một số hƣớng phát triển tiếp theo:
- Phát triển giao diện ngƣời dùng thay cho giao diện dòng lệnh
- Song song hoá toàn bộ các bƣớc của thuật toán Clustal. Tinh chỉnh hiệu quả hơn hàm thực thi trong CUDA.
Với những sự mở rộng này có thể xây dựng một hệ thống tính toán để giải quyết bài toán bắt cặp trình tự một cách hữu hiệu. Đây chính là hƣớng phát triển của luận văn.