AWARE [SYSTEMS] Imaging expertise for the Delphi developer
AWare Systems, Imaging expertise for the Delphi developer, Home TIFF and LibTiff Mailing List Archive

LibTiff Mailing List

TIFF and LibTiff Mailing List Archive
January 2016

Previous Thread
Next Thread

Previous by Thread
Next by Thread

Previous by Date
Next by Date

Contact

The TIFF Mailing List Homepage
This list is run by Frank Warmerdam
Archive maintained by AWare Systems



Valid HTML 4.01!



Thread

2016.01.25 18:25 "OpenMP enabled libtiff", by Aaron Boxer
2016.01.25 19:05 "Re: OpenMP enabled libtiff", by Aaron Boxer
2016.01.25 19:17 "Re: OpenMP enabled libtiff", by <kandel3@illinois.edu>
2016.01.25 19:18 "Re: OpenMP enabled libtiff", by Bob Friesenhahn
2016.01.25 20:21 "Re: OpenMP enabled libtiff", by Aaron Boxer
2016.01.25 20:45 "Re: OpenMP enabled libtiff", by Bob Friesenhahn
2016.01.25 23:27 "Re: OpenMP enabled libtiff", by <kandel3@illinois.edu>
2016.01.26 09:12 "Re: OpenMP enabled libtiff", by <jcupitt@gmail.com>
2016.01.26 13:45 "Re: OpenMP enabled libtiff", by Aaron Boxer
2016.01.26 14:46 "Re: OpenMP enabled libtiff", by Olivier Paquet
2016.01.26 16:01 "Re: OpenMP enabled libtiff", by Aaron Boxer
2016.01.26 17:10 "Re: OpenMP enabled libtiff", by Bob Friesenhahn
2016.01.26 19:32 "Re: OpenMP enabled libtiff", by Aaron Boxer
2016.01.26 19:29 "Re: OpenMP enabled libtiff", by Aaron Boxer
2016.01.26 20:36 "Re: OpenMP enabled libtiff", by Bob Friesenhahn
2016.01.27 18:32 "Re: OpenMP enabled libtiff", by Aaron Boxer
2016.01.27 19:55 "Re: OpenMP enabled libtiff", by Bob Friesenhahn
2016.01.29 13:28 "Re: OpenMP enabled libtiff", by Aaron Boxer
2016.01.29 14:46 "Re: OpenMP enabled libtiff", by Bob Friesenhahn
2016.01.29 15:48 "Re: OpenMP enabled libtiff", by Aaron Boxer
2016.01.29 15:49 "Re: OpenMP enabled libtiff", by Aaron Boxer
2016.01.29 18:12 "Re: OpenMP enabled libtiff", by Bob Friesenhahn
2016.01.26 09:36 "Re: OpenMP enabled libtiff", by Mat Maher
2016.01.26 09:52 "Re: OpenMP enabled libtiff", by Even Rouault
2016.01.26 14:22 "Re: OpenMP enabled libtiff", by Fred Rothganger
2016.01.27 18:51 "Re: OpenMP enabled libtiff", by Larry Gritz

2016.01.26 09:52 "Re: OpenMP enabled libtiff", by Even Rouault

Le mardi 26 janvier 2016 10:36:16, Mat Maher a écrit :
> > Hello List,
> > Is anyone interested in having OpenMP support in libtiff ?
> > Is this feasible?  I am planning on adding this feature for another
> > project
> >
> >I am working on, so I am trying to gauge interest.
> >
> > Thanks,
> > Aaron
> 
> libTiff performance is governed by two factors:
>  1). Performance of disk read/writes
>  2). Performance of compression/decompression routines (eg CPU)
> 
> The latter would benefit enormously from multi-threaded implementation,
> BUT, will ultimately be throttled by the former.
> 
> There are a few simple things which could be done to improve matters:
>  a). Buffer the entire file in memory for processing. HOWEVER, this would
> only work with a user switch input, as it's always possible the
> application TIFFs would be larger than available memory. 'Blasting' an
> entire file to/from disk maximises the transfer rate due to seek-times and
> DMA-setup latencies. In this scenario, you will end up reading/writing at
> the line-rate of the disk: which about as fast as you can get (and
> actually, for write operations, shows SATA as the faster medium for file
> sizes > SSD cache) b). Implement thread-per-strip CPU processing.
> 
> For these changes, I actually wouldn't use OpenMP. The TIFF strip
> arrangement is a perfect division for multi-threading utilisation. Trying
> to multi-thread at a lower granularity than this is likely to yield lower
> performance due to the compression/decompression libraries which are
> largely sequential in operation.

For what is worth, I've experimented some time ago in the GDAL TIFF driver, 
multi-treaded compression. This works like this : 
1) Uncompressed strips/tiles to write are sent to a queue
2) Worker threads fetch that uncompressed data from the queue, creates a in-
memory TIFF file of the dimension of the tile/strip with the desired 
compression options, and extract the resulting compressed data from the writen 
in-memory TIFF file.
3) The main thread collects the compressed data and write it to the main TIFF 
file with TIFFWriteRawTile / TIFFWriteRawStrip

This gives performance boost on slow compression methods such as Deflate.

Even

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com
_______________________________________________
Tiff mailing list: Tiff@lists.maptools.org
http://lists.maptools.org/mailman/listinfo/tiff
http://www.remotesensing.org/libtiff/