[xquery-talk] Matrix Multiplication (JSONiq)

Hermann Stamm-Wilbrandt STAMMW at de.ibm.com
Mon Feb 3 07:24:41 PST 2014


Hi,

as other I do see neither JSONiq nor XQuery being able to compete with eg.
native C implemenation of matrix multiplication.

Your 200x200 example is interesting as it shows that JSONiq(JSON,
PT10.838593S) is now slower than XQuery(XML, PT9.03348S):
http://try.zorba.io/queries/xquery/elMs5bmRLr%2FZ0IHY5mr6YNWqgjI%3D
http://try.zorba.io/queries/xquery/FhH%2BPs3wjNB2xwTw%2BchwwMes2dw%3D


Mit besten Gruessen / Best wishes,

Hermann Stamm-Wilbrandt
Level 3 support for XML Compiler team and Fixpack team lead
WebSphere DataPower SOA Appliances
https://www.ibm.com/developerworks/mydeveloperworks/blogs/HermannSW/
https://twitter.com/HermannSW/
http://stamm-wilbrandt.de/GraphvizFiddle/
----------------------------------------------------------------------
IBM Deutschland Research & Development GmbH
Vorsitzende des Aufsichtsrats: Martina Koederitz
Geschaeftsfuehrung: Dirk Wittkopp
Sitz der Gesellschaft: Boeblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294


                                                                                                                                                
  From:       jean-marc Mercier <jeanmarc.mercier at gmail.com>                                                                                    
                                                                                                                                                
  To:         David Carlisle <davidc at nag.co.uk>,                                                                                                
                                                                                                                                                
  Cc:         Hermann Stamm-Wilbrandt/Germany/IBM at IBMDE, "talk at x-query.com Talk" <talk at x-query.com>                                             
                                                                                                                                                
  Date:       02/03/2014 12:30 PM                                                                                                               
                                                                                                                                                
  Subject:    Re: [xquery-talk] Matrix Multiplication (JSONiq)                                                                                  
                                                                                                                                                





Hi all,

I've tried the following JSON query with zorba, mimicking a NxN, with
N=200, matrix multiplications. Time is 10 sec on http://try.zorba.io/,
behaving with a cubic N^3 complexitity.
Do you really want to know what are the performances of standard linear
algebra library for such matrix multiplications ?




import module namespace datetime = "
http://www.zorba-xquery.com/modules/datetime";

declare variable $size := 200;

declare variable $A := [ for $i in 1 to $size return
    [
        for $j in 1 to $size return $i*$size+$j
    ]
];

let $R := ( datetime:current-time(),
  [
    for $i in 1 to count(jn:members($A)) return
    [
      for $k in 1 to count(jn:members($A)) return
        fn:sum(
          for $j in 1 to count(jn:members($A)) return
            $A($i)($j) * $A($j)($k)
        )
    ]
  ]
, datetime:current-time() )

return $R[count($R)] - $R[1]


2014-02-03 David Carlisle <davidc at nag.co.uk>:
  On 03/02/2014 10:56, Hermann Stamm-Wilbrandt wrote:
   PT1.713634S (JSONiq) versus PT9.77805S (XQuery)


  ooh interesting , I wonder where the bottleneck in the xquery is.
  Probably as Michael commented at some point earlier in the thread, the
  time to access the ith element of a sequence $a[$i].


  But the language doesn't _need_ to change, just if more people did it
  the xquery compilers would perhaps look out for sequences that are
  exclusively accessed via numeric filters and implement them in a way
  that gives constant time access. Having a separate array type does give
  them a big hint though:-)

  David


  ________________________________________________________________________
  The Numerical Algorithms Group Ltd is a company registered in England
  and Wales with company number 1249803. The registered office is:
  Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

  This e-mail has been scanned for all viruses by Star. The service is
  powered by MessageLabs.
  ________________________________________________________________________
  _______________________________________________
  talk at x-query.com
  http://x-query.com/mailman/listinfo/talk






More information about the talk mailing list