Dome
Dot Product Example Program
This program computes a simple dot product using Dome dVectors. The dVectors
are block distributed and can be load balanced or checkpointed as the program
is running.
main()
{
// Define the environment to have 5 tasks
dome myenv("dprod", 5);
// Define a few vectors
dVector x(myenv, 1024);
dVector y(myenv, 1024);
dVector z(myenv, 1024);
float sum;
// These assignments happen in parallel
x = 7;
y = 13;
// This multiply happens in parallel
z = x * y;
sum = z.gsum();
}
Objects not compilers
Notice that the syntax is similar to Fortran90. Rather than implementing
this with a compiler, the funcionality is achieved by developing a library
of Dome objects written in C++ using PVM. This makes Dome very portable
and allows us to experiment with different stategies for load balancing,
fault tolerance, and the expression of parallelism.