CS570 Advanced Computer Architecture
Department of Computer Science
Project Report Guideline
Your project will contribute 30% toward your final grade.
The goal of your project report is to explain your project sufficiently so
that the reader can understand what the problem is and how you have solved it. The
reader should be able to understand your methods without reading the code.
There are five main parts in your writeup:
- Problem description,
- Important existing solution(s),
- Description of your solution,
- Analysis and Conclusion.
The problem description should introduce the problem, and point out the
essential parts of your problem with respect to its computational aspects.
Existing approaches to the problem should be outlined in order to put the
proposed solution into perspective.
The description of your algorithm (if any) should be in prose and in
pseudocode. In addition to explaining your approach, the prose should help
clarify why you made important choices. The pseudocode should be at a high
enough level to be easily and quickly read, yet it should illustrate the
important points of the algorithm. Excessive details will be counterproductive,
and will indicate that you have not thought enough about what the important
issues are. The results should be brief, and, if appropriate, should compare
with some known results. The analysis and conclusion should be a retrospective
on your approach toward solving the problem, especially what you would do
differently if you were to do it again. For example, was the environment chosen
appropriate? Were there parts of your algorithm that seemed like a good idea
when you started, but turned out to be not working well? Were there ideas that you
tried and dropped?
Your project report must be self-contained, including a short abstract and a list
of references. If you don't know the format of technical papers, read any
journal articles in IEEE Trans. on Computers or
ACM International Symposium on Computer Architecture. Keep in mind that you have
to give credits to all papers you referenced in your report. Your project report
must be type-written using any of your favorite word processing or typeseting
package. In general, your paper is expected to have 12 to 18 double-spaced
pages, without counting the program code.
Here is the breakdown about how will your term paper be graded.
- Technical content: 25%
- Clearly stated background and motivation: 10%
- Paper organization and quality of presentation: 15%
- Your own efforts (contribution, criticism, comparison, etc.): 40%
- Satisfactory English: 10%
You may study any topic relevant to instruction-level parallism,
memory hierarchy design, storage system, performance analysis and evaluation.
Here is a list of topics that I have in mind at this moment.
- Study and analyze of one technique to improve instruction-level parallism,
such as register renaming, speculative execution, branch prediction, alias analysis, and etc.
- Study and analyze one technique in GPU design, how does it support data treaming applications and how it can be improved.
- Study and analyze of APC and C-AMAT. A case study of C-AMAT, or a technique based on C-AMAT to reduce pure miss or increase pure miss concurrency.
- Study and analyze one technique in the memory system, and its impact on OS or software, and its relation with C-AMAT.
- Study and analyze one technique in the storage system, and its impact on OS or application.
- Study and practice one technique to improve performance of memory or IO, such as prefetching mechanisms.
- Performance metric, measurement, and benchmark.
- Study multicore and data prcessing accelerator systems.
- Study and practice of some simulation tools.
- Study newly proposed computer architectures.
- Study energy and reliability issues.
- Survey of certain topics.
- Any other topics that are relevant to this course.
The next question you may have is where can I find out references?
The papers in technical journals are usually two or three years old due to the
long reviewing process. But the quality of journal articles (I mean
prestigious journals) is usually better than conference articles or technical
reports. However, you have to pay attention on one thing: Don't be easily
convinced by conclusions or comments made by the author(s).
Published papers do not guarantee that their arguments are correct. You have
to make your own assessment.
SUGGESTED SOURCES OF REFERENCES
In addition to the textbook and listed references,
here I list some journals and conference proceedings which
have useful articles to this course. You should be able to find most
of them in the IIT digital library, or through online search. Note that you don't have to
trace back all old issues. Except a few classical papers, only those issues
published in the last five years may still be useful.
- ACM International Symposium on Computer Architecture. This proceeding
mainly covers the latest research in architecute. It is a flag conference in architecture yearly by
- IEEE Trans. on Computers. This is the most prestigious journal
published by IEEE Computer Society. It has both theoretical and practical
- IEEE Micro. This magazine reflects the research in hardware,
it provides hardware viewpoint for architecture.
- International Conference on Architectural Support for Programming Languages and Operating Systems.
This is a conference held yearly by ACM. Some papers in the conference covers the architecture research,
which make benefit for program language and operating system.
- IEEE Computer Architecture Letters. This maganize includes many good short architecture paper.
- ACM Transactions on Architecture and Code Optimization (TACO). This new journal covers the research
on computer architecture and compiler.
- ACM Transactions on Computer Systems (TOCS). This journal focuses on general computer systems, including architecture, OS, distributed system, and computer network.
- ACM Transactions on Modeling and Performance Evaluation of Computing Systems (TOMPECS). This journal is a quarerly journal focuses on modeling, analysis, and performance evaluation of computing and communication systems.
- ACM Transactions on Storage (TOS). This journal focuses on storage.
- Journal Of Systems Architecture (EuroMicro), monthly. This Europen journal includes some interesting topic.
- Communications of ACM. This is a flag magazine published monthly by
ACM. There are some nice articles.
- Computing Surveys. This is a survey magazine published quarterly by
ACM. It is the place you can find all kinds of interesting topics.
- IEEE Computer. This is the most popular magazine published by IEEE
Computer Society (every IEEE CS member receives a copy). Papers in this
journal are very readable and covers all new advances in computers.
- IEEE Trans. on Parallel and Distributed Systems.
This is a prestigious journal in the area of parallel processing.
It has both theoretical and practical papers and is published by IEEE Computer Society.
You can find many articles related to this course.
- Journal of Parallel and Distributed Computing. Similar to IEEE
Trans. on Parallel and Distributed Systems. It is the oldest journal in the
field of parallel and distributed processing.
- Parallel Computing.
This is a good journal in the areas of computational sciences.
It covers a wide range of issues, from software tools to numerical algorithms.
- IEEE Supercomputing Conf.
The largest Conf. in the field of supercomputing and parallel processing.
It emphasizes application and practical issues.
- ACM International Conf. on Supercomputing.
A prestigious supercomputing conference which is more on the research side.
- International Parallel Distributed Processing Symposium.
This is a conference which covers all the respects of parallel processing.
- International Conf. on Parallel Processing.
Similar to International Parallel Processing Symposium.
- Performance Evaluation Review (SIGMETRIC/PERFORMANCE).
A prestigious conference in performance modeling and evaluation.
- International Conf. on Distributed Computing Systems.
Computer architecture has been a very hot research area for over sixty years.
You may find many other conferences in this area. The above listed publications are given
from the viewpoint of computer architecture and parallel computing. More journal and conferences can
be found from the viewpoint of the hardware, compiler and operating systems. Use on-line resources.
Talk with me if you have difficulty in searching of references.
You have to submit a two-page project proposal including a short
description of your topic and a list of references to me by Jan. 30,
2017. Your project report is due on April 28, 2017.
In class presentation is required.
- Email: sun at iit.edu
- Telephone: (312) 567-5260
- FAX: (312) 567-5067
Department of Computer Science
Illinois Institute of Technology
10 West 31st Street
Chicago, IL 60616-3793