Thanks Bob,

Very interesting. Will take a look on that.

Regards
Marti
Original Message:
-----------------
From: Bob Friesenhahn bfrie...@simple.dallas.tx.us
Date: Fri, 17 Dec 2010 20:35:09 -0600 (CST)
To: marti.ma...@littlecms.com, rox...@gmail.com,
Lcms-user@lists.sourceforge.net
Subject: Re: [Lcms-user] Multi-Threading Best Practices


On Fri, 17 Dec 2010, Marti.Maria wrote:
> 
> On the other hand we have the 1-pixel cache. This is very convenient on
slow interpolation methods when
> most of the pixels in the image are similar. Obviously, caching means the
transform should store the
> result of last processed pixel, then in the case two threads are using
the same transform at the same
> time, memory read/write operations on this value may clash and therefore
you need some sort of semaphore.
> Ok, you can use a semaphore (the pthreads) or just get rid of the cache
enterely. Please note that in
> some situations the cache is not used at all, i.e., on matrix-shaper to
matrix-shaper 8 bit, it is
> actually faster to do always the computations, so the cache schema is
discarded on this case. On CMYK
> trilinear, cache is being used as interpolation tends to be slow.

In my experience, both Windows and POSIX provide thread specific data 
("TSD") APIs which are much more efficient than using mutexes for 
doing things like accessing redundant caches without API 
modifications.  The way this works is that your pointer is stored in a 
thread-specific area so that it is found efficiently with one array 
indexing operation.  TSD could be used to support the single-pixel 
cache you mention.

In GraphicsMagick I use this approach in the random number generator 
to store per-thread random number kernels.  Random number generation 
performance went up by many times as compared to sharing one kernel 
via a mutex.

Bob
-- 
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,    http://www.GraphicsMagick.org/


--------------------------------------------------------------------
mail2web LIVE – Free email based on Microsoft® Exchange technology -
http://link.mail2web.com/LIVE



------------------------------------------------------------------------------
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots, take your collaborative environment
to the next level, and enter the era of Social Business.
http://p.sf.net/sfu/lotusphere-d2d
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user

Reply via email to