A Declarative Distributed Constraint Optimization Platform
Introduction to Cologne
Cologne is a declarative optimization platform that enables constraint optimization problems (COPs) to be declaratively speciﬁed and incrementally executed in distributed systems. Cologne integrates the RapidNet declarative networking engine with the Gecode constraint solver. Cologne uses the Colog declarative language that combines distributed Datalog used in declarative networking with language constructs for concisely specifying goals and constraints used in COPs. We believe Cologne platform has tremendous practical value in facilitating extensible distributed systems optimizations:
- Cologne can ﬂexibly support a wide range of policy-based optimizations in distributed systems (e.g., cloud computing and wireless networking).
- Cologne results in orders of magnitude (about 100X) less code compared to imperative implementations.
- Cologne is highly efﬁcient with low overhead and fast convergence times.
Cologne system overview
Boon Thau Loo (University of Pennsylvania)
Lu Ren (Bank of America)
Harjot Gill (University of Pennsylvania)
Xiaozhou Li (Princeton University)
Richardo Correa (Lockheed Martin)
Shiv Muthukumar (Amazon)
Taher Saeed (DramaFever)
Yash Saini (Amazon)
Contact us via email to get a copy of the current release (2012). The current release has been fully tested on Ubuntu 10.04 32-bit. Support for Ubuntu 12.04 64-bit has been planned. If any bugs or problems, please contact us.
To compile Cologne, please first install the following pre-requisites:
- Flex and Bison
- OpenSSL library
- The GNU MP Bignum Library
- Boost Library
You can install them using one command in Ubuntu:
sudo apt-get install build-essential flex bison libssl-dev libgmp3-dev libboost-all-dev
./sudo make install
(Note: if you have already installed an older version of Gecode, e.g., the default one provided by Ubuntu repository, please uninstall it before installing the newer one.)
If you see “build finished succesfully”, congratulations! You are ready to go.
There are a bunch of test cases in the folder examples/. For quick compiling, initially all those test cases are commented out. Here is one example showing how to run the use case Tcloud.
First, Enter the Cologne foler. edit src/wscript, find the
ine ‘application/tcloud’ and uncomment it. (Note: since this
is Python code, redundent spaces or tabs may cause compilation error,
Second, edit examples/wscript, find the two lines
contains ‘tcloud-test’, obj =
bld.create_ns3_program(‘tcloud-test’) obj.source =
‘tcloud-test.cc’, and uncomment them.
Finally, edit examples/rapidnet-applications.h, find all lines containing ‘tcloud’ or ‘TCLOUD’, and uncomment them.
Now you are ready to run the Tcloud application. To execute a Cologne
./waf --run "examples/<application-name> <input-file-name>"
In this case, tcloud-test can run without input:
./waf --run examples/tcloud-test
A successful execution will return information including runtime, number of solutions found, goal value of the found solution.
Cologne: A Declarative Distributed Constraint Optimization Platform. (PDF)
Changbin Liu, Lu Ren, Boon Thau Loo, Yun Mao, and Prithwish Basu.
38th International Conference on Very Large Databases (VLDB’12).
PUMA: Policy-based Unified Multi-radio Architecture for Agile Mesh Networking. (PDF) (Demo)
Changbin Liu, Ricardo Correa, Harjot Gill, Tanveer Gill, Xiaozhou Li, Shivkumar Muthukumar, Taher Saeed, Boon Thau Loo, Prithwish Basu
4th International Conference on Communication Systems and Networks (COMSNETS), Jan, 2012.
Declarative Automated Cloud Resource Orchestration. (PDF)
Changbin Liu, Boon Thau Loo, and Yun Mao.
ACM Symposium on Cloud Computing (SOCC), Cascais, Portugal, Oct 2011.
Declarative Policy-based Adaptive Mobile Ad Hoc Networking. (PDF)
Changbin Liu, Richardo Correa, Xiaozhou Li, Prithwish Basu, Boon Thau Loo, and Yun Mao.
ACM/IEEE Transactions on Networking (TON), 2011.
Declarative Policy-based Adaptive MANET Routing. (PDF)
Changbin Liu, Rick Correa, Xiaozhou Li, Prithwish Basu, Boon Thau Loo, Yun Mao.
The 17th IEEE International Conference on Network Protocols (ICNP), Princeton, New Jersey, Oct, 2009.
We appreciate support from:
NSF CNS-0845552 (CAREER)
NSF CNS-1040672 (FIA grant)