Parallel programming/execution

Discussion in 'C++' started by Guest, Apr 20, 2005.

  1. Guest

    Guest Guest

    Assume that we have a complex application with many math operations and it
    is written in an ANSI C++ code and running on a single PC without any
    problem.
    Is there an automatic way to execute the same application on a cluster of
    PCs to speed-up the execution? (How?)
    Or does it has to be re-written in some special way to be executed on the
    cluster?
     
    Guest, Apr 20, 2005
    #1
    1. Advertising

  2. In comp.software-eng Otal Hakswsi wrote:
    > Assume that we have a complex application with many math operations and it
    > is written in an ANSI C++ code and running on a single PC without any
    > problem.
    > Is there an automatic way to execute the same application on a cluster of
    > PCs to speed-up the execution? (How?)
    > Or does it has to be re-written in some special way to be executed on the
    > cluster?


    impossible to send direct mail: your email is incomplete.

    --
    --Peter Hermann(49)0711-685-3611 fax3758 -stuttgart.de
    --Pfaffenwaldring 27 Raum 114, D-70569 Stuttgart Uni Computeranwendungen
    --http://www.csv.ica.uni-stuttgart.de/homes/ph/
    --Team Ada: "C'mon people let the world begin" (Paul McCartney)
     
    Peter Hermann, Apr 20, 2005
    #2
    1. Advertising

  3. Otal Hakswsi wrote:

    > Assume that we have a complex application with many math operations and it
    > is written in an ANSI C++ code and running on a single PC without any
    > problem.
    > Is there an automatic way to execute the same application on a cluster of
    > PCs to speed-up the execution? (How?)

    You need to have synchronization across PCs, as well as communications.
    The _standard_ C++ language has no facilities for this; perhaps your
    platform does. Consult a newsgroup about your platform or operating
    system, not news:comp.lang.c++

    > Or does it has to be re-written in some special way to be executed on the
    > cluster?

    Off-topic for news:comp.lang.c++. Follow-ups set.
    Read the FAQs and Welcome.txt below.

    --
    Thomas Matthews

    C++ newsgroup welcome message:
    http://www.slack.net/~shiva/welcome.txt
    C++ Faq: http://www.parashift.com/c -faq-lite
    C Faq: http://www.eskimo.com/~scs/c-faq/top.html
    alt.comp.lang.learn.c-c++ faq:
    http://www.comeaucomputing.com/learn/faq/
    Other sites:
    http://www.josuttis.com -- C++ STL Library book
    http://www.sgi.com/tech/stl -- Standard Template Library
     
    Thomas Matthews, Apr 20, 2005
    #3
  4. Guest

    osmium Guest

    <Otal Hakswsi> wrote:

    > Assume that we have a complex application with many math operations and it
    > is written in an ANSI C++ code and running on a single PC without any
    > problem.
    > Is there an automatic way to execute the same application on a cluster of
    > PCs to speed-up the execution? (How?)
    > Or does it has to be re-written in some special way to be executed on the
    > cluster?


    Look for <concurrent c> on google.
     
    osmium, Apr 20, 2005
    #4
  5. Guest

    Traveler Guest

    In article <426628df$0$10307$>, <Otal
    Hakswsi> wrote:

    >Assume that we have a complex application with many math operations and it
    >is written in an ANSI C++ code and running on a single PC without any
    >problem.
    >Is there an automatic way to execute the same application on a cluster of
    >PCs to speed-up the execution? (How?)
    >Or does it has to be re-written in some special way to be executed on the
    >cluster?


    If your application already has lots of threads running concurrently,
    it will speed up automatically on a cluster or multiprocessing system.
    Otherwise, you will see no increase in performance. I believe some
    Linux cluster environments already have tools that will take a C++
    program and parallelize the threads automatically. Do a search on the
    web for "Linux cluster parallel tools" and see what you can find.

    Louis Savain

    The Silver Bullet: Why Software Is Bad and What We Can Do to Fix it
    http://users.adelphia.net/~lilavois/Cosas/Reliability.htm
     
    Traveler, Apr 20, 2005
    #5
  6. Otal Hakswsi wrote:

    > Assume that we have a complex application with many math operations
    > and it is written in an ANSI C++ code
    > and running on a single PC without any problem.
    > Is there an automatic way to execute the same application
    > on a cluster of PCs to speed-up the execution?


    Generally, no.

    > Or does it has to be re-written in some special way
    > to be executed on the cluster?


    We do this all the time.
    We use a Single Program - Multiple Data (SPMD) programming model
    and a standard Message Passing Interface (MPI) library:

    http://www.netlib.org/utk/papers/mpi-book/mpi-book.html

    http://www-unix.mcs.anl.gov/mpi/mpich/

    http://www.mpi-softtech.com/


    You might also ask this question
    in the comp.parallel and comp.parallel.mpi newsgroups.
    Of course, we will always be happy to answer any related questions here
    about the C++ computer programming langiage itself.
     
    E. Robert Tisdale, Apr 20, 2005
    #6
  7. Guest

    Guest Guest

    <Otal Hakswsi> wrote in message
    news:426628df$0$10307$...
    > Assume that we have a complex application with many math operations and it
    > is written in an ANSI C++ code and running on a single PC without any
    > problem.
    > Is there an automatic way to execute the same application on a cluster of
    > PCs to speed-up the execution? (How?)
    > Or does it has to be re-written in some special way to be executed on the
    > cluster?
    >

    The programming language best suited to solving this problem is Ada which
    has facilities for both distributed processing and concurrency built into the
    design of the language.

    You could design the architecture you need with Ada and incorporate your
    C code into that architecture. Ada is very friendly with C. There are
    built-in facilities for mixing your C code with Ada.

    The Ada Distributed Systems Annex allows you to distribute an application
    over multiple platforms while maintaining consistency of the overall design.
    Ada tasking allows you to have multiple active objects on each single
    processor. The language also includes excellent facilities for mutual
    exclusion.

    This approach, using Ada for the architecture while coding low-level
    source code in C has turned out to be a very powerful approach to
    solving problems of exactly the kind that you describe.

    Richard Riehle
     
    Guest, Apr 28, 2005
    #7
    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. mmf

    Parallel execution (CGI)

    mmf, Jun 24, 2005, in forum: Python
    Replies:
    0
    Views:
    436
  2. Soren
    Replies:
    4
    Views:
    1,350
    c d saunter
    Feb 14, 2008
  3. Vivek Menon
    Replies:
    5
    Views:
    3,503
    Paul Uiterlinden
    Jun 8, 2011
  4. Vivek Menon
    Replies:
    0
    Views:
    1,809
    Vivek Menon
    Jun 10, 2011
  5. wade
    Replies:
    5
    Views:
    175
Loading...

Share This Page