Husky: Towards a More Efficient and Expressive Distributed Computing Framework Fan Yang Jinfeng Li James Cheng Department of Computer Science and Engineering The Chinese University of Hong Kong ffyang,jfli,
[email protected] ABSTRACT tends Spark, and Gelly [3] extends Flink, to expose to programmers Finding efficient, expressive and yet intuitive programming models fine-grained control over the access patterns on vertices and their for data-parallel computing system is an important and open prob- communication patterns. lem. Systems like Hadoop and Spark have been widely adopted Over-simplified functional or declarative programming interfaces for massive data processing, as coarse-grained primitives like map with only coarse-grained primitives also limit the flexibility in de- and reduce are succinct and easy to master. However, sometimes signing efficient distributed algorithms. For instance, there is re- over-simplified API hinders programmers from more fine-grained cent interest in machine learning algorithms that compute by fre- control and designing more efficient algorithms. Developers may quently and asynchronously accessing and mutating global states have to resort to sophisticated domain-specific languages (DSLs), (e.g., some entries in a large global key-value table) in a fine-grained or even low-level layers like MPI, but this raises development cost— manner [14, 19, 24, 30]. It is not clear how to program such algo- learning many mutually exclusive systems prolongs the develop- rithms using only synchronous and coarse-grained operators (e.g., ment schedule, and the use of low-level tools may result in bug- map, reduce, and join), and even with immutable data abstraction prone programming.