Carnegie Mellon University

Getting Started

Setup and Installation for Mac OSx

brew cask install java
brew install maven
brew install python
pip install awscli --upgrade --user
brew install jq
git clone https://github.com/MalharSC/aws_master_worker_framework.git

Setup and Installation for Ubuntu

sudo apt-get update
sudo apt-get install -y default-JDK
sudo apt-get install -y maven
sudo apt install python-pip
pip install awscli --upgrade --user
sudo apt-get install jq
git clone https://github.com/MalharSC/aws_master_worker_framework.git

If you are using another Linux distribution, you could modify the above commands to suitable
package installation commands.

Quick Startup Guide

1. Find a Linux or Mac OSx based machine.
We have tested our code on Ubuntu 16.04 and macOS High Sierra. We do believe though that without major modifications, Credence could be run on any Linux or Mac OSx based machine.
2. Clone our GitHub repository using the following command (Provide GitHub Link):
git clone https://github.com/MalharSC/aws_master_worker_framework.git
3. Check the examples in our repository to understand how algorithms have been implemented. The AppMaster.java and AppWorker.java file within the master_setup directory and worker_directory would help in understanding how to implement distributed algorithm.
4. Implement your algorithm. You should have to modify only the AppWorker.java, ServletWorker.java, AppMaster.java and ServletWorker.java files within the master_setup and worker_setup directories in the root to implement your algorithm. Log all your results using the Log4j2 logger within your code.
5. Run the deploy_infra.sh, script to deploy your code on AWS Cloud. Trigger the experiment by sending an init curl request from your machine to the Master node.
6. After the experiment is over, run get_results.sh to download all the results from your experiments to your local machine.
7. Run the clean_infra.sh script to destroy all the infrastructure deployed on AWS Cloud.

You have implemented your distributed computation algorithm! For any clarifications, follow the detailed section-wise guide and FAQs described below.