IP Library › Granted Patent US 9,747,413
Granted Patent B2
US 9,747,413 · App. 13/185,849 · Granted Aug 29, 2017

Adaptive processing for sequence alignment

Inventors: M. Affan Zidan (Thuwal, SA); Talal Bonny (Thuwal, SA); Khaled N. Salama (Thuwal, SA)
Assignee: KING ABDULLAH UNIVERSITY OF SCIENCE AND TECHNOLOGY
G06F19/22G06F19/28
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,747,413
App. No.
13/185,849
Granted
Aug 29, 2017
Kind
B2
Abstract

Disclosed are various embodiments for adaptive processing for sequence alignment. In one embodiment, among others, a method includes obtaining a query sequence and a plurality of database sequences. A first portion of the plurality of database sequences is distributed to a central processing unit (CPU) and a second portion of the plurality of database sequences is distributed to a graphical processing unit (GPU) based upon a predetermined splitting ratio associated with the plurality of database sequences, where the database sequences of the first portion are shorter than the database sequences of the second portion. A first alignment score for the query sequence is determined with the CPU based upon the first portion of the plurality of database sequences and a second alignment score for the query sequence is determined with the GPU based upon the second portion of the plurality of database sequences.

Claims (38)

1. A system, comprising:

at least one computing device; and

an application executed in the at least one computing device, the application comprising:

logic that obtains a plurality of database sequences;

logic that orders the plurality of database sequences;

logic that determines a splitting ratio associated with the ordered plurality of database sequences, where the splitting ratio separates the ordered plurality of database sequences into a first portion of the ordered plurality of database sequences associated with at least one central processing unit (CPU) and a second portion of the ordered plurality of database sequences associated with a graphical processing unit (GPU), where the length of the database sequences of the first portion of the ordered plurality of database sequences are shorter than the length of the database sequences of the second portion of the ordered plurality of database sequences;

logic that assigns the first portion of the ordered plurality of database sequences to the at least one CPU for sequencing by the at least one CPU; and

logic that assigns the second portion of database sequences to the GPU for sequencing by the GPU.

2. The system of claim 1 , wherein the splitting ratio is determined based at least in part upon a difference between an execution time of the CPU for sequencing individual ones of the ordered plurality of database sequences and an execution time of the GPU for sequencing individual ones of the ordered plurality of database sequences.

3. The system of claim 2 , wherein the splitting ratio is determined when the difference between the execution time of the CPU and the execution time of the GPU is within a predefined threshold.

4. The system of claim 1 , wherein the logic that determines the splitting ratio further comprises:

logic that splits the ordered plurality of database sequences;

logic that determines an execution time of the CPU for each portion of the split ordered plurality of database sequences and the execution time of the GPU for each portion of the split ordered plurality of database sequences; and

logic that determines if a difference between the execution time of the CPU and the execution time of the GPU is within a predefined threshold.

5. The system of claim 4 , wherein the logic that determines the splitting ratio further comprises logic that determines a new split of the ordered plurality of database sequences when the difference between the execution time of the CPU and the execution time of the GPU is not within the predefined threshold.

6. The system of claim 1 , wherein the logic that determines the splitting ratio further comprises:

logic that determines a first split point and a second split point of the ordered plurality of database sequences; and

logic that determines the splitting ratio based upon performance of the GPU corresponding to the first split point and the performance of the GPU corresponding to the second split point.

7. The system of claim 6 , wherein the splitting ratio is determined when the difference between the performance of the GPU corresponding to the first split point and the performance of the GPU corresponding to the second split point is within a predefined threshold.

8. The system of claim 6 , wherein the logic that determines the splitting ratio further comprises logic that determines a new split point when the difference between the performance of the GPU corresponding to the first split point and the performance of the GPU corresponding to the second split point is not within a predefined threshold.

9. A computer-implemented method, comprising:

obtaining, via a computing device, a plurality of database sequences;

ordering, via the computing device, the plurality of database sequences; and

determining, via the computing device, a splitting ratio associated with the ordered plurality of database sequences, where the splitting ratio separates the ordered plurality of database sequences into a first portion of the ordered plurality of database sequences associated with at least one central processing unit (CPU) and a second portion of the ordered plurality of database sequences associated with a graphical processing unit (GPU), where the length of the database sequences of the first portion of the ordered plurality of database sequences are shorter than the length of the database sequences of the second portion of the ordered plurality of database sequences;

assigning, via the computing device, the first portion of the ordered plurality of database sequences to the at least one CPU for sequencing by the at least one CPU; and

assigning, via the computing device, the second portion of database sequences to the GPU for sequencing by the GPU.

10. The computer-implemented method of claim 9 , wherein the splitting ratio is determined based at least in part upon a difference between an execution time of the CPU for sequencing individual ones of the ordered plurality of database sequences and an execution time of the GPU for sequencing individual ones of the ordered plurality of database sequences.

11. The computer-implemented method of claim 10 , wherein the splitting ratio is determined when the difference between the execution time of the CPU and the execution time of the GPU is within a predefined threshold.

12. The computer-implemented method of claim 10 , wherein determining, via the computing device, the splitting ratio comprises:

splitting, via the computing device, the ordered plurality of database sequences;

determining, via the computing device, the execution time of the CPU for each portion of the split ordered plurality of database sequences and the execution time of the GPU for each portion of the split ordered plurality of database sequences; and

determining, via the computing device, if the difference between the execution time of the CPU and the execution time of the GPU is within a predefined threshold.

13. The computer-implemented method of claim 12 , wherein determining, via the computing device, the splitting ratio further comprises determining, via the computing device, a new split of the ordered plurality of database sequences when the difference between the execution time of the CPU and the execution time of the GPU is not within the predefined threshold.

14. The computer-implemented method of claim 9 , wherein determining, via the computing device, the splitting ratio further comprises:

determining, via the computing device, a first split point and a second split point of the ordered plurality of database sequences; and

determining, via the computing device, the splitting ratio based upon performance of the GPU corresponding to the first split point and the performance of the GPU corresponding to the second split point.

15. The computer-implemented method of claim 14 , wherein the splitting ratio is determined when a difference between the performance of the GPU corresponding to the first split point and the performance of the GPU corresponding to the second split point is within a predefined threshold.

16. The computer-implemented method of claim 14 , wherein determining, via the computing device, the splitting ratio further comprises determining, via the computing device, a new split point when the difference between the performance of the GPU corresponding to the first split point and the performance of the GPU corresponding to the second split point is not within a predefined threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2011
From: ZIDAN, M. AFFAN; BONNY, TALAL; SALAMA, KHALED N.
To: KING ABDULLAH UNIVERSITY OF SCIENCE AND TECHNOLOGY
Reel/Frame 027004/0240 →
Continuity (2)
Provisional Application 61366065 · Jul 20, 2010
Related Publication 20120023110A1 · Jan 26, 2012