[vtkusers] timings for vtkImageReader2
Mathieu Malaterre
mathieu.malaterre at kitware.com
Fri Oct 8 12:56:21 EDT 2004
Budd,
512x512x512x2 = 268,435,456 so I don't see any problem with a 3s
reading time. I admit a have 1gig of memory so there is very few chance
I start swapping. Also to be honest the first time I run the c++ code it
take 8s, the second time it takes 3s
$ time ./bench
./bench 1.05s user
1.97s system 99% cpu 3.021 total
My guess is:
- you are swapping a lot (if you didn't ran defrag in a while swapping
would be very slow).
- Close any other apps you are using to avoid having to swap.
- Use linux :P
Mathieu
Ps: sys info:
$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.80GHz
stepping : 9
cpu MHz : 2793.067
cache size : 512 KB
physical id : 0
siblings : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid
runqueue : 0
bogomips : 5570.56
processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.80GHz
stepping : 9
cpu MHz : 2793.067
cache size : 512 KB
physical id : 0
siblings : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid
runqueue : 0
bogomips : 5583.66
/sbin/hdparm -t /dev/sda2
/dev/sda2:
Timing buffered disk reads: 160 MB in 3.00 seconds = 53.33 MB/sec
Budd Hirons wrote:
> 3 seconds! you have to let me in on your secret!
>
> UltraATA maximum transfer in the DMA mode 5 is only 100MB/s, so I guess
> it is possible, but unlikely, to read this in 3 seconds. I ran this
> exercise on two machines, compiled from C++.
>
> machine 1 (p4,ultraATA drive on board,DMA,DDR ram) - 18s read
> machine 2 (dual Xeon,SCSI on PCI adapter,no DMA,pc133 ram) - 66s read
>
> We regularly deal with volumes that exceed this one in size, and range
> to 800 megs on disk. Load times to get very large chunks of data into
> can ram vary wildly, but it should not be expected to happen
> instantaneously. 45 seconds for larger datasets would not be off the
> mark in release on random equipment and with other processes likely
> running.
>
> Cheers,
> Budd.
>
>
>
> Kate Kerekes wrote:
>
>> Hello again,
>>
>> I apologize for the length of this message. I am still having
>> problems with
>> the time it takes vtkImageReader2 to read 268 MB of data (a series of 512
>> files with 512x512 shorts each.) I ran the following test program (from
>> Mathieu Malaterre translated to tcl by me) to see how long a read takes:
>>
>> #!/bin/sh
>> load vtkCommonTCL.dll
>> load vtkFilteringTCL.dll
>> load vtkGraphicsTCL.dll
>> load vtkIOTCL.dll
>> load vtkImagingTCL.dll
>> load vtkRenderingTCL.dll
>> load vtkHybridTCL.dll
>> source Interactor.tcl
>> source bindings-rw.tcl
>> source bindings-iw.tcl
>> source bindings.tcl
>> source setget.tcl
>>
>> console show
>>
>> set createImage yes
>>
>> if {$createImage=="yes"} {
>> vtkImageNoiseSource noise
>> noise SetWholeExtent 0 511 0 511 0 511
>> noise SetMinimum 0.0
>> noise SetMaximum 1.0
>> [noise GetOutput] ReleaseDataFlagOn
>> puts "about to update vtkImageNoiseSource"
>> noise Update
>> puts "finished updating vtkImageNoiseSource"
>>
>> vtkImageCast cast
>> cast SetInput [noise GetOutput]
>> cast SetOutputScalarTypeToUnsignedShort
>> vtkImageWriter writer
>> writer SetInput [cast GetOutput]
>> writer SetFileDimensionality 3
>> writer SetFileName "bench.img"
>> puts "about to update writer"
>> writer Write
>> puts "finished updating writer"
>> }
>>
>> vtkImageReader2 reader
>> [reader GetOutput] ReleaseDataFlagOn
>> reader SetDataExtent 0 511 0 511 0 511
>> reader SetDataScalarTypeToUnsignedShort
>> reader SetDataByteOrderToLittleEndian
>> reader SetFileName "bench.img"
>>
>> puts "about to update reader"
>> set time1 [clock clicks -milliseconds]
>> reader Update
>> set time2 [clock clicks -milliseconds]
>> puts "finished updating reader"
>> puts "reader update took [expr $time2-$time1] milliseconds"
>>
>> The read takes 15 seconds on my machine (Windows XP with service pack
>> 2, AMD
>> athlon 64 chipset 3000+, with 512 megs of memory). I am reading data
>> from
>> the IDE harddrive. Mathieu's timing was 3 seconds. This of course is
>> not
>> the newest machine out there, but it is not that old either.
>>
>> Then when I try to read my series of slices, my machine takes 45 seconds.
>> The only difference in reading the slice files and the bench.img
>> created by
>> ImageNoiseSource is that the bench.img is all three dimensions in one
>> file
>> (rather than a series of slices), and the bench.img file uses unsigned
>> shorts rather than shorts (but both are 2 bytes, right?).
>>
>> So here are my thoughts as to why the problem could be occurring--any
>> feedback would be appreciated:
>> 1. my computer is too slow--I don't think this is it
>> 2. the bench.img file only reads faster because it has just been
>> written to
>> memory and is probably still in the cache and therefore takes less
>> time to
>> access
>> 3. the fact that my slices are in series and 512 different files have
>> to be
>> read is the slow down
>> 4. the code running in tcl is slower than code running in c (I can
>> fix this
>> by calling a c function from tcl--but only if I think this is really the
>> problem)
>> 5. there is some other problem that I am unaware of--this is my worst
>> fear
>> :(
>>
>> Please help! All of the other feedback I have gotten before says that
>> the
>> read should take no more than a few seconds. 45 seconds is way too
>> long for
>> our customer and this is not even the largest filesize that will be used.
>>
>> Thanks,
>> Kate Kerekes
>>
>>
>>
>> _______________________________________________
>> This is the private VTK discussion list. Please keep messages
>> on-topic. Check the FAQ at: <http://public.kitware.com/cgi-bin/vtkfaq>
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtkusers
>>
> _______________________________________________
> This is the private VTK discussion list. Please keep messages on-topic.
> Check the FAQ at: <http://public.kitware.com/cgi-bin/vtkfaq>
> Follow this link to subscribe/unsubscribe:
> http://www.vtk.org/mailman/listinfo/vtkusers
>
More information about the vtkusers
mailing list