CS293B -- 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.

Current Ramsey Scoreboard: 373 -- Rich

Please send me any counter-example that you have that is at least 10% larger than the one shown and I will verify.

Spring Quarter, 2017

The course meets

  • Piazza sign up link for this class
  • Resources you can use in this class

    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 simultaneously 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 tenth symmetric Ramsey Number -- R(10,10). Each student or student team will find counter example graphs for R(10,10). The goal is to find the largest counter-example: a fully-interconnected graph with no mono-chromatic 10-cliques. In case of a

    Students will present the the their respective implementations at the end of the course and the student or team with the largest counter-example will be crowned the winner of Ramsey Search for CS290 in 2017. In case of a tie, the team that is able to demonstrate the use of the most resources simultaneously will win. Note that the demonstration must be convincing.

    Project deliverables are

    The presentation order will be determined randomly but all presentations will take place during the last two class periods for the 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. Attending the class presentations is mandatory.

    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. Each lecture will take the form of a discussion about a paper or research topic for which material will be available beforehand. Please prepare for each lecture to make the diwcussion as fruitful as possible.

    Course Schedule

    April 3

    Course Introduction.

    April 5

    There's going to be a party...

    Please read Michael Armbrust, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy Katz, Andy Konwinski, Gunho Lee, David Patterson, Ariel Rabkin, Ion Stoica, and Matei Zaharia. 2010. A view of cloud computing. Commun. ACM 53, 4 (April 2010), 50-58. DOI=http://dx.doi.org/10.1145/1721654.1721672 PDF

    April 10

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

    April 12

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

    April 17

    Burak Himmetoglu will give a short tutorial on using SDSC's Comet machine

    Introduction to Bitcoin. Please read The Bitcoin Paper before class. Additionally, the Bitcoin proagation delay paper may also be of interest as is a paper on refuting the majority control conjecture in the original Bitcoin paper.

    April 19

    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 24

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

    April 26

    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

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

    May 3

    Class is cancelled. Please enjoy the time to work on your projects.

    May 8

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

    May 10

    Dr. Dan Nurmi from Anchore will speak. Abstract TBD.

    May 15

    Tentative Guest speaker.

    May 17

    Tentative Guest speaker.

    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 24

    Bidding the AWS Spot Market. Please read Probabilistic Guarantees of Execution Duration for Amazon Spot Instances

    May 29

    A holiday!

    May 31

    Please read Where's the Bear?

    June 5

    This will be the first presentation day.

    June 7

    This will be the second presentation day and the final day fo the class.