S2000 Vintage Owners Knowledge, age and life experiences represent the members of the Vintage Owners

Calling in the geeks

Thread Tools
 
Old Sep 26, 2008 | 08:23 AM
  #1  
boltonblue's Avatar
Thread Starter
Member (Premium)
20 Year Member
Liked
Loved
Community Favorite
 
Joined: Jul 2002
Posts: 37,311
Likes: 6,277
From: bolton
Default Calling in the geeks

I had the opportunity to attend a conference this week on high performance computing.
This is big supercomputing stuff but in the embedded space.
Unless you've been living in a cave you seen the advertisements for multiple core processors.
This number of cores isn't going to get smaller. Plans are out there for tens, hundreds or even thousands of processors on a single chip.
Suddenly now that silicon is real, people are trying to figure out how to make them work as programming in parallel is actually fairly hard to do.
as a side note, This actually isn't really a surprise to a lot of us who been in the trenches of this world for a long time.

So one of the professors from a little 3 letter technical school nearby had decided to teach a course in parallel computing. He quickly realized that he had to first deal with teaching the aspects of performance computing first.
Most students now have been trained in and are working in languages, JAVA etc, which have totally abstracted hardware out of the picture.

So cutting to the chase here, the speaker was curious about the performance difference in execution times between standard C and Java.
He coded up an FFT in java and in C and benchmarked the results.

Hopefully there are enough geeks here to weigh in but would any care to guess if there was a difference and what the performance multiple was?


I'll let it sit for a day or two to give people a chance to answer.
Reply
Old Sep 26, 2008 | 08:43 AM
  #2  
timdonna1's Avatar
15 Year Member
 
Joined: Jun 2007
Posts: 1,016
Likes: 0
From: Ocala, FL
Default

I have my Java in the morning.....in my travel mug.....sorry, couldn't resist.
Reply
Old Sep 26, 2008 | 09:09 AM
  #3  
tof's Avatar
tof
15 Year Member
 
Joined: Apr 2007
Posts: 16,330
Likes: 2,605
From: Long Beach, MS
Default

lol, tim

I would expect the c to run at least twice as fast. I'm assuming there were no monkeys in the works for either benchmark, like cached code (or lack there-of) and that the C code was compiled and that the compiler was one of recent enough vintage to be able to produce multi-threaded object code. (If that's still what it's called )
Reply
Old Sep 26, 2008 | 09:11 AM
  #4  
Legal Bill's Avatar
20 Year Member
Liked
Loved
Community Favorite
 
Joined: Oct 2002
Posts: 34,130
Likes: 126
From: Canton, MA
Default

Hi Jerry.
Reply
Old Sep 27, 2008 | 06:22 AM
  #5  
daktruckie99's Avatar
Registered User
 
Joined: May 2007
Posts: 8,742
Likes: 4
From: Berkshires, MA
Default

C code flies compared to Java. Not only is memory management awful with Java it needs to run the JVM in the background.

Tho I feel like with you asking the question, they got Java to perform faster? What did the test consist of?
Reply
Old Sep 27, 2008 | 07:39 AM
  #6  
darkknight1999's Avatar
 
Joined: Jun 2001
Posts: 11,288
Likes: 0
From: Hopedale, MA
Default

That's what I was thinking... like its a trick question Hi Jerry
Reply
Old Sep 27, 2008 | 10:54 AM
  #7  
Chazmo's Avatar
Gold Member (Premium)
20 Year Member
Liked
Loved
 
Joined: Jun 2002
Posts: 42,315
Likes: 45
From: Central Massachusetts
Default

I'm old school, and C has been my language of choice for over two decades. I've used other languages, but I've only dabbled a little bit with Java. C has really done the trick for us systems-level geeks.

Java runs in a virtual machine environment, and I would expect it to be a lot slower than an equivalent C program which gets compiled into a native machine language.

Hi, Jerry. Good to see you today!
Reply
Old Sep 27, 2008 | 01:14 PM
  #8  
boltonblue's Avatar
Thread Starter
Member (Premium)
20 Year Member
Liked
Loved
Community Favorite
 
Joined: Jul 2002
Posts: 37,311
Likes: 6,277
From: bolton
Default

ok since a few people have posted...
Mike if I recall correctly, it was just a straight 1K by 1k butterfly FFT.
same standard PC platform for both.

The java implementation was 200,000 times slower than C.

I fully expected java to be much slower but not by anywhere near that amount.
The other parts that were not benchmarked were memory use and power dissipation.
Obviously heavy floating point is involved but I think it really just died in the contructor-malloc-memcopy destructor-dealloc loops.
Reply
Old Sep 27, 2008 | 01:21 PM
  #9  
zzziippyyy's Avatar
20 Year Member
 
Joined: Mar 2005
Posts: 78,840
Likes: 7
From: On yo puter screen
Default

Originally Posted by boltonblue,Sep 27 2008, 05:14 PM
ok since a few people have posted...
Mike if I recall correctly, it was just a straight 1K by 1k butterfly FFT.
same standard PC platform for both.

The java implementation was 200,000 times slower than C.

I fully expected java to be much slower but not by anywhere near that amount.
The other parts that were not benchmarked were memory use and power dissipation.
Obviously heavy floating point is involved but I think it really just died in the contructor-malloc-memcopy destructor-dealloc loops.
Jerry dont you mean


constructor-malloc-memcopy destructor-dealloc loops.





Ya java is slow, always will be.
Reply
Old Sep 27, 2008 | 01:25 PM
  #10  
Morris's Avatar
Registered User
20 Year Member
 
Joined: Oct 2000
Posts: 7,401
Likes: 1,104
From: Napa
Default

Originally Posted by zzziippyyy,Sep 27 2008, 01:21 PM


constructor-malloc-memcopy destructor-dealloc loops.






Jeez, I hate it when that happens.
Reply



All times are GMT -8. The time now is 01:05 PM.