MO801 - Tópicos em Arquitetura e Hardware - Methodologies and Tools for Computer Architecture Research

09/09Classroom 352 was assigned to this course.
01/08Registered students: Graduate.
01/08Classes will take place at room 352.
01/08Important dates in the school calendar: Graduate and Undergraduate programs.

This course will cover tools and methodologies for Computer Architecture research including modern simulators, benchmarks for single/multi-cores and clusters. We will study recent papers on the area and how they model pipelines, caches, execution engines, power evaluation, etc.

The recommended bibliography contains:

  • Processor Microarchitecture: An Implementation Perspective. Antonio González, Fernando Latorre and Grigorios Magklis. Synthesis Lectures on Computer Architecture. Morgan && Claypool Publishers.
  • Recent papers from Top Conferences

Written exam: 40% of final grade.

Projects: 60% of final grade.

Any unethical behavior related to the evaluation process will result in failing the course with the lowest possible grade. Every assignment is an individual assignment unless otherwise mentioned. Students are not expected to talk to each other about solutions to the assignments unless otherwise mentioned.

I will provide 1h of office hour after each class. If you need more or alternative time, feel free to schedule by email.

Project 1

Description: Count the number of instructions in each SPEC 2006 benchmark programs execution.

Tools required: PIN and SPEC 2006.

Questions to think and answer: Is there any variation? How long should it take? How long did it take?

Do something else with this infrastructure. Show me that you have learned how to use PIN (create a pintool).

Deadline: October, 2nd. Oral presentation.

Project 2

Description: Execute one program from PARSEC in one selected machine, measure the execution time and energy consumption. Use McPAT to find a better hardware configuration to run the same program. You will need to consider OOO and cache configurations.

Tools suggested: McPAT, dinero, PIN, PARSEC

Deadline: November, 6th. Oral presentation.

Practice tasks

Beside the projects, there are practice tasks that will help students to improve their understanding about the tools. I plan to have one such task per week.

DateTask
16/sepUse dinero and PIN together to evaluate the best cache configuration for one program. Beware of the trace size for big programs.
23/sepUse Parsec and PIN together to discover the real number of threads for each application. Describe the formula based on the parameter N.
25/sepUse PIN and implement a branch predictor algorithm. Evaluate it in one program.
02/octCalculate the expected IPC for one Parsec program considering a 4-issue processor.
23/octCalculate the dynamic histogram of the distances between data definition and usage in a program (based on the processor register writes and reads).
DateClassTopic
02/sep-No class activity
04/sep-
09/sep1Class presentation/introduction
11/sep2Introduction
16/sep3Dinero and PIN tutorials
18/sep4Cache
23/sep5make, gcc, diff, patch, Parsec (patch)
25/sep6Fetch Unit
30/sep7Extra time to finish project 1
02/oct8Project 1 presentations
07/oct9McPAT
09/oct10Decode Unit
14/oct11Performance counters, affinity, file formats, system tools
16/oct12Allocation
21/oct13SimPoints
23/oct14Issue
28/oct15ZSim
30/oct16Execute
04/nov17
06/nov18Project 2 presentations
11/nov19Project 3 preparation
13/nov20Project 3 preparation
18/nov21Commit
20/nov-Holiday
25/nov22Exam
27/nov23
02/dec24
04/dec25
09/dec26
11/dec27
16/dec28
18/dec29
23/dec30