[gdal-dev] GDAL Speed Optimization

Seth Price seth at pricepages.org
Thu Jun 10 05:07:12 EDT 2010


I'm on a Mac, so I normally use Shark for profiling. It's included  
with Apple's developer tools.

I would definitely try running outside of a virtual machine  
environment. That might be your problem, but you won't know until you  
try.
~Seth


On Jun 10, 2010, at 2:46 AM, stefano.moratto at gmail.com wrote:

> I'm working on a VirtualMachine running on an usb hdd and my  
> customer use iMac laptop so I can't change disk.
>
> The primary dataset is composed by a lot of jpeg download from  
> internet and then cached to disk.
> I think the performance slowdown is caused after the creation of the  
> virtual dataset because and it is present only when the output  
> bitmap has the resolution of the printer (considering alwarys the  
> sampre geographic area). All the output bitmaps, exept the dataset's  
> jpeg, are in memory and the workingset of the application does not  
> exeed the 256 MB
>
> Can you suggest a profiler?
>
> Thanks,
> Stefano
>
> Il giorno 10/giu/2010 10.31, Seth Price <seth at pricepages.org> ha  
> scritto:
> > Unfortunately, both nearest neighbor and bilinear are probably not  
> CPU
> >
> > bound, so speeding up their processing won't help. They are  
> probably I/O
> >
> > bound, so you might need faster disks. (Though I can test this  
> later in my
> >
> > project.) Have you tried running a profiling tool on GDAL while  
> you're
> >
> > running the warper?
> >
> >
> >
> > I've just started the OpenCL project, so it's still pretty  
> immature. I'm
> >
> > still discussing the best way to integrate an OpenCL warper into  
> existing
> >
> > code.
> >
> > ~Seth
> >
> >
> >
> >
> >
> > On Thu, June 10, 2010 2:26 am, Stefano Moratto wrote:
> >
> > > Seth,
> >
> > >
> >
> > >         You have been choosen a very interesting project.
> >
> > >
> >
> > >
> >
> > > I use the following :
> >
> > >
> >
> > > hWarp := GDALAutoCreateWarpedVRT (hSized,
> >
> > >                                        nil,
> >
> > >                                         PChar(FMapSRSWkt),
> >
> > >
> >
> > > GDALResampleAlg_GRA_NearestNeighbour,
> >
> > >                                         0.5,
> >
> > >                                     nil);
> >
> > >
> >
> > > where hSized is a
> >
> > >
> >
> > > hSized =  F (hDataset) ;
> >
> > >
> >
> > > F (hDataset) := Virtual Dataset of hDataset. I use it for in  
> memory
> >
> > > resizing
> >
> > > .
> >
> > > It is generated by: (I do not write all the details but I think  
> it is
> >
> > > clear)
> >
> > >
> >
> > >
> >
> > > VRTAddSimpleSource (poVRTBand,
> >
> > >                           poSrcBand,
> >
> > >                              Round(anSrcWin[0]),
> >
> > >                           Round(anSrcWin[1]),
> >
> > >                              Round(anSrcWin[2]),
> >
> > >                           Round(anSrcWin[3]),
> >
> > >                              0, 0,
> >
> > >                           size.cx,
> >
> > >                           size.cy,'Bilinear', 0.0 );
> >
> > >
> >
> > >
> >
> > > and hDataset = GDALOpen( ... "openstreet.xml" )
> >
> > >
> >
> > > Hence I use
> >
> > > 1) ,'Bilinear' for zooming
> >
> > > 2) NearestNeighbour for warping.
> >
> > >
> >
> > >
> >
> > > What is the state of your project?
> >
> > >
> >
> > > Stefano
> >
> > >
> >
> > >
> >
> > > On Thu, Jun 10, 2010 at 9:52 AM, Seth Price seth at pricepages.org>  
> wrote:
> >
> > >
> >
> > >> >1) hw accelerated functions as IPP or GPU (e.g CUDA)
> >
> > >>
> >
> > >> This is my (ongoing) Google Summer of Code project, except I'm  
> using
> >
> > >> OpenCL. :D
> >
> > >>
> >
> > >> What resampling algorithm are you using?
> >
> > >> ~Seth
> >
> > >>
> >
> > >>
> >
> > >> On Thu, June 10, 2010 1:49 am, Stefano Moratto wrote:
> >
> > >> > I use GDAL in my traffic optimization CAD program.
> >
> > >> > It is a Win32 application written in DELPHI that uses GDAL  
> "C" API -
> >
> > >> the
> >
> > >> > binding was autogenerated by my SWIG module for object pascal.
> >
> > >> >
> >
> > >> > I use GDAL to download tiles (jpeg) from OpenstreetMap and to  
> compose
> >
> > >> a
> >
> > >> > bitmap of the area that is being viewed. The resulting bitmap  
> (not
> >
> > >> > compressed) is warped  and displayed.
> >
> > >> >
> >
> > >> > The performances are quite acceptable but when I try to print  
> they are
> >
> > >> > not.
> >
> > >> >
> >
> > >> > The drawing to be printed has a resolution larger of the screen
> >
> > >> (Screen :
> >
> > >> > 1024x1024, Printer 4096 x 4094 in A4 and 9000 x 9000 in A3
> >
> > >> approximately).
> >
> > >> > I think tha the bottleneck could be found in:
> >
> > >> > 1) jpeg decompression.
> >
> > >> > 2) bitmap interpolation (I use the low qualitiy settings).
> >
> > >> > 3) warping ( I use an approsimated warping function).
> >
> > >> >
> >
> > >> > An increase of performance could be achieved using
> >
> > >> > 1) hw accelerated functions as IPP or GPU (e.g CUDA)
> >
> > >> > 2) parallel alghorithms that takes advantage from multicore CPU
> >
> > >> >
> >
> > >> > Has someone already approched these problems?
> >
> > >> >
> >
> > >> > Regards,
> >
> > >> > Stefano
> >
> > >> >
> >
> > >> >
> >
> > >> > --
> >
> > >> > Dr.Eng. Stefano Moratto
> >
> > >> > stefano.moratto at gmail.com
> >
> > >> > stefano.moratto at csiat.it
> >
> > >> > http://www.csiat.it - Traffic Optimization Software
> >
> > >> > _______________________________________________
> >
> > >> > gdal-dev mailing list
> >
> > >> > gdal-dev at lists.osgeo.org
> >
> > >> > http://lists.osgeo.org/mailman/listinfo/gdal-dev
> >
> > >>
> >
> > >>
> >
> > >>
> >
> > >
> >
> > >
> >
> > > --
> >
> > > Dr.Eng. Stefano Moratto
> >
> > > stefano.moratto at gmail.com
> >
> > > stefano.moratto at csiat.it
> >
> > > http://www.csiat.it - Traffic Optimization Software
> >
> > >
> >
> >
> >
> >
> >_______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/gdal-dev



More information about the gdal-dev mailing list