This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: RE: Re: XSLT and parallel processing


> > Hello developers, is there a single XSLT processor that will
> > make use of a
> > multiprocessor platform in executing a transformation?
> 
> I think if there were, we'd know about it.
> 
> The design challenge, of course, is making sure that the synchronisation
> overheads don't swamp the gains. A common experience with parallel execution
> is that only 30% of the run time turns out to be parallelisable - for
> example, it's hard to see how you could do the XML parsing, tree building,
> and result tree serialisation in parallel.

I think the above statistic is from attempts to parallelize imperative style
programs -- not functional style ones. It is obvious that in the former
synchronisation problems will prevail.

What we're talking about is to perform in parallel the "sequential" flow of the
transformation, e.g.:

<xsl:apply-templates select="$nodeset1"/>
<xsl:apply-templates select="$nodeset2"/>
<xsl:apply-templates select="$nodeset3"/>

or

<xsl:call-template name="someDvCqtemplate">
  <xsl:with-param name="theNodeSet" select="$half1"/>
</xsl:call-template>
<xsl:call-template name="someDvCqtemplate">
  <xsl:with-param name="theNodeSet" select="$half2"/>
</xsl:call-template>

etc...

In nontrivial transformations the time to perform such parts of a transformation
(essentially all content-producers) may be 50%, 80% or even higher of the total time
to perform the transformation.

A simple example (only to illustrate my point!) is reversing a 1MB string using a
"divide and conquer" algorithm. It must be obvious, that much more than 30% of the
time is parallelizable in this case. 

(It is obvious that nothing will be gained in "parallelization" of a head-then tail
recursive algorithm.)

And the majority of simple recursive algorithms have their "divide and conquer"
counterparts.

Exploiting parallelism will make "practical" transformations that take prohibitively
long time if handled sequentially, thus increasing the power and usefulness of XSLT
applications.

Cheers,
Dimitre Novatchev.

__________________________________________________
Do You Yahoo!?
Get email alerts & NEW webcam video instant messaging with Yahoo! Messenger. http://im.yahoo.com

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]