I have a function which I call using for loop. I want that when My
Java program is run on Dual Core its speed increases by twice and when
it run on Quad core its speed increase 4 time.
Here is the Code I am using.
const NUMBER=1000;
Public int int_x;
Public int[] Array1= new int[NUMBER];
init (){
for (int i=0;i<NUMBER;i++){
function_abc(i);
}
}
// function_abc returns same value for a given Value of "i".
function_abc(int i){
int_x++;
...
...
...
Array1[i]=i*5+int_x;
}
So in the end we get an Array[i] with the formula values. On a single
processor it goes through all the for loop in NUMBER times.
I want on Dual Core the Performance doubles by using Threads. So
function_abc(i); is Called in multiple threads and Speed increases X
times depending on number of X Processors the System has.
How can it be done, any idea.
So for Single Core it will have no spped increase.
For Dual Core Twice Speed
For Quad Core 4 Times speed is seen.
Bye
Sanny
> I have a function which I call using for loop. I want that when My
> Java program is run on Dual Core its speed increases by twice and when
> it run on Quad core its speed increase 4 time.
Amdahl's Law precludes a full linear speed increase with more processors, but
you should be able to reach some significant fraction with careful coding.
> Here is the Code I am using.
>
> const NUMBER=1000;
> Public int int_x;
> Public int[] Array1= new int[NUMBER];
I guarantee you that you aren't using this code, at least not in Java. This
stuff will not compile.
> init (){
> for (int i=0;i<NUMBER;i++){
[quoted text clipped - 21 lines]
>
> How can it be done, any idea.
I suggest that you write a full, single-core implementation and post it here
for comment. Make sure that you actually run your program, or try to. Even
if it doesn't do everything you plan, it should do something at every stage of
development. At the very least, this will give you compilable code to post to
Usenet, unlike now, or at the very, very least, compiler errors to ask about.
If you do ask about compiler errors, please post your entire short but
*complete* example with your question(s), and do literally copy and paste the
error message(s) into your post - do not paraphrase.
Any example should be an SSCCE - simple short complete compilable example (my
version of Andrew's acronym).

Signature
Lew
On Thu, 10 Jan 2008 01:24:47 -0800 (PST), Sanny
<softtanks@hotmail.com> wrote, quoted or indirectly quoted someone who
said :
>How can it be done, any idea.
A thread has a fairly high start up cost, so there is not much gained
to great a thread just to initialize an array. Also for threads to
work well they should not be poking at the same ram or they just trip
over each other.
So want to split your app up in ways that don't overlap, e.g.
computation and painting the GUI, or doing I/O and computing,
You might do it by splitting your data in 4 parts and turning a thread
loose on each part.
Design your app so you can vary the number of threads to optimal
performance determined by experiment.

Signature
Roedy Green Canadian Mind Products
The Java Glossary
http://mindprod.com