CS290B -- Cloud Computing

The purpose of the class is to explore current research topics and technological developments pertaining to the subject of "Cloud Computing."

While a rigorous definition of cloud computing remains elusive (at least with respect to non-academic treatments of the subject), roughly speaking cloud computing refers to the ability to obtain computational capability via a network-facing API that is exported by abstract services which appear to be ubiquitously accessible and persistent. The course will cover various topics that fall under this broad rubric, with a particular emphasis on the computer science research challenges that are constituent to them.

Spring Quarter, 2014

The course meets

and the instructor's coordinates are

Course Outline

The course itself will combine, lectures, assigned reading, and in-class discussion with a quarter-long software development project that attempts to familiarize the student with the strengths and weaknesses of current approaches to cloud computing. In addition, students will be expected to describe the research challenges they have identified as a result of their experiences in the course in both written and oral presentation formats.

Specific topics the course will cover include

as well as other applications and subsystems that have applicability to cloud computing.

Course Project

The assignment that each student will need to complete by the end of the course is to produce a cloud-based mining system for "Richcoin" -- a digital cash concept based on proof-of-work that combines typical crypto puzzles with the "mining" of rare mathematical artifacts. The purpose of Richcoin is to provide a driving application (requiring first-principles development) that can be implemented across different cloud platforms. Richcoin will not implement the peer-to-peer aspects of non-centralized cash schemes (although it could). For this class, all mined artifacts will be deposited with a centralized bank that will The bank will be operated as a service. Each minor or mining team will be issued a set of credentials for an account with the bank. The minor or team with the most mined cash on the final day of class wins.

Students can form teams of up to three team members although they may also work alone. In the case of teams, all team members will receive the same project grade. Project deliverables are

The specific dates for each presentation will be determined during the first two weeks of class. Please make sure that your schedule will allow you to be present during the final two weeks so that you will be able to complete the assignment.

Course Schedule

Like most research courses, the schedule for this course is tentative. The goal, at the end, if to have developed a mining system for a new type of digital cash and to use various cloud infrastructures to mine as much of it as possible by the final class period. Lectures will cover the various research ideas and technologies necessary to implement the mining operation.

April 1

Course Introduction.

April 3

Introduction to Bitcoin. Please read The Bitcoin Paper before class. Some notes on currency and a great paper by Decker and Wattenhoffer in information propagation in the Bitcoin network may prove useful as well.

April 8

Ramsey search as a proof-of-work function. Please read the HashCash paper before class. The Scrypt paper is also quite enlightening.

April 10

The "Richcoin" Bank.

April 15

Condor High-throughput computing. The good people at CondorHTC have provided some useful training materials as part of their effort to support Open Science Grid. I will discuss the User Manual in class.

April 17

Ramsey search fest.

April 22

Dr. Neil Soman guest lectures on cloud computing.

April 24

Amazon Web Services. I have notes (please pardon the typos) and check out the EC2 Documentation and the Euca2ools documentation.

April 29

Eucalyptus. Please read the Eucalyptus Tech. Report before class. Also -- here is a quick start tutorial on how to get going with Eucalyptus.

May 1

Eventual consistency. Please read the paper by Verner Vogels before class.

May 6

Dr. Chandra Krintz will lecture on AppScale and Google App. Engine. Please read the AppScale paper before class.

May 8

Data center fault management. Please read Chapter 7 from The Google Warehouse Scale paper before class.

May 13, 15, 20

OS Virtualization -- Fear and Loathing in the Intel Architectural Design. I'll try and lecture from these notes.

May 22

Software Defined Networking. Please read the SDN paper before class. I've also prepared some lecture notes to which I'll refer during the lecture.

May 27

Class presentations (tentative)

May 29

Class presentations (tentative)

June 3

Class presentations

June 5

Class presentations