Carnegie Mellon Course Overview Computer Systems Organization (Fall 2015) Instructor: Jinyang Li.

Slides:



Advertisements
Similar presentations
Carnegie Mellon Course Overview Computer Systems Organization (Fall 2014) Section 001 (Honors) and Section 002 (Regular) Professor Andrew Case Teaching.
Advertisements

CSCE 3121 Computer Organization Lecture 1. CSCE 3122 Course Overview Topics: –Theme –Five great realities of computer systems –Computer System Overview.
Computer Systems & Programming (CS 367) Section 002: Prof. Elizabeth White Spring 2010.
1 Carnegie Mellon The course that gives CMU its “Zip”! Course Overview : Introduction to Computer Systems 1 st Lecture, Aug. 24, 2010 Instructors:
Introduction to Computer Systems Topics: Theme Five great realities of computer systems How this fits within CS curriculum S ‘08 class01a.ppt
Introduction to Computer Systems Topics: Staff, text, and policies Lecture topics and assignments Lab rationale and infrastructure F ’08 class01b.ppt.
Introduction to Computer Systems Topics: Theme Five great realities of computer systems How this fits within CS curriculum CS 213 F ’03 class01a.ppt
Introduction to Computer Systems* Topics: Theme Five great realities of computer systems How this fits within CS curriculum F ’07 class01a.ppt
CSCE 312 Computer Organization Lecture 0: Course Administration EJ Kim Department of Computer Science and Engineering 338B Bright
CS : Artificial Intelligence: Representation and Problem Solving Fall 2002 Prof. Tuomas Sandholm Computer Science Department Carnegie Mellon University.
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.
CS 213 Introduction to Computer Systems Course Organization David O’Hallaron August 28, 2001 Topics: Staff, text, and policies Lecture topics and assignments.
Introduction to Computer Systems Topics: Theme Five great realities of computer systems How this fits within CS curriculum F ’04 class01a.ppt
COMP 321: Introduction to Computer Systems Scott Rixner Alan L. Cox
1 Carnegie Mellon The course that gives CMU its “Zip”! Course Overview /18-213: Introduction to Computer Systems 1 st Lecture, Jan. 14, 2014 Instructors:
Computer Network Fundamentals CNT4007C
CS 3305 Course Overview. Introduction r Instructor: Dr Hanan Lutfiyya r Office: MC 355 r hanan at csd dot uwo ca r Office Hours: m Drop-by m Appointment.
1 Carnegie Mellon The course that gives CMU its “Zip”! Course Overview (18-213): Introduction to Computer Systems 1 st Lecture, Aug. 27, 2013 Instructors:
The course that gives CMU its “Zip”!
Winter 2015 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University Introduction and Overview.
COURSE OVERVIEW COMPUTER ARCHITECTURE AND ORGANIZATION Instructor: Professor Emmett Witchel.
David O’Hallaron Carnegie Mellon University Processor Architecture Overview Overview Based on original lecture notes by Randy.
Introduction and Overview Summer 2014 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University.
CS355 Advanced Computer Architecture Fatima Khan Prince Sultan University, College for Women.
1 Carnegie Mellon The course that gives CMU its “Zip”! Course Overview (18-213): Introduction to Computer Systems 1 st Lecture, Aug. 26, 2014 Instructors:
1 Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Carnegie Mellon The course that gives CMU its “Zip”! Course Overview.
Assembly Language and Computer Organization Topics: Theme Programming in C Great realities of computer systems How this fits within CS curriculum Logistical.
Course Information Andy Wang Operating Systems COP 4610 / CGS 5765.
Assembly Language and Computer Organization Topics: Theme Programming in C Great realities of computer systems How this fits within CS curriculum Logistical.
Introduction to Computer Systems Topics: Theme Five great realities of computer systems (continued) “The class that bytes”
Introduction to Computer Systems Topics: Staff, text, and policies Lecture topics and assignments Lab rationale and infrastructure CS 213 F ’03 class01b.ppt.
Introduction Fall 2001 Foundations of Computer Systems Prerequisite:91.166* or * Section A Instructor: Dr. David Hutchinson Office:
11/21/20151 Operating Systems Design (CS 423) Elsa L Gunter 2112 SC, UIUC Based on slides by Sam King and Andrew.
1 Carnegie Mellon The course that gives CMU its “Zip”! Course Overview (18-213): Introduction to Computer Systems 1 st Lecture, Aug. 28, 2012 Instructors:
Introduction to Computer Systems Topics: Staff, text, and policies Lecture topics and assignments Lab rationale CS 213 F ’02 class01b.ppt “The Class.
Introduction to Computer Systems Topics: Theme Five great realities of computer systems How this fits within CS curriculum F ’06 class01a.ppt
Computer Organization II Topics: Theme Five great realities of computer systems How this fits within CS curriculum CS 2733.
Assembly Language and Computer Organization Topics: Theme Programming in C Great realities of computer systems How this fits within CS curriculum Logistical.
Course Overview CENG331 - Computer Organization
Copyright ©: Nahrstedt, Angrave, Abdelzaher1 University of Illinois at Urbana-Champaign Welcome to CS 241 Systems Programming University of Illinois at.
1 Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Carnegie Mellon Overview Course theme Five realities How the course.
CS 213 Introduction to Computer Systems Course Organization David O’Hallaron August 25, 1998 Topics: Staff, text, and policies Lecture topics and assignments.
Computer Networks CNT5106C
1 CS/ECE 354 Fall 2013 “New, and improved!”. 2 Karen Miller Phone: CS.
CS 213 Introduction to Computer Systems Course Organization Guy Blelloch and Bruce Maggs January 16, 2001 Topics: Staff, text, and policies Lecture topics.
Course Information CSE 2031 Fall Instructor U.T. Nguyen Office: CSE Home page:
Copyright ©: Nahrstedt, Angrave, Abdelzaher, Caccamo1 University of Illinois at Urbana-Champaign Welcome to CS 241 Systems Programming University of Illinois.
Introduction and Overview Winter 2013 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University.
1 Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition Carnegie Mellon Course Overview Introduction to Computer Systems 1.
Course Overview CSE 238/2038/2138: Systems Programming
The course that gives CMU its “Zip”!
Final exam: Wednesday, March 20, 2:30pm
CS 213 Introduction to Computer Systems Course Organization Todd C
Computer Systems & Programming (CS 367)
Course Overview CSCI 2400/ ECE 3217: Computer Architecture
Course Overview CENG331 - Computer Organization
Computer Systems: A Programmer’s Perspective aka: CS:APP
Course Overview Computer Systems Organization (Fall 2016)
Topics: Staff, text, and policies Lecture topics and assignments
Assembly Language and Computer Organization
Assembly Language and Computer Organization
Computer Systems Summary
Andy Wang Operating Systems COP 4610 / CGS 5765
Introduction to Computer Systems
Introduction to Computer Systems
Distributed systems [Fall 2016] G Jinyang Li
Introduction to Computer Systems
Overview Course theme Five realities
Introduction to Computer Systems
CS201 – Course Expectations
Presentation transcript:

Carnegie Mellon Course Overview Computer Systems Organization (Fall 2015) Instructor: Jinyang Li

Computer Systems Organization Not that kind of organization

This class adds to your CV… C programming UNIX X86 assembly Not what the class is about either

What this class is about How programming works under the hood

What this class is about Those details that set hackers apart from novice programmers – How your program runs on the hardware – Why it fails – Why it is slow Modern computer systems are shrouded in layers of abstraction

Many layers of abstraction

Course Theme: Abstraction Is Good But Don’t Forget Reality Most CS classes emphasize abstraction This class: – Help you peek ``under-the-hood’’ in many layers Goal: – Make you more effective programmers Debug problems Tune performance – Prepare you for later “systems” classes in CS Compilers, Operating Systems, Networks, Computer Architecture, Distributed Systems

Reality #1: Ints are not Integers, Floats are not Reals x 2 ≥ 0? (x + y) + z = x + (y + z)? Public class Test { public static void main(String[] args) { int x = Integer.parseInt(args[0]); Systems.out.println(x * x); } java Test 12 ➙ 144 java Test ➙ ???

Reality #1: Ints are not Integers, Floats are not Reals Source: xkcd.com/571

Carnegie Mellon Reality #2: You’ve Got to Know Assembly No need to program in assembly Knowledge of assembly helps one understand machine-level execution – Debugging – Performance tuning – Writing system software (e.g. compilers, OS) – Creating / fighting malware x86 assembly is the language of choice!

Carnegie Mellon Reality #3: Memory Matters Memory is not unbounded – It must be allocated and managed Memory referencing bugs especially wicked Memory performance is not uniform – Cache and virtual memory effects can greatly affect performance

Carnegie Mellon Memory Referencing Errors C/C++ let programmers make memory errors – Out of bounds array references – Invalid pointer values – Double free, use after free Errors can lead to nasty bugs – Corrupt program objects – Effect of bug observed long after the corruption

Carnegie Mellon Memory Referencing Bug Example double fun(int i) { double d[1] = {3.14}; /* allocate an array of 1 double*/ int a[2]; /* allocate an array of 2 integers */ a[i] = ; /* Possibly out of bounds */ return d[0]; } fun(0) ➙ 3.14 fun(1) ➙ 3.14 fun(2) ➙ fun(3) ➙ fun(4) ➙ 3.14 fun(6) ➙ Segmentation fault Critical State6 ?5 ?4 d7... d4 3 d3... d0 2 a[1] 1 a[0] 0

Carnegie Mellon Reality #4: Asymptotic performance is not always sufficient Constant factors matter Even operation count might not predict performance Must understand system to optimize performance – How programs compiled and executed – How to measure performance and identify bottlenecks – How to improve performance without destroying code modularity and generality

Carnegie Mellon Memory System Performance Example Performance depends on access patterns void copyji(int src[2048][2048], int dst[2048][2048]) { int i,j; for (j = 0; j < 2048; j++) for (i = 0; i < 2048; i++) dst[i][j] = src[i][j]; } void copyij(int src[2048][2048], int dst[2048][2048]) { int i,j; for (i = 0; i < 2048; i++) for (j = 0; j < 2048; j++) dst[i][j] = src[i][j]; } 21 times slower

Carnegie Mellon Example Matrix Multiplication Both implementations have exactly the same operations count (2n 3 ) Reason for 20x: Multi-threading, blocking, loop unrolling, array scalarization Matrix-Matrix Multiplication (MMM) on 2 x Core 2 Duo 3 GHz (double precision) Gflop/s 160x Triple loop Best code (K. Goto)

Carnegie Mellon Course Perspective Most Systems Courses are Builder-Centric – Computer Architecture Design pipelined processor in Verilog – Operating Systems Implement large portions of operating system – Compilers Write compiler for simple language – Networking Implement and simulate network protocols

Carnegie Mellon Course Perspective (Cont.) This course is programmer-centric – Understanding of underlying system makes a more effective programmer – Bring out the hidden hacker in everyone

Carnegie Mellon Textbooks Randal E. Bryant and David R. O’Hallaron, – “Computer Systems: A Programmer’s Perspective, 3 nd Edition”, Prentice Hall, 2015 – – Available at NYU bookstore Brian Kernighan and Dennis Ritchie, – “The C Programming Language, 2 nd Edition”, Prentice Hall, 1988 – On reserve at NYU library

Carnegie Mellon Course Components Lectures (Tue/Thu) Weekly take-home exercises – Review lecture material, help with labs – Not graded Optional recitation on Friday – Discuss solutions for take-home exercises Programming labs (5) – 2-3 weeks each – Provide in-depth understanding of some aspect of systems One mid-term, one final exam

Grade breakdown Participation (5%) Labs (35%) Midterm (25%) Final (35%)

Carnegie Mellon Course Syllabus Basic C – L1 (CLab), L2 (Rabin-Karp Lab) Assembly: Representation of program and data – L3 (Binarylab) Virtual Memory: address translation, allocation – L4 (Malloclab) Concurrent programming – L5 (Threadlab)

Carnegie Mellon Getting Help Class Web Page: cso – Complete schedule of lectures and assignments – Lectures notes, assignments – Announcements Piazza is our message board

Carnegie Mellon Staff Staff s: – Instructor: Jinyang Li office hour: Tue 4-5pm (715 Broadway 708) – TAs: Varun Chandrasekaran Giorgio Pizzorni Chaitanya Garg George Wong

Carnegie Mellon Lab Policies You must work alone on all assignments – You may post questions on Piazza, – You are encouraged to answer others’ questions, but refrain from explicitly giving away solutions. Hand-ins – Assignments due at 11:59pm on the due date – Everybody has 5 grace days – Zero score if a lab is handed in >2 days late

Carnegie Mellon Integrity and Collaboration Policy We will enforce the policy strictly. 1.The work that you turn in must be yours 2.You must acknowledge your influences 3.You must not look at, or use, solutions from prior years or the Web, or seek assistance from the Internet 4.You must take reasonable steps to protect your work – You must not publish your solutions 5.If there are inexplicable discrepancies between exam and lab performance, we will over-weight the exam and possibly interview you.

Carnegie Mellon Integrity and Collaboration Policy Academic integrity is very important. – Fairness – If you don’t do the work, you won’t learn anything

Carnegie Mellon Integrity and Collaboration Policy Last term, Prof. Walfish enforced this policy strictly and sent 40% of his class to the department and Dean. If you cannot complete an assignment, don’t turn it in: one or two uncompleted assignments won’t result in F.