single-thread mode

Open
#3,239 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
30/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
cpp
Domain
performance

Research direction

Start by tracing how seqan3::contrib::bgzf_thread_count is consumed by BAM reading and BGZF decompression. Determine whether a single-thread mode and configurable additional CPU count are supported, then identify the relevant behavior or documentation that would need changing. Done means a seqan3-based CLI can reliably use one CPU by default and request additional CPUs.

Written by the indexing model from the issue text.

Description

feature/proposal question

Is it possible for seqan3-based programs to use only one CPU? I tried setting seqan3::contrib::bgzf_thread_count to 1, but the BAM-reading program still uses 200% CPU according to GNU time: one main thread and one for seqan3's decompression. Looking at the code, setting seqan3::contrib::bgzf_thread_count to 0 would not be supported, correct?

I'm trying to make a CLI like that of samtools: using one CPU by default, with an option to specify additional CPUs. Is there a way to do that? Thanks!
@eseiler

Dominant language
C++
Stars
463
Forks
90
Avg merge
1h 11m
Merged PRs (30d)
3

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from seqan/seqan3

All issues in seqan/seqan3

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.