I have the Java code:
public class Pi_Java_Sequential {
public static void main ( final String[] args ) {
final long n = 1000000000l ;
final double delta = 1.0 / n ;
final long startTimeNanos = System.nanoTime ( ) ;
double sum = 0.0 ;
for ( long i = 1 ; i <= n ; ++i ) {
final double x = ( i - 0.5 ) * delta ;
sum += 1.0 / ( 1.0 + x * x ) ;
}
final double pi = 4.0 * sum * delta ;
final double elapseTime = ( System.nanoTime ( ) - startTimeNanos )
/ 1e9 ;
System.out.println ( "==== Java Sequential pi = " + pi ) ;
System.out.println ( "==== Java Sequential iteration count = " + n
) ;
System.out.println ( "==== Java Sequential elapse = " + elapseTime
) ;
}
}
it compiles and executes fine:
javac -d . -sourcepath . Pi_Java_Sequential.java
java Pi_Java_Sequential
==== Java Sequential pi = 3.1415926535899708
==== Java Sequential iteration count = 1000000000
==== Java Sequential elapse = 18.592387429
Transforming this into what I thought would be the equivalent X10
program:
import x10.io.Console ;
public class Pi_X10_Sequential {
public static def main ( args : Rail[String] ! ) : void {
val n : long = 1000000000l ;
val delta : double = 1.0 / n ;
val startTimeNanos : long = System.nanoTime ( ) ;
var sum : double = 0.0 ;
for ( var i : long = 1 ; i <= n ; ++i ) {
val x : double = ( i - 0.5 ) * delta ;
sum += 1.0 / ( 1.0 + x * x ) ;
}
val pi : double = 4.0 * sum * delta ;
val elapseTime : double = ( System.nanoTime ( ) - startTimeNanos )
/ 1e9 ;
Console.OUT.println ( "==== X10 Sequential pi = " + pi ) ;
Console.OUT.println ( "==== X10 Sequential iteration count = " + n
) ;
Console.OUT.println ( "==== X10 Sequential elapse = " + elapseTime
) ;
}
}
I was a bit flabbergasted to find:
x10c Pi_X10_Sequential.x10
x10 Pi_X10_Sequential
==== X10 Sequential pi = 3.1415926535899708
==== X10 Sequential iteration count = 1000000000
==== X10 Sequential elapse = 94.852492972
Is it really the case that X10 code is 8 times slower than Java code for
tight loop arithmetic? Surely not. I am hoping there is something
clearly obviously wrong with my X10 code.
--
Russel.
=============================================================================
Dr Russel Winder t: +44 20 7585 2200 voip: sip:[email protected]
41 Buckmaster Road m: +44 7770 465 077 xmpp: [email protected]
London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
X10-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/x10-users