The fine grain, data-driven parallelism shown by neural models as the Boltzmann machine cannot be implemented in an entirely
efficient way either in general-purpose multicomputers or in networks of computers, which are nowadays the most common parallel
computer architectures.
In this paper we present a parallel implementation of a modified Boltzmann machine where the processors, with disjoint subsets
of neurons allocated, asynchronously compute the evolution of their neurons by using values that might not be updated for
the remaining neurons, thus reducing interprocessor communication requirements. An evolutionary algorithm is used to learn
the rules that allow the processors to cooperate by interchanging the local optima that they find while concurrently exploring
different zones of the Boltzmann machine state space. Thus, the way the processors interact changes dynamically during execution
of the algorithm, adapted to the problem at hand. Good figures for speedup with respect to the Boltzmann machine computation
in a uniprocessor computer have been experimentally obtained.
Key words Boltzmann machines - combinatorial optimization - evolutionary computation - multicomputers and networks of computers - parallel processing