What This Document Is
This is a project assignment for an advanced computer science course focusing on the intersection of architecture and software systems, specifically text analysis for software engineering. It outlines a hands-on project designed to introduce students to utilizing GPU systems for computational tasks. The assignment centers around practical application and experimental analysis, requiring students to apply theoretical knowledge to a real-world problem. It details expectations for a project involving code porting and performance evaluation.
Why This Document Matters
This assignment is crucial for students seeking to understand and leverage the power of parallel processing using GPUs. It’s particularly valuable for those interested in high-performance computing, software optimization, and the practical challenges of adapting sequential code to parallel architectures. Students enrolled in advanced software engineering or computer architecture courses will find this assignment directly applicable to their studies and future career paths. It’s best utilized *before* beginning the project itself, to fully grasp the scope, deliverables, and evaluation criteria.
Topics Covered
* GPU Programming Concepts
* Parallelization Strategies (Data and Task Parallelism)
* Performance Analysis and Measurement
* Experimental Design and Methodology
* Code Porting (OpenCL or OpenACC)
* Report Writing and Technical Communication
* Profiling and Identifying Performance Bottlenecks
* Reproducible Experimentation
What This Document Provides
* A detailed project description with clear objectives.
* Specific guidelines for project deliverables, including checkpoint meetings and a final report.
* A framework for designing and conducting a rigorous experimental study.
* Expectations for the format and content of the project report, including the use of visualizations.
* Suggestions for tools that can be used for data analysis and graph creation.
* A grading rubric outlining the weight of different project components.