NVBIO
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Modules | Namespaces | Classes | Functions
Batch Alignments

Detailed Description

A batch alignment is a parallel execution context for performing large batches of individual alignment jobs. There are several types of alignment jobs, mirroring the types of possible alignment operations, such as scoring, traceback, etc.

Batches can be executed according to several different parallel algorithms, specified by a Batch Scheduler.

Modules

 Private
 

Namespaces

 nvbio::aln::priv
 

Classes

struct  nvbio::aln::BatchedAlignmentScore< stream_type, algorithm_type >
 
struct  nvbio::aln::BatchedBandedAlignmentScore< BAND_LEN, stream_type, algorithm_type >
 
struct  nvbio::aln::BatchedAlignmentTraceback< CHECKPOINTS, stream_type, algorithm_type >
 
struct  nvbio::aln::BatchedBandedAlignmentTraceback< BAND_LEN, CHECKPOINTS, stream_type, algorithm_type >
 
struct  nvbio::aln::BatchedAlignmentScore< stream_type, HostThreadScheduler >
 
struct  nvbio::aln::BatchedAlignmentScore< stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >
 
struct  nvbio::aln::BatchedAlignmentScore< stream_type, DeviceWarpScheduler >
 
struct  nvbio::aln::BatchedAlignmentScore< stream_type, DeviceStagedThreadScheduler >
 
struct  nvbio::aln::BatchedAlignmentTraceback< CHECKPOINTS, stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >
 

Functions

template<typename aligner_type , typename pattern_set_type , typename text_set_type , typename sink_iterator , typename scheduler_type >
void nvbio::aln::batch_alignment_score (const aligner_type aligner, const pattern_set_type patterns, const text_set_type texts, sink_iterator sinks, const scheduler_type scheduler, const uint32 max_pattern_length=1000, const uint32 max_text_length=1000)
 
template<typename aligner_type , typename pattern_set_type , typename qualities_set_type , typename text_set_type , typename sink_iterator , typename scheduler_type >
void nvbio::aln::batch_alignment_score (const aligner_type aligner, const pattern_set_type patterns, const qualities_set_type quals, const text_set_type texts, sink_iterator sinks, const scheduler_type scheduler, const uint32 max_pattern_length=1000, const uint32 max_text_length=1000)
 
template<uint32 BAND_LEN, typename aligner_type , typename pattern_set_type , typename text_set_type , typename sink_iterator , typename scheduler_type >
void nvbio::aln::batch_banded_alignment_score (const aligner_type aligner, const pattern_set_type patterns, const text_set_type texts, sink_iterator sinks, const scheduler_type scheduler, const uint32 max_pattern_length, const uint32 max_text_length)
 
static uint64 nvbio::aln::BatchedAlignmentScore< stream_type, HostThreadScheduler >::min_temp_storage (const uint32 max_pattern_len, const uint32 max_text_len, const uint32 stream_size)
 
static uint64 nvbio::aln::BatchedAlignmentScore< stream_type, HostThreadScheduler >::max_temp_storage (const uint32 max_pattern_len, const uint32 max_text_len, const uint32 stream_size)
 
void nvbio::aln::BatchedAlignmentScore< stream_type, HostThreadScheduler >::enact (stream_type stream, uint64 temp_size=0u, uint8 *temp=NULL)
 
static uint64 nvbio::aln::BatchedAlignmentScore< stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >::min_temp_storage (const uint32 max_pattern_len, const uint32 max_text_len, const uint32 stream_size)
 
static uint64 nvbio::aln::BatchedAlignmentScore< stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >::max_temp_storage (const uint32 max_pattern_len, const uint32 max_text_len, const uint32 stream_size)
 
void nvbio::aln::BatchedAlignmentScore< stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >::enact (stream_type stream, uint64 temp_size=0u, uint8 *temp=NULL)
 
static uint64 nvbio::aln::BatchedAlignmentScore< stream_type, DeviceWarpScheduler >::min_temp_storage (const uint32 max_pattern_len, const uint32 max_text_len, const uint32 stream_size)
 
static uint64 nvbio::aln::BatchedAlignmentScore< stream_type, DeviceWarpScheduler >::max_temp_storage (const uint32 max_pattern_len, const uint32 max_text_len, const uint32 stream_size)
 
void nvbio::aln::BatchedAlignmentScore< stream_type, DeviceWarpScheduler >::enact (stream_type stream, uint64 temp_size=0u, uint8 *temp=NULL)
 
static uint64 nvbio::aln::BatchedAlignmentTraceback< CHECKPOINTS, stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >::min_temp_storage (const uint32 max_pattern_len, const uint32 max_text_len, const uint32 stream_size)
 
static uint64 nvbio::aln::BatchedAlignmentTraceback< CHECKPOINTS, stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >::max_temp_storage (const uint32 max_pattern_len, const uint32 max_text_len, const uint32 stream_size)
 
void nvbio::aln::BatchedAlignmentTraceback< CHECKPOINTS, stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >::enact (stream_type stream, uint64 temp_size=0u, uint8 *temp=NULL)
 

Function Documentation

template<typename aligner_type , typename pattern_set_type , typename text_set_type , typename sink_iterator , typename scheduler_type >
void nvbio::aln::batch_alignment_score ( const aligner_type  aligner,
const pattern_set_type  patterns,
const text_set_type  texts,
sink_iterator  sinks,
const scheduler_type  scheduler,
const uint32  max_pattern_length = 1000,
const uint32  max_text_length = 1000 
)

A convenience function for aligning a batch of patterns to a corresponding batch of texts on the device. NOTE: this function allocates temporary storage, and doesn't perform any local memory caching of the input strings: hence, it might not attain maximum performance. For maximum speed, check the BatchedAlignmentScore contexts.

All the involved string sets and iterators must reside in device memory.
For a usage example, see Batch Alignment.
Template Parameters
aligner_typean Aligner algorithm
pattern_set_typea string set storing the patterns
text_set_typea string set storing the texts
sink_iteratora random access iterator to the output alignment sinks
scheduler_typea Batch Scheduler
Parameters
alignerthe Aligner algorithm
patternsthe patterns string set
textsthe texts string set
sinksthe output alignment sinks
schedulerthe Batch Scheduler

Definition at line 995 of file batched_inl.h.

template<typename aligner_type , typename pattern_set_type , typename qualities_set_type , typename text_set_type , typename sink_iterator , typename scheduler_type >
void nvbio::aln::batch_alignment_score ( const aligner_type  aligner,
const pattern_set_type  patterns,
const qualities_set_type  quals,
const text_set_type  texts,
sink_iterator  sinks,
const scheduler_type  scheduler,
const uint32  max_pattern_length = 1000,
const uint32  max_text_length = 1000 
)

A convenience function for aligning a batch of patterns to a corresponding batch of texts on the device. NOTE: this function allocates temporary storage, and doesn't perform any local memory caching of the input strings: hence, it might not attain maximum performance. For maximum speed, check the BatchedAlignmentScore contexts.

All the involved string sets and iterators must reside in device memory.
For a usage example, see Batch Alignment.
Template Parameters
aligner_typean Aligner algorithm
pattern_set_typea string set storing the patterns
qualities_set_typea string set storing the qualities
text_set_typea string set storing the texts
sink_iteratora random access iterator to the output alignment sinks
scheduler_typea Batch Scheduler
Parameters
alignerthe Aligner algorithm
patternsthe patterns string set
qualsthe pattern qualities string set
textsthe texts string set
sinksthe output alignment sinks
schedulerthe Batch Scheduler

Definition at line 1034 of file batched_inl.h.

template<uint32 BAND_LEN, typename aligner_type , typename pattern_set_type , typename text_set_type , typename sink_iterator , typename scheduler_type >
void nvbio::aln::batch_banded_alignment_score ( const aligner_type  aligner,
const pattern_set_type  patterns,
const text_set_type  texts,
sink_iterator  sinks,
const scheduler_type  scheduler,
const uint32  max_pattern_length,
const uint32  max_text_length 
)

A convenience function for aligning a batch of patterns to a corresponding batch of texts on the device. NOTE: this function allocates temporary storage, and doesn't perform any local memory caching of the input strings: hence, it might not attain maximum performance. For maximum speed, check the BatchedAlignmentScore contexts.

All the involved string sets and iterators must reside in device memory.
For a usage example, see Batch Alignment.
Template Parameters
aligner_typean Aligner algorithm
pattern_set_typea string set storing the patterns
text_set_typea string set storing the texts
sink_iteratora random access iterator to the output alignment sinks
scheduler_typea Batch Scheduler
Parameters
alignerthe Aligner algorithm
patternsthe patterns string set
textsthe texts string set
sinksthe output alignment sinks
schedulerthe Batch Scheduler

Definition at line 1074 of file batched_inl.h.

template<typename stream_type >
void nvbio::aln::BatchedAlignmentScore< stream_type, HostThreadScheduler >::enact ( stream_type  stream,
uint64  temp_size = 0u,
uint8 temp = NULL 
)

enact the batch execution

Definition at line 287 of file batched_inl.h.

template<uint32 BLOCKDIM, uint32 MINBLOCKS, typename stream_type >
void nvbio::aln::BatchedAlignmentScore< stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >::enact ( stream_type  stream,
uint64  temp_size = 0u,
uint8 temp = NULL 
)

enact the batch execution

Definition at line 378 of file batched_inl.h.

template<typename stream_type >
void nvbio::aln::BatchedAlignmentScore< stream_type, DeviceWarpScheduler >::enact ( stream_type  stream,
uint64  temp_size = 0u,
uint8 temp = NULL 
)

enact the batch execution

Definition at line 482 of file batched_inl.h.

template<uint32 BLOCKDIM, uint32 MINBLOCKS, uint32 CHECKPOINTS, typename stream_type >
void nvbio::aln::BatchedAlignmentTraceback< CHECKPOINTS, stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >::enact ( stream_type  stream,
uint64  temp_size = 0u,
uint8 temp = NULL 
)

enact the batch execution

Definition at line 794 of file batched_inl.h.

template<typename stream_type >
uint64 nvbio::aln::BatchedAlignmentScore< stream_type, HostThreadScheduler >::max_temp_storage ( const uint32  max_pattern_len,
const uint32  max_text_len,
const uint32  stream_size 
)
static

return the maximum number of bytes required by the algorithm

Definition at line 279 of file batched_inl.h.

template<uint32 BLOCKDIM, uint32 MINBLOCKS, typename stream_type >
uint64 nvbio::aln::BatchedAlignmentScore< stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >::max_temp_storage ( const uint32  max_pattern_len,
const uint32  max_text_len,
const uint32  stream_size 
)
static

return the maximum number of bytes required by the algorithm

Definition at line 370 of file batched_inl.h.

template<typename stream_type >
uint64 nvbio::aln::BatchedAlignmentScore< stream_type, DeviceWarpScheduler >::max_temp_storage ( const uint32  max_pattern_len,
const uint32  max_text_len,
const uint32  stream_size 
)
static

return the maximum number of bytes required by the algorithm

Definition at line 474 of file batched_inl.h.

template<uint32 BLOCKDIM, uint32 MINBLOCKS, uint32 CHECKPOINTS, typename stream_type >
uint64 nvbio::aln::BatchedAlignmentTraceback< CHECKPOINTS, stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >::max_temp_storage ( const uint32  max_pattern_len,
const uint32  max_text_len,
const uint32  stream_size 
)
static

return the maximum number of bytes required by the algorithm

Definition at line 786 of file batched_inl.h.

template<typename stream_type >
uint64 nvbio::aln::BatchedAlignmentScore< stream_type, HostThreadScheduler >::min_temp_storage ( const uint32  max_pattern_len,
const uint32  max_text_len,
const uint32  stream_size 
)
static

return the minimum number of bytes required by the algorithm

Definition at line 271 of file batched_inl.h.

template<uint32 BLOCKDIM, uint32 MINBLOCKS, typename stream_type >
uint64 nvbio::aln::BatchedAlignmentScore< stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >::min_temp_storage ( const uint32  max_pattern_len,
const uint32  max_text_len,
const uint32  stream_size 
)
static

return the minimum number of bytes required by the algorithm

Definition at line 362 of file batched_inl.h.

template<typename stream_type >
uint64 nvbio::aln::BatchedAlignmentScore< stream_type, DeviceWarpScheduler >::min_temp_storage ( const uint32  max_pattern_len,
const uint32  max_text_len,
const uint32  stream_size 
)
static

return the minimum number of bytes required by the algorithm

Definition at line 466 of file batched_inl.h.

template<uint32 BLOCKDIM, uint32 MINBLOCKS, uint32 CHECKPOINTS, typename stream_type >
uint64 nvbio::aln::BatchedAlignmentTraceback< CHECKPOINTS, stream_type, DeviceThreadBlockScheduler< BLOCKDIM, MINBLOCKS > >::min_temp_storage ( const uint32  max_pattern_len,
const uint32  max_text_len,
const uint32  stream_size 
)
static

return the minimum number of bytes required by the algorithm

Definition at line 778 of file batched_inl.h.