-
Notifications
You must be signed in to change notification settings - Fork 301
[RTM] ENH: Merge T1w images to unbiased template if N < 3 or --longitudinal is passed #591
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
Conversation
81c884c
to
778a5b6
Compare
This adds serious run time to the Also, I think we can use OpenMP, so I'll give that a shot. |
how serious? |
It's taken over half an hour. Before I think it took ~10min, but I'll run both versions tonight with less other things going on the system to get a difference. Once I was sure it was a major slowdown, I killed it to try to play with OpenMP. Just to verify that it does actually parallelize. |
For ds031/sub-01 (9 images):
For ds114/sub-07 (2 images):
|
Re: ds031, it's unclear whether we'd get a better speed-up profile if the number of images matched the number of threads; it could be that the parallel sections are going from 9 to 2. But even if so, it looks like the serial component for constructing an unbiased template is ~74min, and maximum concurrency might bring us down to 77-78min. Similarly, for a simple alignment, it looks like we have a serial section of ~2.5min with maximum concurrency reducing to 3.6-3.7min. I would say it makes sense to parallelize to |
That's really long! I agree with your suggestions.
…On Thu, Jul 27, 2017 at 8:13 AM, Chris Markiewicz ***@***.***> wrote:
Re: ds031, it's unclear whether we'd get a better speed-up profile if the
number of images matched the number of threads; it could be that the
parallel sections are going from 9 to 2. But even if so, it looks like the
serial component for constructing an unbiased template is ~74min, and
maximum concurrency might bring us down to 77-78min.
Similarly, for a simple alignment, it looks like we have a serial section
of ~2.5min with maximum concurrency reducing to 3.6-3.7min.
I would say it makes sense to parallelize to min(num_images, omp_nthreads),
which keeps small merges from eating up all the cores to little benefit,
and to make unbiased templates optional. Given the low additional cost for
a small number of input images, it could also make sense to make unbiased
templates the default for fewer than N images (and I'll work out what a
reasonable N is).
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#591 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAOkpyexVy8_nc9J-6VvZLeJWF6sp57bks5sSKkZgaJpZM4Obqsu>
.
|
Sounds good. Then this will depend on nipy/nipype#2130, which make the number of threads an input trait, so it can be set like so: wf.connect([(t1_conform, t1_merge, [(('t1w_list', len), 'num_threads')])]) (Replacing len with a more correct function.) |
Haha, wow. N=2. Going from 2 to 3 images increases from <2min to ~25min. I do not need to see the curve badly enough to keep going. |
778a5b6
to
ba4dd77
Compare
--longitudinal
is passed
--longitudinal
is passed1dd0111
to
863ef83
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code looks ok, but please look into the failing tests.
It's the stochastic ICA-AROMA bug. If it pops up again, I'll merge #611 before running another round of tests. |
Not running against CircleCI at this point because we'll need to test outside of CI against datasets with multiple T1w images before we merge this. This is a placeholder PR until then.
I'd also like to go ahead and use
mri_robust_register
to align any T2w images (see #474).Note that this could break alignment between result images from previous FMRIPREP versions. Should probably be put into release notes.
Closes #310