Definitely a good spot to dip a toe in the water.  Please post to let us
know how it works out.

On Mon, Nov 30, 2015 at 9:52 AM, Kay, Jim <[email protected]> wrote:

> *“Another operation which uses a recursive tree structure is
> CascadedPolygonUnion.  This should be fairly easy to make parallel, I think*
> ”
>
>
>
> Exactly the same one I was thinking of! (and just started to look at). The
> new concurrent classes in JDK 8 look promising, in particular the
> RecursiveTask and ForkJoinPool.
>
>
>
> Jim
>
>
>
>
>
> *From:* Martin Davis [mailto:[email protected]]
> *Sent:* 30 November 2015 17:41
> *To:* Kay, Jim
> *Cc:* [email protected]
> *Subject:* Re: [Jts-topo-suite-user] JTS and Parallel Computing
>
>
>
> I've given parallel computation with JTS only some casual thought, but one
> thing that occurred to me is that there's two ways to parallelize geometry
> computation with JTS.  The first is what I'll call *external* parallelism.
> In this scenario JTS itself runs sequentially, but the invoking process is
> parallelized.  In many cases the client process is easily parallelizable,
> so this provides improved throughput for low effort.
>
>
>
> The other approach is *internal* parallelism, in which JTS algorithms are
> reworked to offer some degree of multi-execution. This sounds like what
> you're thinking of.  Is it the case that the frameworks mentioned can only
> improve performance for internal parallelism?  (In which case I'm curious
> to know why this is - and to what extent it's in fact possible.)
>
>
>
> For internal parallelism, the obvious place to look is at the major loops
> in the processes.  In the case of overlay operations, this would be the
> noding phase.  Ironically, the algorithms which provide best performance in
> the sequential case often are not ones which parallelize.  For instance,
> currently overlay uses a sweepline algorithm for noding
> (SimpleMCSweepLineIntersector), which is inherently sequential.  To
> parallelize this it would be better to use something like MCIndexNoder,
> which iterates over a set of unordered chains.
>
>
>
> In the case of distance, the current (inefficient) algorithm iterates over
> a set of unordered geometry "facets", so this should be easily
> parallelized.  However, there's a much more efficient approach which is to
> use a Branch-and-Bound algorithm over two spatial indexes.  Perhaps this
> would be harder to parallelize?
>
>
>
> Another operation which uses a recursive tree structure is
> CascadedPolygonUnion.  This should be fairly easy to make parallel, I think.
>
>
>
> One worthy goal would be to generalize the code so that it is easy to
> switch between parallel and sequential execution modes.  How hard would
> this be?
>
>
>
> On Mon, Nov 30, 2015 at 12:44 AM, Kay, Jim <[email protected]> wrote:
>
> I am starting to think about dipping my toe in the water of Java parallel
> computing; possibly using JCuda for gpu calculations, or PJ2 for
> everything, or possibly MPJ-Express.
>
> Has anybody got any experience or advice of using JTS in a parallel Java
> world?
>
>
>
> Our application principally uses a lot of basic Polygon operations (union,
> intersection, distance between geometries).
>
> Can anybody provide any useful pointers as to which core Geometry routines
> might benefit from speedup by being rewritten to use parallel methods?
>
>
>
> Thanks.
>
>
>
> *Jim*
>
>
>
> *Jim Kay*
>
> *Principal Engineer*
>
> Tel:   +44 (0) 1332 223229
>
> Mob:   +44 (0) 7715 536828
>
> Email: [email protected]
>
>
>
> [image: line]
>
>
>
> interfleetgroup.com <http://www.interfleetgroup.com/>   |   snclavalin.com
>
>
>
>
>
> ------------------------------------------------------------------------------
> Go from Idea to Many App Stores Faster with Intel(R) XDK
> Give your users amazing mobile app experiences with Intel(R) XDK.
> Use one codebase in this all-in-one HTML5 development environment.
> Design, debug & build mobile apps & 2D/3D high-impact games for multiple
> OSs.
> http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140
> _______________________________________________
> Jts-topo-suite-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jts-topo-suite-user
>
>
>
------------------------------------------------------------------------------
Go from Idea to Many App Stores Faster with Intel(R) XDK
Give your users amazing mobile app experiences with Intel(R) XDK.
Use one codebase in this all-in-one HTML5 development environment.
Design, debug & build mobile apps & 2D/3D high-impact games for multiple OSs.
http://pubads.g.doubleclick.net/gampad/clk?id=254741911&iu=/4140
_______________________________________________
Jts-topo-suite-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jts-topo-suite-user

Reply via email to