Giải pháp tăng tốc độ xử lý thuật toán SmithWaterman (tt)

39 833 0
Giải pháp tăng tốc độ xử lý thuật toán SmithWaterman (tt)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giải pháp tăng tốc độ xử lý thuật toán SmithWatermanGiải pháp tăng tốc độ xử lý thuật toán SmithWatermanGiải pháp tăng tốc độ xử lý thuật toán SmithWatermanGiải pháp tăng tốc độ xử lý thuật toán SmithWatermanGiải pháp tăng tốc độ xử lý thuật toán SmithWatermanGiải pháp tăng tốc độ xử lý thuật toán SmithWatermanGiải pháp tăng tốc độ xử lý thuật toán SmithWatermanGiải pháp tăng tốc độ xử lý thuật toán SmithWatermanGiải pháp tăng tốc độ xử lý thuật toán SmithWatermanGiải pháp tăng tốc độ xử lý thuật toán SmithWatermanGiải pháp tăng tốc độ xử lý thuật toán SmithWatermanGiải pháp tăng tốc độ xử lý thuật toán SmithWatermanGiải pháp tăng tốc độ xử lý thuật toán SmithWatermanGiải pháp tăng tốc độ xử lý thuật toán SmithWatermanGiải pháp tăng tốc độ xử lý thuật toán SmithWaterman

1 MỞ ĐẦU Công nghệ thông tin ngành khoa học kỹ thuật có tính phổ dụng rộng rãi, áp dụng nhiều lĩnh vực khác Trong đó, không kể đến việc ứng dụng công nghệ thông tin công nghệ sinh học Và hội tụ hai khoa học lớn hình thành ngành khoa học phát triển mạnh mẽ ngành Tin sinh học (Bioinformatics) Từ Tin sinh học đời, trở thành công cụ hỗ trợ đắc lực việc nghiên cứu ứng dụng sáng chế, phát minh ngành công nghệ sinh học vào thực tiễn Trong năm gần đây, nhà khoa học lĩnh vực sinh học phát cấu trúc sinh học phân tử xây dựng thành hệ thống sở liệu sinh học phân tử lớn tập trung thành ngân hàng liệu (GenBank, EMBL, DDBJ) Tháng 08 năm 2015, GenBank công bố có 199.823.644.287 bases, từ 187.066.846 sequences hệ thống ngân hàng liệu đơn vị Tuy nhiên, Với liệu lớn việc tìm kiếm liệu tìm kiếm tương đồng database tốn nhiều chi phí mặt thời gian, đặc biệt toán bắt cặp trình tự sinh học Có nhiều thuật toán xây dựng để giải toán bắt cặp trình tự sinh học, thuật toán lại có tính ưu việt khác mặt thời gian hiệu thực Thuật toán Smith-Waterman thường áp dụng để giải toán bắt cặp trình tự sinh học thuật toán cho kết có độ xác cao, nhiên giải thuật lại nhiều thời gian thực Để nâng cao tính hiệu giải thuật Smith-Waterman góp phần cải thiện thời gian thực thuật toán này, luận văn tập trung vào việc đẩy mạnh thời gian thực giải thuật dựa tảng GPU Luận văn đề xuất với tên sau: “Giải pháp tăng tốc độ xử thuật toán Smith-Waterman” CHƯƠNG 1- CƠ SỞ THUYẾT 1.1 Tổng quan GPU: Trong kiến trúc máy tính, vi xử trung tâm (CPU) phận quan trọng để vận hành máy tính, khối điều khiển, xử chương trình kiện Tuy nhiên ứng dụng đòi hỏi tốc độ xử cao CPU đáp ứng, đặc biệt lĩnh vực đồ họa, game 3D Vì vậy, để tăng tốc độ xử thực thi chương trình, người ta bổ sung GPU vào hệ thống máy tính, GPU phương thức tăng tốc độ xử hệ thống máy tính nào, điều trình bày cụ thể 1.1.1 GPU gì: GPU (Graphics Processing Unit) vi xử chuyên dụng có nhiệm vụ tăng tốc, xử đồ họa cho vi xử trung tâm CPU nhằm tăng tốc ứng dụng đồ họa, ứng dụng khoa học, kỹ thuật phân tích liệu lớn GPU đẩy nhanh tốc độ xử nhiều môi trường khác nhau: máy tính (máy tính cá nhân, máy trạm, máy chơi game chuyên dụng), điện thoại di động, máy tính bảng, robot, … 1.1.2 Lịch sử phát triển GPU: Và khoảng 17 năm gần đây, GPU phát triển mạnh mẽ với nhiều cải tiến, bổ sung, đặc biệt linh kiện phần cứng nhằm tăng tốc độ xử trình điều khiển VGA (Video Graphic Array) Khi GPU xuất chưa có khả lập trình mở rộng, sau thời gian phát triển cải tiến việc lập trình mở rộng trở nên dễ dàng 1.1.3 Cấu trúc GPU chế song song ứng dụng: 1.2 Tổng quan OPENCL 1.2.1 Giới thiệu OPENCL: OpenCL (Open Computing Language) chuẩn lập trình mã nguồn mở miễn phí sử dụng ngôn ngữ OPENCL-C dựa tiêu chuẩn C99 IEEE-754 (chuẩn dấu chấm động cho số học), đó, cấu trúc lệnh OPENCL hoàn toàn giống với ngôn ngữ lập trình C 1.2.2 Cấu trúc OPENCL: Sự vận hành OpenCL mô tả cụm model có mối liên hệ với nhau, bao gồm Platform Model (mô hình tảng), Execution Model (mô hình thực thi), Memory Model (mô hình nhớ), Programming Model (mô hình lập trình) a) Platform Model: b) Execution Model: c) Memory Model: d) Programming Model: 1.2.3 Quy trình phát triển chương trình OPENCL: 1.3 Bài toán bắt cặp trình tự: Bắt cặp trình tự hay so sánh trình tự nhằm tìm đến tương đồng trình tự cách đo lường giống chuỗi trình tự Các chuỗi trình tự chuỗi trình tự ADN, RNA trình tự amino acid (protein) Và việc bắt cặp trình tự thực cách thêm “gap” vào vị trí cho cột tương đồng Ví dụ: cho trình tự a: AGTGACT, trình tự b: ATGCT, kết trình bắt cặp trình tự là: AGTGACT | || || A– TG– CT Để đánh giá mức độ tương đồng trình tự, áp dụng công thức sau: 𝒏𝒂 𝒙 𝒎𝒂𝒕𝒄𝒉 + 𝒏𝒊 𝒙 𝒎𝒊𝒔𝒎𝒂𝒕𝒄𝒉 + 𝒏𝒈 𝒙 𝒈𝒂𝒑 (1.1) Trong đó: na, ni, ng số phần tử giống nhau, không giống số gap thêm vào; match, mismatch gap số tính toán để tìm mức độ tương đồng (match >0) 1.4 Các thuật toán giải toán bắt cặp trình tự sinh học: Có nhiều thuật toán xây dựng đẻ giải toán bắt cặp trình tự: thuật toán Needleman-Wunsch, Smith-Waterman, Blast, … Thuật toán Needleman-Wunsch Smith-Waterman dựa chế quy hoạch động, nhiên giải thuật lại có phương pháp xử tìm kiếm khác CHƯƠNG - NGUYÊN ĐẨY NHANH THUẬT TOÁN SMITH-WATERMAN TRONG MÔI TRƯỜNG CPU-GPU 2.1 Thuật toán Smith-waterman nguyên thủy: 2.1.1 Giới thiệu: Thuật toán Smith-Waterman giải thuật giải toán bắt cặp trình tự cục bộ, nhằm tìm đoạn có điểm tương đồng cấu trúc chức trình tự sinh học, nucleotide chuỗi protein Thuật toán F Smith Michael S Waterman đề xuất vào năm 1981 dựa thuật toán trước xây dựng Needleman Wunsch, biết đến với tên gọi: thuật toán Needleman-Wunsch 2.1.2 Nguyên hoạt động: Thuật toán Smith-Waterman thuật toán sử dụng phương pháp quy hoạch động để định lượng điểm số cho trình bắt cặp trình tự Do áp dụng phương pháp quy hoạch động nên trình tính toán, giải thuật sử dụng ma trận để ghi nhận điểm số áp dụng công thức sau: Hi0=0 với ∀𝑖 = 0, 𝑛, H0j=0 với ∀𝑗 = 0, 𝑚 (2.1) Hij=max(0, 𝐻𝑖−1,𝑗−1 + 𝜎𝑖𝑗 , 𝐻𝑖−1,𝑗 + 𝑑, 𝐻𝑖,𝑗−1 + 𝑑) , ∀𝑖 = 0, 𝑛, ∀𝑗 = 0, 𝑚 (2.2) 𝑚𝑎𝑡𝑐ℎ d=gap 𝑚𝑖𝑠𝑚𝑎𝑡𝑐ℎ 𝜎𝑖𝑗 = { Trong đó: - n độ dài trình tự Sa, - m độ dài trình tự Sb, - Hij ma trận điểm số - d giá trị gap - match mismatch điểm số trùng khớp không trùng khớp Sai Sbj, giả sử điểm số match dương (match ≥ 0) Để giải toán bắt cặp trình tự cục bộ, giải thuật trãi qua bước sau: Bước 1: Khởi tạo ma trận, áp dụng công thức (2.1) Bước 2: Tính toán điểm số điền ma trận, áp dụng công thức (2.2) Bước 3: Tìm điểm số max ma trận Hi,j Bước 4: Tìm dấu vết dựa ma trận vừa tính Bước 5: Kết bắt cặp trình tự Để minh họa cho bước giải thuật, tìm hiểu ví dụ sau (ví dụ 1): cho trình tự A: CGTGAATTCAT, trình tự B: GACTTAC, cho giá trị match = 2, mismatch=-1, gap = -1; n, m: độ dài chuỗi trình tự A, B 2.1.3 Thuật toán Đánh giá: Thuật toán Smith-Waterman thực theo trình tự bước: Bước 1: Khởi tạo ma trận: H[i][0]=0, 0= m – j) kiểm tra Hi-1,j-1; Hi-1,j; Hi,j-1 có phải tế bào kích hoạt hay không, tế bào kích hoạt bỏ qua tính toán giá trị Hij ngược lại: if ((ii >= (n / 2)) ||( ii >= m - jj)) { if(H[(j-1)*(i-1)*dim]==-1 && H[j+(i-1)*dim]==-1 && H[(j-1)+i*dim]==-1) { H[index]=-1; T[index]=-1; } else { if(s1[ii]==s2[jj]) tam = H[(j-1)+(i-1)*dim] + match; else tam = H[(j-1)+(i-1)*dim] + mismatch; tam1 = H[j+(i-1)*dim] + gap; tam2 = H[(j-1)+i*dim] + gap; H[index] = max(max(max(0, tam), tam1),tam2); if ((H[index] + match*max(n - ii, m - jj)) < bound) { H[index] = -1; T[index] = 0; 26 } else { if (H[index] == tam) //dialog T[index] = 1; if (H[index] == tam1) // up T[index] = 2; if (H[index] == tam2) // left T[index] = 3; if (H[index] == 0) // end of path T[index] = 0; } } - Nếu i không thỏa mãn điều kiện (i >= n / 2) (i >= m – j) tính toán giá trị Hij: if(s1[ii]==s2[jj]) tam = H[(j-1)+(i-1)*dim] + match; else tam = H[(j-1)+(i-1)*dim] + mismatch; tam1 = H[j+(i-1)*dim] + gap; tam2 = H[(j-1)+i*dim] + gap; H[index] = max(max(max(0, tam), tam1),tam2); if (H[index] == tam) //dialog T[index] = 1; if (H[index] == tam1) // up T[index] = 2; if (H[index] == tam2) // left T[index] = 3; if (H[index] == 0) // end of path T[index] = 0; 27 3.1.1.5 Thực thi kernel: Để kernel thực thi môi trường GPU, CPU, …, cần phải xây dựng số hàm bổ trợ nhằm thiết lập môi trường tính toán cho kernel như: context, program, buffer commandqueue, … Việc thiết lặp thực thi CPU hay gọi máy host xây dựng cụ thể sau: - Tạo context: //Creat context cl::Context context({ default_device }); - Load kernel file: việc load file kernel tương tự mở file lập trình C++: std::ifstream sourcefile("SW_kernel_Inter_Parallel.cl"); if (sourcefile.is_open()) { //thuc hien cac lenh } - Load source kernel: std::string sourcecode(std::istreambuf_iterator (sourcefile), (std::istreambuf_iterator())); - Tạo object program: cl::Program::Sources source; 28 source.push_back( {sourcecode.c_str(),sourcecode.length() }); - Tạo program: cl::Program program(context, source); - Compile source kernel: trình build cần kiểm tra program có build code kernel thiết bị tính toán hay không, không báo lỗi: if (program.build({ default_device }) != CL_SUCCESS) { std::cout [...]... vào Phương pháp cắt tỉa kết hợp với xử song song thuật toán SmithWaterman đã làm tăng quá trình tính toán của giải thuật Smith-Waterman trong bài toán bắt cặp trình tự cục bộ TIỂU KẾT CHƯƠNG 2 Chương hai đã giới thiệu tổng quan về giải thuật Smith-Waterman từ thuyết cho đến các bước thực hiện giải thuật Mặc dù, giải thuật Smith-Waterman giải quyết bài toán bắt cặp trình tự cục bộ với độ chính xác... đi lui Ai và “-” được ghi vào Thuật toán Smith-Waterman sử dụng phương pháp cắt tỉa giải quyết bài toán bắt cặp trình tự cục bộ rất hiệu quả với độ chính xác tương đối cao Trong giai đoạn điền ma trận, việc bỏ qua tính toán giá trị của từng tế bào trong ma trận sẽ giúp tăng tốc độ xử của thuật toán 16 2.3.2 Thuật toán kết hợp giữa cắt tỉa và xử song song Việc tính toán song song phụ thuộc vào... thi của giải thuật SW nguyên thủy và cắt tỉa trên CPU Hình 3.7 cho thấy thời gian thực thi của giải thuật Smith-Waterman sử dụng phương pháp cắt tỉa và song song trên môi trường CPU có hiệu 34 quả hơn so với thuật toán Smith-Waterman nguyên thủy Tuy nhiên, việc cải thiện tốc độ xử vẫn chưa nhiều 3.3.3 So với thuật toán Smith-Waterman xử song song: Theo kết quả thực nghiệm, cho thấy giải thuật Smith-Waterman... kết quả với thuật toán này 36 KẾT LUẬN: 1 Những đóng góp của luận văn: Luận văn đã nghiên cứu giải pháp giúp tăng tốc độ xử của thuật toán Smith-Waterman trong quá trình giải quyết bài toán bắt cặp trình tự cục bộ Và qua kết quả thực nghiệm cho thấy, giải pháp cắt tỉa được trình bày trong luận văn thực hiện trên môi trường CPU vẫn có hiệu quả hơn hẳn so với trên môi trường GPU và thuật toán nguyên... song song Việc kết hợp phương pháp cắt tỉa và xử song song thuật toán Smith-Waterman không chỉ cải thiện về mặt thời gian của việc cắt tỉa những tế bào không tính toán mà còn đẩy nhanh xử song song những giá trị từng tế bào trong từng ma trận trên mỗi đường chéo của ma trận Giải thuật kết hợp giữa phương pháp cắt tỉa và xử song song thuật toán Smith-Waterman được trình bày qua các bước như... hiện giải thuật lại khá tốn nhiều thời gian Để tăng tốc thời gian xử của giải thuật, trong chương hai cũng nêu rõ cơ chế tăng tốc bằng việc ứng dụng cắt tỉa các tế bào thỏa mãn một 21 điều kiện nhất định được gọi là tế bào kích hoạt Đồng thời, ứng dụng việc cắt tỉa vào quá trình song song trong giai đoạn điền ma trận Trong chương hai cũng thể hiện rõ các bước của giải thuật và đánh giá sơ bộ của thuật. .. ưu nhất cho bài toán bắt cặp trình tự cục bộ Tuy nhiên, thời gian của giải thuật rất lớn, vì vậy cần ứng dụng khả năng tính toán song song dữ liệu của GPU vào việc tối ưu hóa giải thuật nhằm làm giảm thiểu thời gian xử của giải thuật Do điều kiện nên thuật toán sẽ được thực nghiệm trên hệ thống gồm có: 30 Mục STT Đặc điểm kỹ thuật 1 CPU Intel® Core ™ i5-5200U CPU @ 2.20 GHz 2 RAM DDR3 4GB 3 GPU... song song, cắt tỉa Hình 3.8 cho thấy giải thuật Smith-Waterman sử dụng phương pháp cắt tỉa và song song có thời gian thực thi tốt hơn giải thuật SmithWaterman chỉ sử dụng phương pháp song song Tuy nhiên thời gian tối ưu chưa nhiều 35 3.3.4 So sánh với thuật toán Smith-Waterman cắt tỉa và tối ưu hóa band của nhóm nghiên cứu người Nhật: Do môi trường thực thi của giải thuật được trình bày trong luận văn... 𝐿 Phương pháp này sử dụng điểm số cao nhất đã được tính toán trước đó nhằm tính toán điểm số trong ma trận Hi,j Vì vậy, tính toán giá trị của một ô trong ma trận H(i,j) có thể được cắt tỉa trong giai đoạn điền ma trận nếu tất cả tế bào (i-1,j), (i,j-1), (i-1,j1) được kích hoạt hoặc đã được cắt tỉa 14 2.2.4 thuyết song song thuật toán Smith- Waterman: 2.3 Thuật toán cải tiến 2.3.1 Thuật toán Smith-Waterman... CGTGAATTCAT virus2 GACTTAC Hình 3.1: Ví dụ file input cho thuật toán 3.2.2.2 Bộ dữ liệu Test: Để so sánh về thời gian thực thi của phương pháp mới, luận văn trình bày kết quả mà tác giả đã thực nghiệm trên nhiều dữ liệu khác nhau và áp dụng trên cả hai thuật toán: thuật toán Smith-Waterman nguyên thủy và thuật toán Smith-Waterman áp dụng phương pháp cắt tỉa Bộ dữ liệu Test được trình bày trong luận văn ... Unit) vi xử lý chuyên dụng có nhiệm vụ tăng tốc, xử lý đồ họa cho vi xử lý trung tâm CPU nhằm tăng tốc ứng dụng đồ họa, ứng dụng khoa học, kỹ thuật phân tích liệu lớn GPU đẩy nhanh tốc độ xử lý nhiều...2 gian thực thuật toán này, luận văn tập trung vào việc đẩy mạnh thời gian thực giải thuật dựa tảng GPU Luận văn đề xuất với tên sau: Giải pháp tăng tốc độ xử lý thuật toán Smith-Waterman”... giúp tăng tốc độ xử lý thuật toán 16 2.3.2 Thuật toán kết hợp cắt tỉa xử lý song song Việc tính toán song song phụ thuộc vào việc xác định số đường chéo ma trận, có nghĩa tính số lần tính toán

Ngày đăng: 18/12/2016, 00:06

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan