The Lookahead Optimization


In network models typically axonal delays are one or two orders of magnitude greater than the simulation step for prcesses within a single cell. A spike generated at simulation time T need not be delivered to a destination cell until time T + LT where LT is the axonal delay. This allows simulation nodes to operate in a loosely synchronized fashion, some being ahead of others, and it allows nodes to continue updating their cells while incoming spikes are in transit over the physical medium (e.g., Ethernet) which connects the CPUs. The amount of simulation time by which node A can get ahead of node B and still be sure it has not missed any spikes is known as the lookahead of A with respect to B.

In PGENESIS lookahead is controlled with three commands setlookahead, getlookahead, and showlookahead. The lookahead of node A with respect to node B is the minimum delay on all data paths from B to A i.e., the minimum axonal delay over all the connections from B to A. If there are no axonal paths from B to A, the lookahead is infinite because A's activity does not depend on B's. If there are non-spike messages, lookahead is dt because those messages deliver data on the next timestep. Additionally PGENESIS must be instructed to execute steps asynchronously.

It is wise to partition a model in such a way as to maximize lookahead between every pair of nodes.