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, 2015

The course meets

  • Piazza sign up link for this class
  • Here are some potentially useful code examples that may prove helpful.
  • The Nauty graph isomorphism checker is available here. A simple interface and a brief introduction is here

    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

    There will be a class project that requires individuals or small teams to use multiple cloud infrastructures simultaneousl to solve a large problem.

    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.

    Each individual or team will present the results of the project at the end of the course.

    The assignment that each student will need to complete by the end of the course is to produce a cloud-based search and/or optimization system that attempts to improve the known bounds on the seventh symmetric Ramsey Number -- R(7,7). Each student or student team will find counter example graphs for R(7,7). The goal is to find the largest set of non-isomorphic counter example graphs each having the largest node count. Students will present the the their respective implementations at the end of the course and the student or team with the largest set will be crowned the winner of Ramsey Search for CS290 in 2015.

    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: In Flux

    Like most research courses, the schedule for this course is tentative. The goal, at the end, if to have developed a multi-cloud system that uses various cloud infrastructures to in the best way possible. Lectures will cover the various research ideas and technologies necessary to implement such a system.

    Course Schedule

    March 31

    Course Introduction.

    April 2

    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 7

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

    April 9

    Class canceled. Please work on your project.

    April 14

    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 16

    Ramsey search fest.

    April 21

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

    April 23

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

    April 28

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

    April 30

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

    May 5

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

    May 7

    Neil Soman from EMC will speak. His slides are available here.

    May 12

    Zoran Dimitrijevic from Altiscale will speak. His slides are available here.

    May 14, 19

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

    May 21

    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.