  We introduce Seriema, a middleware that integrates RDMA-based remote
invocation, asynchronous data transfer, NUMA-aware automatic management of
registered memory, and message aggregation in idiomatic C++1x. Seriema supports
the notion that remote invocation and asynchronous data transfer are
complementary services that, when tightly-integrated, allow distributed data
structures, overlay networks, and Cloud & datacenter service applications to be
expressed effectively and naturally, resembling sequential code. In order to
evaluate the usability of Seriema, we implement a Monte-Carlo Tree Search
(MCTS) application framework, which runs distributed simulations given only a
sequential problem specification. Micro-benchmarks show that Seriema provides
remote invocations with low overhead, and that our MCTS application framework
scales well up to the number of non-hyperthreaded CPU cores while simulating
plays of the board game Hex.
