  As modern architectures introduce additional heterogeneity and parallelism,
we look for ways to deal with this that do not involve specialising software to
every platform. In this paper, we take the Join Calculus, an elegant model for
concurrent computation, and show how it can be mapped to an architecture by a
Cartesian-product-style construction, thereby making use of the calculus'
inherent non-determinism to encode placement choices. This unifies the concepts
of placement and scheduling into a single task.
