Yosberto Baro Carbonell
abstract
Thunk is a distributed runtime that evaluates pure functional computations on a cluster of peer nodes, without a central coordinator. Computations are expressed in a small functional language whose only parallel construct is a divide-and-conquer primitive, map and reduce are then built on it. Programs travel between nodes as data, so a node needs no prior knowledge of the programs it helps to run. Work is distributed by randomized work stealing and, since computations are pure, a piece lost with a failed node is simply recomputed by the node waiting for it: crashes are tolerated without replication. It was validated with automated tests on real additional nodes and with experiments on one machine and on two machines connected over the Internet.