A PhD-oriented course about research in systems

Slides:



Advertisements
Similar presentations
CS 6410: Advanced Systems Fall 2010 Instructor: Hakim Weatherspoon TA: Ki Suh Lee.
Advertisements

CS 6410: Advanced Systems Fall 2009 Instructor: Hakim Weatherspoon TA: Dan Williams.
CS 6410: Advanced Systems Fall 2011 Instructor: Hakim Weatherspoon TA: Ji Yong Shin.
CS 6464: Advanced Distributed Storage Systems Spring 2009 Instructor: Hakim Weatherspoon.
COMP 14 – 02: Introduction to Programming Andrew Leaver-Fay August 31, 2005 Monday/Wednesday 3-4:15 pm Peabody 217 Friday 3-3:50pm Peabody 217.
Welcome to CS 395/495 Measurement and Analysis of Online Social Networks.
Welcome to CS 395/495 Internet Architectures. What is this class about? (1) Goal: to help you understand what the future Internet will look like –What.
Computer Network Fundamentals CNT4007C
Syllabus CS 765: Introduction to Database Management Systems Fall 2008 Text Database Management Systems Ramakrishnan/Gehrke, 3rd.
CS 450 MODELING AND SIMULATION Instructor: Dr. Xenia Mountrouidou (Dr. X)
CSE 501N Fall ‘09 00: Introduction 27 August 2009 Nick Leidenfrost.
COMP Introduction to Programming Yi Hong May 13, 2015.
Lecture 1 Page 1 CS 111 Summer 2015 Introduction CS 111 Operating System Principles.
Lecture 1 Page 1 CS 239, Fall 2010 Introduction CS 239 Advanced Topics in Computer Security Peter Reiher September 23, 2010.
Lecture 1 Page 1 CS 111 Summer 2013 Introduction CS 111 Operating System Principles Peter Reiher.
Welcome to EECS 395/495 Networking Problems in Cloud Computing.
CM220: Unit 1 Seminar “You must be the change you wish to see in the world.” ~ Mohandas Gandhi.
CS5412: SHEDDING LIGHT ON THE CLOUDY FUTURE Ken Birman 1 Lecture XXV.
CS 6410: Advanced Systems Fall 2013 Instructor: Hakim Weatherspoon TA: Erluo Li and Qin Jia.
WELCOME to CS244 Brent M. Dingle, Ph.D Game Design and Development Program Mathematics, Statistics and Computer Science University of Wisconsin -
CS614: Advanced Course in Computer Systems (Spring’04) Instructor: Ken Birman TA: non assigned (yet)
Computer Networks CNT5106C
Welcome to EECS 395/495 Online Advertising: A Systems Approach.
CSc 120 Introduction to Computer Programing II
Hidden Slide for Instructor
Welcome to EECS 395/495 Networking Problems in Cloud Computing
Computer Network Fundamentals CNT4007C
Introduction to Operating Systems
Course Overview - Database Systems
CS6501 Advanced Topics in Information Retrieval Course Policy
02086 Writing Inspirations Aalto University
Networking CS 3470, Section 1 Sarah Diesburg
02086 Writing Inspirations Aalto University
Computer Networks CNT5106C
Introduction CS 111 On-Line MS Program Operating Systems Peter Reiher
EEL 6686: Embedded Systems Seminar
CPSC : Collaborative Computing & Personal Informatics
Welcome to the a Department of Engineering Education !
MIS323 Business Telecommunications
CS 6410: Advanced Systems Prof. Hakim Weatherspoon
02086 Writing Inspirations Aalto University
Database Design and Implementation
Introduction CS 111 On-Line MS Program Operating Systems Peter Reiher
CPSC 441: Computer Communications
Online Composition with Georgie Ziff
CSCD 433/533 Advanced Computer Networks
Computer Networks CNT5106C
Course Overview - Database Systems
Re-Establishing a Classified Senate
Guidelines for Group Projects and Papers
SWE 205 Software Usability Analysis and Design
Proposal for Term Project Operating Systems, Fall 2018
Guidelines for Group Projects and Papers
MIS323 Business Telecommunications
Welcome to the University of Alberta
CS6501 Embedded Operating Systems for the IoT
CS 6410: Advanced Systems Prof. Hakim Weatherspoon
Tonga Institute of Higher Education IT 141: Information Systems
CS4501: Information Retrieval Course Policy
CSCD 433/533 Advanced Computer Networks
CS 2530 Intermediate Computing Dr. Schafer
BIT 115: Introduction To Programming
CS 3950 Introduction to Computer Science Research
Welcome to CSci8211: Advanced Computer Networks and Their Applications aka Basic Architecture, Mechanisms and Research Issues in Emerging Software-Defined.
Computer Networks CNT5106C
Course Overview CSE5319/7319 Software Architecture and Design
Tonga Institute of Higher Education IT 141: Information Systems
CS533 Concepts of Operating Systems Class 1
Welcome to the First-Year Experience!
CSE 444 Database Management Systems Autumn 1997 University of Washington Introduction and Welcome © 1997 UW CSE 12/12/2019.
Presentation transcript:

A PhD-oriented course about research in systems CS 6410: Advanced Systems Today’s Lecture: Robbert van Renesse Normal Prof: Hakim Weatherspoon A PhD-oriented course about research in systems Fall 2016

About me (Robbert)...

Goals for Today What is CS6410 “about”? What will be covered, and what background is assumed? Why take this course? How does this class operate? Class details Non-goal: We won’t have a real lecture today This is because our lectures are always tied to readings

Coverage The course is about the cutting edge in computer systems – the topics that people at conferences like ACM Symposium on Operating Systems Principles (SOSP) and the Usenix Conference on Operating Systems Design and Implementation (OSDI) love We look at a mix of topics: Classic insights and classic systems that taught us a great deal or that distilled key findings into useable platform technologies Fundamental (applied theory) side of these questions New topics that have people excited right now

Lots of work required First and foremost: Attend every class, participate You’ll need to do a lot of reading. You’ll write a short (1 paragraph) summary of the papers each time Whoever presents the paper that day grades these (-, , +) You can skip up to 4 of them, whenever you like. Hand in “I’m skipping this one” and the grader will record that. But not more than 4. You’ll have two “miniprojects” during first six weeks Build a parallel version TCP proxy: Initially single threaded, then multi- threaded and/or event based Distributed coordination service running on EC2 (use a preexisting version of Paxos, and access it via Elastic Beanstalk). Study to identify bottlenecks, but no need to change the version of Paxos we provide Then will do a more substantial semester-long independent project Students need to present a paper. Required

Takeway? You could probably take one other class too But if you have any desire to have any kind of life at all, plus to begin to explore a research area, you can’t take more than two classes like this! Not so much that it is “hard” (by and large, systems isn’t about hard ideas so much as challenging engineering), but it definitely takes time

Systems: Three “arcs” over 40 years Risk: Cool theory but impractical result that can’t be deployed . Sometimes even the model is unrealistic! Advantage: At massive scale your intuition breaks down. Just doing it is a major undertaking! Advantage: Think with your hands. Elegant abstractions emerge as you go Advantage: Really clear, rigorous statements and proofs Risk: Works well, but can’t explain exactly when or exactly how In the early days it was all one area Today, these lines are more and more separated Some people get emotional over which is best! Risk: Totally unprincipled spaghetti PODC SOSP Prove stuff about something Build/evaluate a research prototype SOCC Report on amazing industry successes

Supercloud Discussion How to read and evaluate a systems research paper

Back to CS6410 stuff Pinning down the plan

Why take this course Learn about systems abstractions, principles, and artifacts that have had lasting value, Understand attributes of systems research that is likely to have impact, Become comfortable navigating the literature in this field, Learn to present papers in a classroom setting Gain experience in thinking critically and analytically about systems research, and Acquire the background needed to work on research problems currently under study at Cornell and elsewhere.

Who is the course “for”? Most of our CS6410 students are either PhD students (but many are from non-CS fields, such as ECE, CAM, IS, etc) Two year MS students who might switch into PhD Undergraduates seriously considering a PhD Fall 2016: Too big to allow MEng students. MEng program offers lots of other options; CS6410 has a unique role for the core CS PhD group

CS6410 versus just-read-papers A paper on the Supercloud might just brag about how great it is, how well it scales, etc Reality is often complex and reflects complex tensions and decisions that force compromises In CS6410 our goal is to be honest about systems: see what the authors had to say, but think outside of the box they were in when they wrote the papers

Details Instructor: Hakim Weatherspoon TA: Zhiming Shen Lectures: hweather@cs.cornell.edu Office Location: 427 Gates TA: Zhiming Shen Lectures: CS 6410: Tu, Th: 10:10 – 11:25 PM, 114 Gates

Course Help Course staff, office hours, announcements, etc: http://www.cs.cornell.edu/courses/cs6410/2016fa Please look at the course syllabus: the list of papers is central to the whole concept of this class Research project ideas are also listed there

CS 6410: Overview Prerequisite: Mastery of CS3410, CS 4410 material Fundamentals of computer architecture and OS design How parts of the OS are structured What algorithms are commonly used What are the mechanisms and policies used Some insights into storage systems, database systems “helpful” Some exposure to networks, web, basic security ideas like public keys

CS 6410: Topics: Operating Systems Cloud-scale stuff Core concepts, multicore, virtualization, uses of VMs, other kinds of “containment”, fighting worms/viruses. Cloud-scale stuff Storage systems for big data, Internet trends, OpenFlow Foundational theory Models of distributed computing, state machine replication and atomicity, Byzantine Agreement. Impact of social networks, P2P models, Self-Stabilization A few lectures will focus on new trends: RDMA, BitCoin (a distributed protocol!), etc

CS 6410: Readings Required reading for each lecture: 2 or 3 papers Reflecting contrasting approaches, competition, criticism,… Papers pulled from, best journals and conferences TOCS, SOSP, OSDI, … 26 lectures, 54 (required) papers + 50 or so “recommended”! Read papers before each class and bring notes takes ~2 to 4 hrs per paper, write notes and questions Write a review and turn in at least one hour before class Turn on online via Course Management System (CMS) No late reviews will be accepted, but you can skip 4 of them Graded by the person doing that lecture on a simple √-,√,√+ basis plus written comments.

Mini-Projects New, early part of semester Two of them Hands on experience with multicore parallelism in C or C++ Hands on experience with cloud computing on EC2

CS 6410: Two small projects Goal: Get the rust off your systems skills! Mini-project one: Build a multi-threaded, multicore version of a TCP proxy, in C or C++. Make it really, really fast. Mini-project two: Take a standard Paxos and run it on Amazon’s EC2 using Elastic Beanstalk. Identify bottlenecks (we aren’t asking you to fix them)

CS 6410: Writing Reviews Each student is required to prepare notes on each paper before class and to bring them to class for use in discussion. Your notes should list assumptions, innovative contributions and criticisms. Every paper in the reading list has at least one major weakness. Don’t channel the authors: your job is to see the bigger questions! Turn paper reviews in online before class via CMS Be succinct—One paragraph per paper Short summary of paper (two or three sentences) Two to three strengths/contributions and at least one weaknesses One paragraph to compare/contrast papers In all, turn in two to three paragraphs

CS 6410: Paper Presentations Ideally, each person will present a paper, depending on the stable class size Read and understand both required and suggested papers Learning to present a paper is a big part of the job! The presenting person also grades the essays for that topic Two and a half weeks ahead of time Meet with professor to agree on ideas to focus on One and a half weeks ahead of time Have presentation prepared and show slides or “chalk talk” to professor One week ahead of time Final review / do a number of dry-runs

CS 6410: Class Format 45-50 minutes presentation, 30 minutes discussion/brainstorming. In that order, or mixed. All students are required to participate! Counts in final grading.

CS 6410: Research Project One research project per person Can work individually or in pairs Further, often can turn research agenda in separate research area into a systems project Initial proposal of project topic – due mid-September Survey of area (related works)–due begin of October Midterm draft paper – due begin of November Peer reviews—due a week later Final demo/presentation–due begin of December Final project report – due a week later

CS 6410: Project Suggestions Supercloud related projects New cloud-scale computing services, perhaps focused on applications such as the smart power grid, smart self-driving cars, internet of things, smart homes Operating system features to better leverage RDMA Software defined network infrastructure on the systems or network side (as distinct from Nate’s focus on the PL side) Study the security and distributed systems properties of BitCoin New systems concepts aimed at better supporting “self aware” applications in cloud computing settings (or even in other settings) Building better memory-mapped file systems: current model has become outmoded and awkward Tools for improving development of super fast multicore applications like the one in mini-project one. … and you can invent more of your own!

Important Project Deadlines 9/9 Submit your topic of interest proposal 9/23 Submit 2-3 pages survey on topic (Oct) Discuss project topic with Zhiming/Hakim 11/4 Midterm draft paper of project 12/2 Final demo/presentation of project 12/10 Final paper on project

CS 6410: Grading Class Participation ~ 40% Projects ~ 50% lead presentation, reading papers, write reviews, participation in class discussion Projects ~ 50% Probably 10% will be the two mini-projects, 40% the big term one Proposal, survey, draft, peer review, final demo/paper Subjective ~ 10% This is a rough guide

Academic Integrity Submitted work should be your own Acceptable collaboration: Clarify problem, C syntax doubts, debugging strategy You may use any idea from any other person or group in the class or out, provided you clearly state what you have borrowed and from whom. If you do not provide a citation (i.e. you turn other people's work in as your own) that is cheating. Dishonesty has no place in any community May NOT be in possession of someone else’s homework/project May NOT copy code from another group May NOT copy, collaborate or share homework/assignments University Academic Integrity rules are the general guidelines Penalty can be as severe as an ‘F’ in CS 6410 To draw a very clear line, you may use any idea from any other person or group in the class or out, provided you clearly state what you have borrowed and from whom. If you do not provide a citation---that is, you turn other people's work in as your own---that is cheating. Anything else is fair game. Of course, we will be grading you on the ideas you have added, but you should always borrow as much as you can as a starting point as there is no point in reinventing the wheel.

Stress, Health and Wellness Need to pace yourself to manage stress Need regular sleep, eating, and exercising Don’t miss class... but.... Do not come to class sick (with the flu)! Email me ahead of time that you are not feeling well People not usually sick more than once in a semester

Before Next time Rank-order 2 papers to present (first and second half) Read first papers below and write review End-to-end arguments in system design, J.H. Saltzer, D.P. Reed, D.D. Clark. ACM Transactions on Computer Systems Volume 2, Issue 4 (November 1984), pages 277--288. http://portal.acm.org/citation.cfm?id=357402 Hints for computer system design, B. Lampson. Proceedings of the Ninth ACM Symposium on Operating Systems Principles (Bretton Woods, New Hampshire, United States) 1983, pages 33--48. http://portal.acm.org/citation.cfm?id=806614 Miniproject0 Using Amazon’s EC2/S3 infrastructure Check website for updated schedule