Monday, March 18, 2013

Parallel interpreter determinism and load balancing opportunities

Last week Adam and Jan continued the work on Acumen's parallel interpreter. They implemented a version of the parallel interpreter regression test that, instead of comparing the output of an interpreter with a previously cached value, compares the output with that of a reference interpreter. They also conducted an experiment to test if the construction of a structure encoding the order in which changes to the object graph of an acumen model are discovered, is indeed necessary. The conclusion was that the structure is indeed needed to ensure that the parallel interpreter is deterministic. During this work a hypothesis about the scheduling strategy currently employed by the interpreter was formed. It seems that on each traversal of the object graph each available thread is only allocated work once, leading to a potentially unbalanced load distribution. This potential source of optimization opportunities will be investigated next.