Dear Jesper and Mark,
I tried a couple things based on your suggestion:
1. use the T1 config file as default, and keep every parameter the same
(except ref, refmask), this took about the same time (about 6-7 hours).
2. use T1 config, and set --splineorder=2, lowest subsampling to be 2, and –
numprec=float, then it took about 20-30 mins.
And I’ll examine the performance of the two results to see if we can use the
much more efficient parameters.
Also, I ran the program on a server machine which has 32 GB memory. And I
checked the memory usage when the program was running there were still
several gbs left (there are multiple programs running on it), so I don’t think the
slow speed is because of using swap. But I might be wrong.
Thanks for your suggestion!
xiujuan
I did indeed.
So, I meant
4. Use --numprec=float
Cheers MJ
Begin forwarded message:
From: Mark Jenkinson <[log in to unmask]>
Date: 17 November 2008 17:15:18 GMT
To: Jesper Andersson <[log in to unmask]>
Subject: Fwd: [FSL] fnirt execution time
Did you mean #4 to say "Use --numprec=float" ?
MJ
Begin forwarded message:
From: Jesper Andersson <[log in to unmask]>
Date: 17 November 2008 17:09:19 GMT
To: [log in to unmask]
Subject: Re: [FSL] fnirt execution time
Reply-To: FSL - FMRIB's Software Library <[log in to unmask]>
Dear Xiujuan,
I was using fnirt and it took many hours (>6) to register two images. Is it a
normal run time or did I do something wrong? The input images have a voxel
dimension of 128x160x128, and I used the default parameter settings. The
images were affine-aligned already, so I didn't do it again. The log file is
attached. How can I improve the efficiency besides cropping the input images
to a smaller size and specifying a subsampling of 2 at the lowest level? Thanks!
It seems you have run it with the "default default" parameters. I would instead
recommend you to start with one of the configuration files (e.g. the T1-
>MNI152 one) and then make changes to that for your specific case.
As for execution time it does sound much. One thing to look out for is if it
starts to page/swap or not. If your machine is able to hold everything in RAM,
rather than having to swap things back and forth to disc, things will be much
smoother. The things I would suggest to do is
1. Specify subsampling 2 at lowest level. You do not really need a resolution
higher than 2mm in the images to estimate warps with 10mm. The 2-3mm
image resolution you get from a subsampling of 2 is more than sufficient. You
should also be aware that this does NOT mean that your results will have a
2mm resolution. They will have the original resolution and will be in the space
of the image you specifies as --ref.
2. Crop the image you use as --ref. Make sure that the image-matrix is "tight"
around the brain in the image you use as --ref. Have a look at the MNI152
images to get an idea of what I mean by "tight".
3. Use --splineorder=2.
This will have an impact both on the amount of calculations that are
performed, and on the RAM needed. If you
4. Use --numprec=double.
This will have an impact on the RAM needed.
Good luck Jesper
|