The timings for 32 bit seem to scale in a pretty linear way (as would be
hoped), but those for 64 bit definately do not seem to behave in the same
way. I'm not sure why this would be the case. What we have found from our
own experience in the FIL is that header information from all the files can
require a substantial amount of memory to save.
In SPM8b, the DICOM conversion was slightly re-written so that only the
necessary fields are held in memory. Make a backup of the original SPM5
spm_dicom_headers.m, install the attached files, and try:
tic; h=spm_dicom_headers(dicomHeaders(1:N,:), true); toc
If this helps, then you may wish to include the "true" argument in
spm_config_dicom.m so that it makes use of the reduced headers.
Best regards,
-John
On Wednesday 14 January 2009 16:38, Benjamin Wagner wrote:
> Hi all,
> I have access to two identical boxes, except that on has RHEL4 32bit
> and the other 64bit. Dicom conversion for a series usually runs short
> of 30 minutes on the 32 bit box. I have yet to have one complete on the
> 64bit box, even if running over a weekend. When stopping the conversion
> (ctrl-C), I often see a reference to spm_dicom_headers. When running a
> simple timing comparison of spm_dicom_headers, I get:
>
> Dicoms: 100 200 400 800
> 64 bit: 6.8 20.8 163 1107 (seconds)
> 32 bit: 7.7 14.5 28.8 57.3 (seconds)
>
> The timing command used was:
>
> tic; h=spm_dicom_headers(dicomHeaders(1:N,:)); toc
>
> With N being the number of images being read. Profiling the command,
> the areas where time seemed to be most spent was on freads.
>
> Box info:
> AMD Opteron Processor 256 (3GHz)
> 4 G Ram
> Matlab: 7.3 (2006b)
> SPM5: 1782 update
>
> Would anyone have suggestion on where to look to solve this problem?
>
> Thanks,
> Ben
|