Xây dựng giải thuật song song và cài đặt trên môi trƣờng CUDA

Một phần của tài liệu khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học (Trang 61)

Nhƣ đã trình bày ở trên, giải thuật Clustal gồm 3 bƣớc: sắp hàng từng cặp chuỗi giữa tất cả những chuỗi và xác định mức độ tƣơng đồng giữa mỗi cặp; xây dựng cây chỉ dẫn thể hiện mối quan hệ tƣơng đồng giữa các chuỗi; xây dựng sắp hàng đa chuỗi dựa vào cây chỉ dẫn ở bƣớc 2. Trong 3 bƣớc này, nhận thấy có thể thực hiện việc tính toán song song tại bƣớc 1 hoặc bƣớc 3 hoặc cả 2 bƣớc. Ở bƣớc 1, việc sắp hàng từng cặp chuỗi có thể song song hóa bằng cách tính toán đồng thời nhiều ký tự của mỗi chuỗi cùng một lúc. Ở bƣớc 3, nhận thấy có thể tính toán cùng lúc cho nhiều chuỗi nếu các chuỗi này cùng thỏa mãn điều kiện ở bƣớc 2. Luận văn này chọn bƣớc 1 để thực hiện việc song song hóa thuật toán Clustal.

Xây dựng giải thuật

Phƣơng pháp quy hoạch động đƣợc sử dụng để tiếp cận bƣớc 1 của giải thuật Clustal, gồm 3 bƣớc:

– Khởi tạo ma trận từ hai chuỗi đầu vào.

– Tính toán, điền giá trị cho ma trận. Tìm ô có giá trị lớn nhất trong ma trận

– Sử dụng kỹ thuật lƣu vết để tìm ra kết quả

Ở bƣớc này, từ 2 chuỗi đầu vào tiến hành xây dựng ma trận đánh giá (mục 1 chƣơng 4). Giải thuật tính ma trận đánh giá F(m, n) và lƣu vết:

F(0, 0) = 0; for i = 1 to n do F(i, 0) = F(i-1, 0) - d; for j = 1 to m do F( j, 0)= F(0, j-1) - d; for i =1 to |S1| do for j = 1 to |S2| do {

F(i, j)= max (Max ( 0, F(i-1,j-1) + S(i,j), F(i-1,j)-d, F(i,j-1)-d );(1)

B ckPTR(F(i j)) = (im x jm x);//l u trữ vết vào mảng BackPTR. }

Với imax, jmax là giá trị tƣơng ứng của i, j trong biểu thức (1). Xây dựng phƣơng thức tìm so sánh trình tự theo nguyên tắc nêu ở trên, dựa vào mảng lƣu trữ vết BackPTR, thu đƣợc kết quả.

Nhận xét: Tại bƣớc xây dựng ma trận đánh giá, nhận thấy khi tính giá trị cho phần tử Pij nằm trên đƣờng chéo thứ i, cần phải có sẵn kết quả tính toán của 3 phần tử lân cận: Pi-1, j, Pi-1, j-1, Pi, j-1 (hình 4.3). Khi tính toán các phần tử nằm trên đƣờng chéo phụ không bị phụ thuộc lẫn nhau mà chỉ phụ thuộc vào các phần từ nằm trên đƣờng chéo phụ trƣớc đó (đƣờng chéo thứ i -1) nhƣ hình 4.6, do đó có thể tính toán riêng rẽ từng phần tử của một đƣờng chéo phụ trên từng luồng khác nhau.

Hình 4.5. Ph ơng pháp song song tính giá trị các phần tử ma trận đánh giá

Từ nhận xét trên, xây dựng giải thuật song song cho bài toán so sánh trình tự hai chuỗi nhƣ sau:

- Với từng phần tử của đƣờng chéo của ma trận đánh giá đƣợc tính bởi một luồng riêng. Nhƣ vậy đƣờng chéo có n phần tử thì cần n luồng để tính giá trị cho đƣờng chéo.

Hình 4.6 mô tả chi tiết cách điền giá trị cho ma trận đánh giá theo từng đƣờng chéo.

Giải thích cách điền giá trị cho ma trận đánh giá: khởi tạo ma trận đánh giá

F[n, m] với hàng F[0, i] = 0 và cột F[j, 0] = 0, trong đó: i = 0..5 và j = 0..6, n = 7 và

Với mỗi đƣờng chéo phụ, từ đƣờng chéo 0 đến đƣờng chéo n+m-2: tính giá trị các phần tử Pij (trong đó: i = 0..n+m - 2).

Một phần của tài liệu khai thác kiến trúc phân tán và chia sẻ tìm sự tương đồng của các trình tự sinh học (Trang 61)