C++ source for parallel calculation is compiled (long_double_precision,
NO Microsoft compilers!) with define MPI_ROUTINES to include MPI functionality with a main server CPU (small fraction of run time) and clients coding (99.9% continuous). If he has 1023 CPUs or fewer it should be a happy camper. The command line for each radius interval includes MPI control and number of processors used.
Severe questions can be routed to the UK programmer who parallelized the serial code. Stuff like: To compile CHIpir.CPP use LAM-MPI. They have comprehensive instructions on installation.
LAM/MPI Parallel Computing
Compile,
mpiCC -DMPI_ROUTINES -O3 -o chipir chipir.cpp
The -DMPI_ROUTINES (as the name suggests) compiles in the MPI routines. Without it you get the serial single CPU version. To run it use a series of shell script command lines like
time mpirun -np 3 ./chipir 100 10 500 1 2 >> output.txt
-np 3" = how many CPU's to use. Use 1 more than the number of CPU's since one task is the "master" which is very lightweight and uses very little CPU at all. For a four-processor box first try -np 5
./chipir = executable process
100 = starting radius
10 = radius increment
500 = ending radius
1 = flag. Set to "1" for output to file.
2 = work units/CPU From 1-3 shows speedup. There is no advantage above 5. Multiple scripts may be loaded to dynamically fill each work unit queue as processes complete. At the end the process will not terminate until all CPUs finish. The last command line should all load "1."
Uncle Al will write the command lines based upon the timing run and real time cluster access available. If your sysop is clever with a cluster I'm all ears for hearing better strategies. Data look like (radius, angstroms; atoms; CHI)
42340.800 29620928954114 0.999999997537607374
42352.000 29644441206354 0.999999998910011431
42363.200 29667965859458 0.999999997922274660
42374.400 29691502978924 0.999999997623357328
----------------
Uncle Al
http://www.mazepath.com/uncleal/
(Toxic URL! Unsafe for children and most mammals)
http://www.mazepath.com/uncleal/qz4.htm