Parallel programming/execution

G

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?
 
P

Peter Hermann

In said:
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.
 
T

Thomas Matthews

Otal said:
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
Or does it has to be re-written in some special way to be executed on the
cluster?
Off-topic for 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
 
O

osmium

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

Traveler

<Otal said:
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
 
E

E. Robert Tisdale

Otal said:
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.
 
G

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?
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
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top