Choreo is a measurement-based method for placing applications in the cloud to minimize an objective function such as application completion time. Choreo makes fast measurements of cloud networks using packet trains as well as other methods, profiles application network demands using a machine-learning algorithm, and places applications using a greedy heuristic, which in practice is much more efficient than finding an optimal solution.
There are two Choreo-related publications:
Choreo: Network-Aware Task Placement for Cloud Applications
K. LaCurts, S. Deng, A. Goyal, H. Balakrishnan. IMC 2013
A Plan for Optimizing Network-Intensive Cloud Applications
K. LaCurts, S. Deng, H. Balakrishnan. MIT-CSAIL-TR-2013-003
All of our EC2 measurements, as well as the scripts to create the
graphs as they appear in the paper, are available
on github. Simply
run:
› git clone git://github.com/katrina/choreo.git