Exploiting Domain-Speci c Properties: Compiling Parallel Dynamic Neural Network Algorithms into E cient Code

Domain-speci c constraints can be exploited to implement compiler optimizations that are not otherwise feasible: Compilers for neural network learning algorithms can achieve near-optimal co-locality of data and processes and near-optimal balancing of load over processors, even for dynamically irregular problems. This is impossible for general programs, but restricting programs to the neural algorithm domain allows for the exploitation of domain-speci c properties: The operations performed by neural algorithms are broadcasts, reductions, and object-local operations only; the load distribution is regular with respect to the (perhaps irregular) network topology; changes of network topology occur only from time to time. A language, compilation techniques, and a compiler implementation on the MasPar MP-1 are described; quantitative results for the e ects of various optimizations used in the compiler are shown. Conservative experiments with weight pruning algorithms yield performance improvements of 27% due to load balancing; 195% improvement is achieved due to data locality, both compared to unoptimized versions. Two other optimizations, connection allocation and selecting the number of replicates, speed programs up by about 50% or 100%, respectively. This work can be viewed as a case study in exploiting domain-speci c information; some of the principles presented here may apply to other domains as well.

[1]  James A. Anderson,et al.  Neurocomputing: Foundations of Research , 1988 .

[2]  Michael Philippsen,et al.  Automatic alignment of array data and processes to reduce communication time on DMPPs , 1995, PPOPP '95.

[3]  Martin A. Riedmiller,et al.  Massively Parallel Training of Multi Layer Perceptrons With Irregular Topologies , 1995, ICANNGA.

[4]  Reinhard Männer,et al.  SYNAPSE-1: a high-speed general purpose parallel neurocomputer system , 1995, Proceedings of 9th International Parallel Processing Symposium.

[5]  Edith Schonberg,et al.  Factoring: a method for scheduling parallel loops , 1992 .

[6]  Gerd Kock,et al.  MiND: An Environment for the Development, Integration, and Acceleration of Connectionist Systems , 1997 .

[7]  Lutz Prechelt A parallel programming model for irregular dynamic neural networks , 1997, Proceedings. Third Working Conference on Massively Parallel Programming Models (Cat. No.97TB100228).

[8]  Xiao Liu,et al.  Benchmarking of the CM-5 and the Cray machines with a very large backpropagation neural network , 1994, Proceedings of 1994 IEEE International Conference on Neural Networks (ICNN'94).

[9]  John R. Gilbert,et al.  Automatic array alignment in data-parallel programs , 1993, POPL '93.

[10]  Ferdinand Hergert,et al.  Improving model selection by nonconvergent methods , 1993, Neural Networks.

[11]  Guy E. Blelloch,et al.  Implementation of a portable nested data-parallel language , 1993, PPOPP '93.

[12]  W. Pitts,et al.  A Logical Calculus of the Ideas Immanent in Nervous Activity (1943) , 2021, Ideas That Created the Future.

[13]  Lutz Prechelt,et al.  CuPit-2: a portable parallel programming language for artificial neural networks , 1997 .

[14]  Anthony M. Sloane,et al.  Eli: a complete, flexible compiler construction system , 1992, CACM.

[15]  Bruce Hendrickson,et al.  The Chaco user`s guide. Version 1.0 , 1993 .

[16]  Christian Jacob,et al.  A distributed network simulation environment for multi-processing systems , 1991, [Proceedings] 1991 IEEE International Joint Conference on Neural Networks.

[17]  Lutz Prechelt The CuPit compiler for the MasPar MP-1 and MP-2: a literate programming document , 1995 .

[18]  Martin A. Riedmiller,et al.  A direct adaptive method for faster backpropagation learning: the RPROP algorithm , 1993, IEEE International Conference on Neural Networks.

[19]  Lutz Prechelt,et al.  PROBEN 1 - a set of benchmarks and benchmarking rules for neural network training algorithms , 1994 .

[20]  Jill P. Mesirov,et al.  An Efficient Implementation of the Back-propagation Algorithm on the Connection Machine CM-2 , 1989, NIPS.

[21]  Holger Hopp,et al.  CuPit-2 - a parallel language for neural algorithms: language reference and tutorial , 1994 .

[22]  Tom Tollenaere,et al.  Decomposition and Mapping of Locally Connected Layered Neural Networks on Message-passing Multiprocessors , 1993, Parallel Algorithms Appl..

[23]  Michael Philippsen,et al.  Compiling machine-independent parallel programs , 1993, SIGP.