Projects

EDACC

Experiment Design and Administration for Computer Clusters

  • Distributed Computing, Machine Learning, Python, Java, C/C++, MySQL

EDACC is a framework for the design, execution and analysis of large experiments with arbitrary algorithms on computer clusters. It automates many of the tasks commonly done manually such as distributing the algorithm executables across compute nodes, running the required computation tasks and collecting the results.

EDACC was used to conduct the SAT Challenge 2012, SAT Competition 2013, SAT Competition 2014 and theĀ Synthesis Competition 2014 where researchers from all over the world compete. Some of the solvers that competed were successfully tuned for higher performance using the automated algorithm configuration tools of EDACC.

Web Frontend

Web application written in Python, Flask, SQLAlchemy, R to monitor experiments and analyze the results. Also serves as frontend for the competitions where the competitors sign up and submit their solvers.

An instance is running at satcompetition.org/edacc

Automated Algorithm Configuration

Framework using Machine learning techniques for automated optimization of parameterized solvers.

Solvers for combinatorial problems usually employ heuristics with many parameters that can be tuned for specific problem instances. Automated algorithm configuration tools observe the empirical performance of solvers and optimize their parameters to increase performance. Sometimes this can improve the performance by orders of magnitude. EDACC provides a framework and implementations for such automated tools based on Random Forests, Clustering algorithms, and other Machine learning techniques.

whyattend

Web application to track the clan wars attendance of players of the popular World of Tanks game. Game recordings are parsed for the list of attending players. Clan members are synchronized using the game publisher’s HTTP API.

Written in Python with the Flask web framework and SQLAlchemy.

MPD YouTube Streaming Proxy

Small web application that acts as HTTP streaming server and serves the audio stream of a given YouTube video as mp3 stream. The video is converted to mp3 on the fly using ffmpeg. This can be used to play YouTube audio directly in mpd.