Comments (5)
Hi @mmokrejs,
As Tigmint is a pipeline including multiple steps, it is true that some but not all steps use threads, and some to varying degrees. The most costly part of Tigmint is the alignment/mapping step, so I prefer to keep the default threads as is. It makes sense to use more threads to have the bwa/minimap2 steps as fast as possible.
If it's helpful, I can add a note that long-to-linked-pe
uses up to 6 threads only, but I'm hesitant overcomplicate things in the README by talking about thread usage in every individual step in the pipeline, since our recommendation for thread usage would stay the same. I don't think this is uncommon in bioinformatics tools (only the more costly steps being multi-threaded) - for examples, not all steps in ABySS are multi-threaded.
Thanks,
Lauren
from tigmint.
Hi @lcoombe,
Especially expensive are the analyses when user allocates a hundred of CPUs but the pipeline spends insane amount of time running single-threaded. And that is why I proposed to improve the documentation. It is not clear how to run the pipeline efficiently. Run step1 using X threads, then alignment step with t=8
or whatever, then a follow-up long-to-linked-pe
with t=6
as it does not scale.
I was not asking for rewriting your code, just explaining the user which parts of the pipeline can take advantage of multiple CPUs, whcih don't and how to run then as separate jobs not to waste CPU cycles.
I do not know how bout you but our cluster supervision jobs complain if a jobs uses only 1% of the allocated CPUs. I cannot justify that either. Then it makes me upset if the README seems I can pass t=288
to the pipeline just to learn later
long-to-linked-pe v1.0: Using more than 6 threads does not scale, reverting to 6.
which I should have been told in the README right away. Please do something about that. We need it for planning a computational project resources, and bgsc can write well-scaling software.
from tigmint.
Just to better understand your concerns, would you want to run individual steps of tigmint (separate or in the Makefile), specifying different threads for each? Ie. launching independent, consecutive jobs to your cluster, requesting different amounts of resources?
In our experience, the more common case for a user is to just want to run Tigmint start to finish, without having to run it piece-meal, but I understand circumstances are different for different users.
If you do want to vary the threads per job, I think the easiest thing would be to see what commands will be run by Tigmint (specifying -n
to your job), then you can do whatever you want with those commands. Ie. For tigmint
, you could specify 12 threads for bwa mem
, but then tell your scheduler that you only require 1 thread for tigmint-molecule
and tigmint-cut
.
I have added a note about the thread usage for long-to-linked-pe
in the README (01a87de)
from tigmint.
Just to better understand your concerns, would you want to run individual steps of tigmint (separate or in the Makefile), specifying different threads for each? Ie. launching independent, consecutive jobs to your cluster, requesting different amounts of resources?
Yes, exactly.
If you do want to vary the threads per job, I think the easiest thing would be to see what commands will be run by Tigmint (specifying
-n
to your job), then you can do whatever you want with those commands. Ie. Fortigmint
, you could specify 12 threads forbwa mem
, but then tell your scheduler that you only require 1 thread fortigmint-molecule
andtigmint-cut
.
Well one could then re-write every Makefile. I am after make targets like (roughly speaking):
tigmint index t=1
tigmint align t=288
tigmint long-link t=6
I have added a note about the thread usage for
long-to-linked-pe
in the README (01a87de)
Excellent.
from tigmint.
Hi @mmokrejs - we have added targets for the various steps of Tigmint in 8eb4f7f (Thanks @PuneetSS!).
They are documented in the README if you're interested in using them!
from tigmint.
Related Issues (20)
- About samtools invalid option in tigmint-make arcs mode HOT 4
- pre-alignment HOT 2
- Forward+reverse + long reads HOT 4
- yet another "make: *** No rule to make target" issue HOT 5
- Feature has length = 0, Skipping - followed by empty output from tigmint-long HOT 9
- Understanding tigmint-long outputs HOT 3
- tigmint-make tigmint error HOT 2
- Error when attempting tigmint-make arcs HOT 2
- Error : no progress of scaffolding running HOT 5
- tigmint-long error HOT 1
- Respect $TMPDIR as anticipated by sort tool HOT 1
- samtools sort may be replaced by bamsort which scales better HOT 2
- pigz may be better replaced by bgzip HOT 2
- tigmint-make ignores $PATH and is supposed to be run from unpacked source tree instead HOT 3
- README does not list all dependencies HOT 2
- Does bin/tigmint_estimate_dist.py really work with FASTA files as well? HOT 5
- tigmint_molecule_paf.py: TypeError: expected string or bytes-like object HOT 11
- Cannot compile the bundled while modified copy of make: make-4.1/glob/glob.c:1342: undefined reference to `__alloca' HOT 6
- tigmint-make: minimap2 is being called with -y argument HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tigmint.