Using Java with Dual & Quad Processors.

Discussion in 'Java' started by Sanny, Jan 10, 2008.

  1. Sanny

    Sanny Guest

    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*5+int_x;
    }

    So in the end we get an Array 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
    Sanny, Jan 10, 2008
    #1
    1. Advertising

  2. Sanny

    Lew Guest

    Sanny wrote:
    > 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++){
    >
    > function_abc(i);
    > }
    > }
    >
    > // function_abc returns same value for a given Value of "i".
    >
    > function_abc(int i){
    > int_x++;
    > ....
    > ....
    > ....
    > Array1=i*5+int_x;
    > }
    >
    > So in the end we get an Array 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.


    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).

    --
    Lew
    Lew, Jan 10, 2008
    #2
    1. Advertising

  3. Sanny

    Roedy Green Guest

    On Thu, 10 Jan 2008 01:24:47 -0800 (PST), Sanny
    <> 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.
    --
    Roedy Green Canadian Mind Products
    The Java Glossary
    http://mindprod.com
    Roedy Green, Jan 10, 2008
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Kamilche

    Quad Perspective Transformation

    Kamilche, Feb 1, 2007, in forum: Python
    Replies:
    1
    Views:
    929
    Gabriel Genellina
    Feb 1, 2007
  2. Sanny
    Replies:
    29
    Views:
    990
    Twisted
    Jul 25, 2007
  3. Sanny
    Replies:
    4
    Views:
    431
    Mark Space
    Feb 3, 2008
  4. Malcolm Greene
    Replies:
    1
    Views:
    642
    Paul Rubin
    Apr 7, 2008
  5. windchen1214
    Replies:
    0
    Views:
    285
    windchen1214
    Nov 20, 2008
Loading...

Share This Page