Skip to content

Tinsel 0.8

Latest
Compare
Choose a tag to compare
@mn416 mn416 released this 01 Jul 07:18
· 91 commits to master since this release
d11655e

This release introduces per-board programmable routers, extending mailbox-local multicast (Tinsel 0.7) with global multicast features. In particular, a thread can efficiently send a message to multiple threads distributed over multiple boards using programmable routers. Programmable routers also allow the work of sending a message to multiple destinations to be completely offloaded from the cores; a single message can be sent to the router, which will take care of the multicast. There is a trade-off here between offloading work from the cores and overloading the programmable routers. In our experience, a mix of local sending and offloading works best.

The Tinsel API is backwards compatible with Tinsel 0.7. We've added support for two send slots per thread, as requested by colleagues. See tinselSendSlotExtra() and HostLinkParams::useExtraSendSlot.

POLite has been updated to use programmable routers (currently for any message destined for multiple boards). We have also improved the runtime of the POLite mapper in a couple of ways: (1) mailbox-local routing keys are now calculated much more efficiently; (2) we use OpenMP to parallelise the hierarchical partitioning stage. Various static and dynamic parameters to POLite have been added and documented.

See the README for more details.