Next: Bibliography
Up: PGMAKE: A Portable Distributed
Previous: 4. Evaluation
5. Future Work
The initial version of pgmake serves as a proof-of-concept
implementation. We are actively exploring the following areas to
improve the performance and robustness of the system.
- Distribution and load-balancing.
PVM uses a simple round-robin load-balancing scheme when
scheduling tasks. It would be desirable to make more intelligent
choices concerning load-balancing, taking into account the actual load
on the PVM nodes.
- Improved node metrics.
PVM maintains a relative processor speed number
for each node, but does not seem to set it to an interesting value,
nor use it for any reason. It would be useful to use this number to
indicate the relative speeds of certain machines. A metric is needed
to be able to distinguish between multi-processor machines from
uni-processor ones.
- Investigate see-saw behavior in performance.
We would like obtain more data samples to confirm our theories on how
increasing job sizes compare to the number of processors. We would
also like to investigate the seemingly ``random'' behavior for make -j 1 when the PVM size changes.
- Real-time Handling of stdout and stderr.
In the current implementation, stdout and stderr are
buffered up into files and only sent back to the initiating process
when the spawned task has completed. We would like to implement
pvm3_ad to connects to its child process via two pipes,
and send bursts of stdout and stderr messages back to the
parent.
- Cross Compilation.
The GNU development suite of compiler, assembler and linker provide a
way to cross-compile binaries across dissimilar architectures.
Combining pgmake with cross-compilation can provide significant
performance boosts in generating binaries for architectures that are
either slower in computational speed or smaller in number.
Next: Bibliography
Up: PGMAKE: A Portable Distributed
Previous: 4. Evaluation
Erez Zadok
1999-02-17