Course Project
Table of contents
- 1. Overview
- 2. Project Proposal
- 3. Final Report
- 4. Presentation
- 5. Submissions
- 6. Important Dates for Submissions
1. Overview
The goal of the project is to do a miniature version of a research project. You will first pick a topic, and argue in a proposal that this is a topic worth exploring, and that you are capable and prepared to do so. You will design and implement a parallel solution to the problem you have chosen, and measure the performance of your solution. You may use whatever paralleling techniques, including Pthreads, OpenMP, MPI, MapReduce, CUDA, or OpenCL to implement your final project, and apply them on whatever research topic you think parallelization will be beneficial. You will finally present the results of your project in a final report and in a classroom presentation.
Please keep in mind that this is a research project, and not a programming project. Although the implementation of your solution is an essential component, it is only one aspect of the project, next to other equally important components, such as the evaluation and the presentation of your results. Typical research topics include parallelization and analysis of a sequential code or improvement or adaptation of a pre-existing parallel code.
The goal of the project is to explore how parallelization is implemented and the challenges you encountered during the parallelization process. You should not use off-the-shelf libraries that already have parallelization built in as part of your design.
Projects should be completed in small groups (three students per group).
Since this is a group project, you are expected to take responsibility for your role and support your teammates. If you plan to withdraw from the course, you must first discuss it with your teammates and obtain their agreement before doing so.
2. Project Proposal
Project proposal should follow ACM SIG Processings Templates (https://www.acm.org/publications/proceedings-template). Please use the ACM Sigconf format. The sections for the proposal should include:
- Title
- The participant(s)
- Introduction/motivation
- Statement of the problem (Which application did you choose for this project? Why did you choose this problem?)
- Proposed approaches, which include the block diagram (or architecture) of you system. Please describe the function of each components, and the interaction among these components.
- Language selection (What parallel language do you use? Why do you use this parallel language?)
- Related work
- Statement of expected results
- A timetable
- References
The proposal can be written in either English or Chinese.
3. Final Report
The final report should follow ACM SIG Processings Templates (https://www.acm.org/publications/proceedings-template). Please use the ACM Sigconf format.
The report should be 4 to 8 pages long, formatted with 9-point font.
The sections for the final report should include:
- Title
- The participant(s)
- Abstract: Summarize your contribution in 100 words or less. An informed reader should be able to stop at the abstract and know roughly what you are doing.
- Introduction: Background on the current state-of-the-art, why your topic is important, and what is the motivation for your work
- Proposed solution: Detailed description, but not code!
- How parallelization is done: Explain how you implemented parallelism, including your design decisions.
- Experimental methodology: Tests, input sets, environment, etc.
- Experimental results: Quantitative data and analysis!
- Related work: Relate your work to research by others. Any time you mention some other work, compare or contrast it to your own.
- Contributions of each member: Clearly state who did what.
- Conclusions: Highlight the important points of your analysis and contribution. Also give prospects for future research on this or related topics.
- References
The final report can be written in either English or Chinese.
4. Presentation
Your project presentations should be well-prepared and clearly delivered. You are expected to present your work professionally and be ready to answer questions from both the professor and your classmates.
- Slides: Please use PowerPoint or PDF format for your presentation slides, which will be accessible to all students for peer review (see more in Section 4.2).
- Presentation equipment: A laptop and a presentation remote will be provided for the presentation.
- Time limit: Time limits will be strictly enforced. A countdown timer will be available to remind you of the remaining time. Please rehearse and make sure your talk fits within the allocated time.
4.1 What should be covered in your oral presentation?
Your presentation should include the following components:
- Title
- Introduction / Motivation: What problem are you solving and why is it important?
- Problem statement: A clear definition of the problem you aimed to solve.
- Changes since proposal: Briefly mention any changes made after your original proposal (if any).
- Proposed solution: Overview of your approach to the problem.
- How parallelization is done: Explain how you implemented parallelism, including your design decisions.
- Do not simply state which programming model(s) you used. Your audience is interested in how you actually implemented parallelism and the reasoning behind your approach.
- Challenges encountered: Discuss any difficulties you faced, especially related to parallel programming.
- Evaluation
- Description of the platform used for testing (e.g., CPU, GPU, thread count).
- Evaluation based on parallelization metrics, such as speedup, scalability, efficiency, and load balancing.
- Comparison to related work or baseline implementations.
- Related work: Briefly summarize prior work and how yours differs or improves upon it.
- Contributions of each member: Clearly state who did what.
- Conclusion: Summarize your results and takeaways from the project.
Make sure your slides are clear, concise, and visually organized. This is your opportunity to showcase your understanding of parallel programming and the effort you’ve put into your project.
4.2 Peer Review
Your oral presentations will be partly evaluated by your peers. Attendance at all presentations over the final four weeks is mandatory. Each week, you’ll evaluate each presenting team by completing a review form.
IMPORTANT GUIDELINES:
- Check-In and Review Form:
- The review form will be distributed online via a local Wi-Fi network.
- Please connect using the information below to check in and obtain the URL for the review form:
- SSID: Parallel Programming
- Password: NoFreeLanes
- After connecting, log in at http://192.168.68.50 using your personal credentials.
- Team Evaluations:
- You must evaluate all teams, including your own.
- A review is valid only if you check in before the start time of the team’s presentation.
- Missing an evaluation for any team will result in a 1-point deduction from your project grade.
During the presentations, you’re encouraged to ask questions via Slido (https://app.sli.do/event/qoWTAxSsEb66hVm6W2h4j7) using the same passcode you use to access lecture slides. Check out Section 4.3 for more details about the Q&A session.
4.3 Q&A Session
During the Q&A session, please keep in mind that the goal of the project is to explore how parallelization is implemented and the challenges encountered throughout the process. Your questions should:
- Be relevant to parallelism: Focus on issues such as task decomposition, data dependencies, load balancing, synchronization, or performance bottlenecks related to the parallel implementation.
- Be constructive and specific: Avoid overly generic questions like “Have you considered using CUDA?” This type of question can apply to almost any project and doesn’t show engagement with the specifics of the work presented. Instead, if you’d like to suggest a specific programming model or approach, explain why it might be relevant to their design or challenges.
- For example, “Your project processes large image data with many independent pixel-level computations. Since these operations are highly parallelizable and data-parallel, have you considered using CUDA to leverage GPU acceleration? How might the performance compare with your current CPU-based implementation using OpenMP?”
The goal is to encourage thoughtful discussion that helps everyone better understand the design choices and trade-offs in parallel programming.
IMPORTANT GUIDELINES:
- Use your student ID as your full name on Slido for attendance tracking.
- Over the four weeks, you are required to post at least one questions on Slido (that are marked as “Answered”).
- Missing this requirement will result in a 5-point deduction from your project grade.
- Each team will respond to a maximum of four questions.
- The Slido Q&A session for each team will open near the end of their presentation.
5. Submissions
The electronic version of the proposal, final report, presentation slide, and the source codes of your implementation must be uploaded to the e-Campus system. The penalty for late submission is 15% per day (weekends count as 1 day).
6. Important Dates for Submissions
- Group registration due on September 18, 2025
- Project proposal due on October 16, 2025
- Presentation slides due by 23:59 the day prior to your presentation
- Final report and source codes due on December 22, 2025