Lab Project #4: PerfLab— Code Optimizations and Performance

Slides:



Advertisements
Similar presentations
Software & Services Group, Developer Products Division Copyright© 2010, Intel Corporation. All rights reserved. *Other brands and names are the property.
Advertisements

Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
CS201 – Makefile Tutorial. A Trivial Makefile # Trivial Makefile for puzzle1.c # Ray S. Babcock, CS201, MSU-Bozeman # 1/5/05 # puzzle1: puzzle1.c gcc.
Randal E. Bryant Carnegie Mellon University CS:APP2e CS:APP Chapter 4 Computer Architecture Overview CS:APP Chapter 4 Computer Architecture Overview
File AccessCS-2301, B-Term File Access CS-2301, System Programming for Non-Majors (Slides include materials from The C Programming Language, 2 nd.
Introduction to Computer Systems Topics: Staff, text, and policies Lecture topics and assignments Lab rationale and infrastructure F ’08 class01b.ppt.
Lists and Trees (continued) CS-2301, B-Term Lists and Trees (continued) CS-2301, System Programming for Non-Majors (Slides include materials from.
1 Lab Session-I (A and B) CS-120 Fall 2000 Using Windows Using An Editor Using Visual C++ Using Compiler Writing and Running Programs Lab-1 DUE Fri September.
More about Numerical Computation CS-2301, B-Term More about Numerical Computation CS-2301, System Programming for Non-Majors (Slides include materials.
Introduction to Computer Science /16/15. Introduction and Attendance Handout.
Project 1 Catch a Dragonfly Due: Thursday, September 4 th at 11:59pm.
COMP1070/2002/lec3/H.Melikian COMP1070 Lecture #3 v Operating Systems v Describe briefly operating systems service v To describe character and graphical.
N ETWORKED & D ISTRIBUTED COMPUTING S YSTEMS L AB Programming Assignments EE323 Computer Networks.
Winter 2015 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University Introduction and Overview.
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.
The LC-3 – Chapter 7 COMP 2620 Dr. James Money COMP
N from what language did C++ originate? n what’s input, output device? n what’s main memory, memory location, memory address? n what’s a program, data?
The Diagnostic Pathfinder System Introduction Getting Started.
1.Getting Started 2.Modifying Design 3.Newsletter Templates 4.Announcement 5.Administer Sections Index Training 14 th Mar., 2011.
1 CS/ECE 354 Fall 2013 “New, and improved!”. 2 Karen Miller Phone: CS.
Manifold Lab 1 Setting the environment Compiling/running programs.
Introduction and Overview Winter 2013 COMP 2130 Introduction to Computer Systems Computing Science Thompson Rivers University.
Welcome to IBC233 Cindy Laurin And Russ Pangborn.
1 Project 6: New Venue. 2 New Venue Based on the posted New Venue scenario
Chapter 4: Threads Modified by Dr. Neerja Mhaskar for CS 3SH3.
How Do Users Share Computer Files?
Getting started in Eclipse
Review for Test1.
Computer Systems Programming
More about Numerical Computation
to … monnigcte.weebly.com
Makefiles and Notes on Programming Assignment PA2
First Python Program Professor Hugh C. Lauer CS-1004 — Introduction to Programming for Non-Majors (Slides include materials from Python Programming: An.
Andy Wang Operating Systems COP 4610 / CGS 5765
Housekeeping Matters Submission of projects via myWPI
“Under the Hood” of Polymorphism
Andy Wang Operating Systems COP 4610 / CGS 5765
Structures, Unions, and Typedefs
Header files.
Linked Lists in C and C++
Binary Trees (and Big “O” notation)
Polymorphism Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2nd edition, by Kernighan.
CS-2303 System Programming Concepts
Programming Project #1 Command Shell
Symbolic Constants in C
Programming Assignment #6
Programming Assignment #5
Variables, Lists, and Objects
Debuggers and Debugging
Programming Project #1 Fork and Command Shell
Simple Graphics Package
Your first C and C++ programs
Lab Project #3: BufLab — Buffer Overflow Attacks
Lab Project #1: Datalab Assigned March 12, 2012; due March 22, 11:59 PM Professor Hugh C. Lauer CS-2011, Machine Organization and Assembly Language.
Notes on Homework #6 Professor Hugh C. Lauer CS-1004 — Introduction to Programming for Non-Majors (Slides include materials from Python Programming: An.
CS-3013 Operating Systems Hugh C. Lauer
Operating Systems Tasks 04/04/2019.
CS201 Fall 2016 George Koutsogiannakis
New Member Procedures Go to:
Welcome to IBC233 Cindy Laurin.
Assembly Language for Intel-Based Computers, 5th Edition
Numpy, pylab, matplotlib (follow-up)
Loose ends from yesterday
Sarah Diesburg Operating Systems CS 3430
Operating Systems Tasks 05/08/2019.
CS 1054 Final Exam Coverage Final exam will cover Chapters 1-8, 10-11
CS201 – Course Expectations
Dr. Clincy Professor of CS
Introduction to Classes and Objects
Presentation transcript:

Lab Project #4: PerfLab— Code Optimizations and Performance Professor Hugh C. Lauer CS-2011, Machine Organization and Assembly Language (Slides include copyright materials from Computer Systems: A Programmer’s Perspective, by Bryant and O’Hallaron, and from The C Programming Language, by Kernighan and Ritchie) CS-2011, D-Term 2013 Lab Project #4: PerfLab

Objective and Approach To gain a deeper understanding of how the performance of compiled code is affected by the way you handle the data … … by modifying two image processing routines I.e., rotate() and smooth() CS-2011, D-Term 2013 Lab Project #4: PerfLab

We will build and run your submission using driver Obtaining Perflab See handout on course website Click on “Lab Projects,” log in with your WPI user name and password Click on perflab-handout.tar to download You will get a tar file containing source code and makefile to build this project:– kernels.c — the place where you will write your code driver — the primary target of the makefile. Use this to run your code and get performance measurements We will build and run your submission using driver Other stuff — necessary to build and run CS-2011, D-Term 2013 Lab Project #4: PerfLab

This Project Two functions to experiment with — rotate() and smooth() For each one, you must:– Write or modify some C code to traverse two image arrays most efficiently Run them in the driver to get a performance measurement and a comparison against a baseline Challenge:– To achieve the greatest speedup CS-2011, D-Term 2013 Lab Project #4: PerfLab

Background and resources Anything we have learned about IA32 Assembly Anything we have learned about caches and caching Stuff from Chapter 5 that we have not covered in class E.g., code motion, loop unrolling, blocking Substituting adds for multiplies, etc. Maximum gcc optimization levels Anything else you can find CS-2011, D-Term 2013 Lab Project #4: PerfLab

Working on Perflab Individually or two-person teams Entirely in C source code However, you may use your knowledge of IA32 Assembly May be done on any Linux system Possibly also on Macintosh systems Unfortunately, not on Windows with Eclipse Submission:– A single file kernels.c Due date:–April 28, 2013, 11:59 PM CS-2011, D-Term 2013 Lab Project #4: PerfLab

Submit via Turnin Naming your file <userID>-kernels.c for an individual <userID1>-<userID2>-kernels.c for a team Edit team_t team structure in kernels.c Insert names and e-mail addresses of team members Will be recognized by autograding system This is called Perflab in Turnin system CS-2011, D-Term 2013 Lab Project #4: PerfLab

Questions? CS-2011, D-Term 2013 Lab Project #4: PerfLab