-
Notifications
You must be signed in to change notification settings - Fork 67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature request: multithreaded pheweb matrix
#115
Comments
There's two ways to deal with the single-threaded time taken by (a) Parallelize (b) Instead of running
and then, in parallel, run both
If the single threaded I'm not sure how to implement this option well. If pheweb used Simply because of the debugging complexity, I like option (a), like you proposed. Currently, pheweb makes the matrix from the un-compressed per-phenotype annotated files. ( To read a single chromosome from an individual phenotype file for use in
What do you think is the right approach? Are you interested in implementing this feature? |
I'm not sure what the best route is, still getting a feeling for how this whole process works :) Unfortunately bandwidth limits will keep me in a user role for the time being. I'm willing to try option 1.b. in the near future - I didn't realize stages could be run concurrently. I'm currently processing a set of 12m snps, 2000 phenotypes, early calculations indicate about 100hours of processing for the |
How many cores on the machine?
Do you predict runtime with something like |
I'm working with 32 cores. Good to know about Yeah, I estimated runtime based on time to generate output in |
Yep, it's multithreaded. |
Hi, does anyone in this thread know of a branch or fork that has implemented a parallelized |
@hanayik I'm not aware of such a fork. I'd love to have a parallel matrix feature and I can help if you'd like to work on it. Changes would be needed in https://github.com/statgen/pheweb/blob/master/pheweb/load/matrix.py and https://github.com/statgen/pheweb/blob/master/pheweb/load/cffi/x.cpp . It seems like most of the time goes to gzipping the output. I just changed the gzip compression level from 6 to 2 which will hopefully be much (3x?) faster. But there's still a lot to gain from parallelization. Some considerations:
|
Looks not so bad. I have 1262 phenotypes and, with single thread,
|
@Shicheng-Guo Yeah, if your system is CPU-limited (rather than IO-limited), then reducing the gzip compression level will probably make |
Would it be possible to perform the matrix processing stage on a per-chromosome basis to allow distribution of the work?
Thanks!
The text was updated successfully, but these errors were encountered: