Category Archives: Distributed Systems/Cloud Computing

Dr. Chuang at Cloudera

Quick updates —

I have not yet updated my recent status for quite some time, so I thought I should summarize my past few months.

I am now Dr. Chuang. Done with the school and I’ve moved to the Bay Area. Since September I am a software engineer at Cloudera, developing HDFS, the Hadoop distributed file system. Days are busy and full of learning, and I love this work place. Hadoop is a large open source project, and I feel excited that I’m now part of it.

I look forward to applying what I learned at Purdue and contributing to the Hadoop project. Hope one day I’ll be able to design a distributed system from start!

Accepted Poster at NSDI’15

My poster is accepted by NSDI’15 committee! That means I’ll be around in the Bay Area in early May. The poster summarizes our latest research results and I can’t wait to share it with the participants in the venue.

我的poster被接受了,將會在五月初的NSDI展出,所以五月初我會在灣區附近。很想快點將我們最新的研究成果跟學界與業界展示!

Stay tuned!

Google Compute Engine免費試用

Google Compute Engine就是Google提供的公用雲系統,目前開放免費試用。申請網址在這裡:

免費試用期是60天,可以免費使用$300美元的用量,超過的話就要開始正常計費─不過放心,GCE會先把帳號暫停,再通知問你要不要升級成一般付費用戶,不必怕發生不小心忘記關機器,結果隔天收到一千美元帳單之類的蠢事。

Google Compute Engine的虛擬機是以分計費,對於還正在試用的使用者來說很方便,不像Amazon EC2是以小時計費,頻繁開開關關很燒錢。 不過Google Compute Engine起步比EC2晚,功能上還沒有EC2那麼完整,如果只是要玩玩是沒問題。

EventWave: Programming Model and Runtime Support for Tightly-Coupled Elastic Cloud Applications

EventWave: Programming Model and Runtime Support for Tightly-Coupled Elastic Cloud Applications (PDF) (Slides)

Wei-Chiu Chuang, Bo Sang, Sunghwan Yoo, and Rui Gu (Department of Computer Science, Purdue University), Charles Killian (Purdue University and Google), and Milind Kulkarni (School of Electrical and Computer Engineering, Purdue University)

Abstract:

An attractive approach to leveraging the ability of cloud computing platforms to provide resources on demand is to build elastic applications, which can dynamically scale up or down based on resource requirements. To ease the development of elastic applications, it is useful for programmers to write applications with simple sequential semantics, without considering elasticity, and rely on runtime support to provide that elasticity. While this approach has been useful in restricted domains, such as MapReduce, existing programming models for general distributed applications do not expose enough information about their inherent organization of state and computation to provide such transparent elasticity.

We introduce EVENTWAVE, an event-driven programming model that allows developers to design elastic programs with inelastic semantics while naturally exposing isolated state and computation with programmatic parallelism. In addition, we describe the runtime mechanism which takes the exposed parallelism to provide elasticity. Finally, we evaluate our implementation through microbenchmarks and case studies to demonstrate that EVENTWAVE can provide efficient, scalable, transparent elasticity for applications run in the cloud.

 

We are preparing to release the code publicly.

Paper Accepted!

Our paper “Programming Model and Runtime Support for Elastic, Tightly-Coupled Cloud Applications” is accepted at SOCC (ACM Symposium on Cloud Computing 2013)! I will be giving a talk as well as a poster in the venue.

The selection of the conference is quite competitive: out of 115 manuscripts, only 23 were accepted at 20% acceptance rate.

The conference will take place at Santa Clara University on October 1-3.

Here’s the abstract of the paper:

An attractive approach to leveraging the ability of cloud-computing platforms to provide resources on demand is to build elastic applications, which can scale up or down based on resource requirements dynamically. To ease the development of elastic applications, it is useful for programmers to write applications with simple, inelastic semantics and rely on runtime systems to provide transparent elasticity.

While this approach has been useful in restricted domains, such as MapReduce, existing programming models for general distributed applications do not expose enough information about their inherent organization of state and computation.
We introduce E VENT WAVE, an event-driven programming model that allows developers to design elastic programs with inelastic semantics while naturally exposing isolated state and computation with programmatic parallelism. In addi-
tion, we describe the runtime mechanism which takes the exposed parallelism to provide elasticity. Finally, we evaluate our implementation through microbenchmarks and case studies to demonstrate that E VENT WAVE can provide efficient, scalable, transparent elasticity for applications run in the cloud.

 

Concluding the Upper Half of 2013

Throughout the upper half of 2013, I was mainly working on two things: performance optimization and API.

Performance has been improved by nearly 20 fold since last September. We were able to diagnose the performance bugs in the original Mace code, and also found a better architecture of the fullcontext runtime. Maybe I would write a paper about the optimization some time.

I am recently working on a better fullcontext C++ API. The goal is, without impacting the performance, make the fullcontext API much easier so that writing a fullcontext application in C++ is straightforward and does not require much effort. In particular, previously most of the features were generated from the perl compiler, which translates the Mace syntax into corresponding (simple) C++ constructs. Because C++ is such a feature-rich language, it makes sense to implement most of features in C++ constructs. After several iteration of reimplementation, it is now possible to directly exploit C++ language features: overloading, overriding, inheritance, templates, template metaprogramming to provide an API straightforward to C++ programmers.

My next goal would be porting fullcontext API to Javascript, specifically, the V8 Javascript engine. It would be really awesome if V8 engine can run fullcontext applications!