Computer Science 335
Parallel Processing and High Performance Computing
Fall 2026, Siena University
One of the requirements for this course is to complete a final project. You may choose your own topic related to parallel processing to study in more detail than we have as a class. You will report on your project through a paper and presentation at a minisymposium to be held at the end of the semester.
You are encouraged to work in groups of size two or three. Individual projects or groups of size four may be approved on a case-by-case basis. Groups must be formed and all repositories created (regardless of group size) by Monday, November 2, 2026.
Scope
All projects will involve software development, but the amount and complexity of the coding effort may vary from topic to topic. Some projects will involve more effort to learn new parallel programming paradigms or languages. Some projects will use techniques we learned in class but apply them in new areas or conduct studies. These differences will be acknowledged through the breakdown which includes categories for the final paper submission (20%) and the software submission (15%) but also a research component (20%). The research component is evaluated in a project-specific context. It is some combination of more substantial software development, or a more in-depth study of a parallel programming language/library/algorithm/paradigm, or a more detailed timing or efficiency study. The rubric for this component will be proposed in the progress report, and must be agreed upon in consultation with the instructor before the submission deadline for the progress report.
Grading
This assignment will be graded out of 100 points.
|
Feature | Value | Score |
| Proposal: description | 6 | |
| Proposal: milestones and schedule | 2 | |
| Progress Report: accomplishments to date | 2 | |
| Progress Report: updated schedule | 1 | |
| Progress Report: paper outline | 3 | |
| Progress Report: sources used to date | 1 | |
| Paper Draft: format and organization | 1 | |
| Paper Draft: narrative quality and completeness | 7 | |
| Paper Draft: software description | 6 | |
| Paper Draft: complete citations | 1 | |
| Presentation: content | 4 | |
| Presentation: preparation of materials | 3 | |
| Presentation: quality of delivery | 3 | |
| Software Demo (during presentation or separately) | 5 | |
| Final Paper: format and organization | 2 | |
| Final Paper: narrative quality and completeness | 10 | |
| Final Paper: software description | 6 | |
| Final Paper: citations | 2 | |
| Software Submission: in-code documentation | 3 | |
| Software Submission: design, style, efficiency | 2 | |
| Software Submission: implementation correctness | 10 | |
| Research Component (rubric to be agreed upon) | 20 | |
| Total | 100 | |
This final project accounts for 20% of the course grade. The grade will be based on all aspects of the project.
Matching Groups to Projects
Through 10:20 AM, Friday, October 30, 2026, we will work toward matching group interests to make sure we end up with a good collection of projects by contributing to a shared document. Please start thinking about project ideas right away and put those ideas in the document. This document can also help those looking to form groups to find others with similar interests.
Here are some ideas to consider when choosing your topic:
These are just ideas, and you should not restrict yourself to this list. Hopefully everyone can find an appropriate topic that they find interesting. You might also find it useful to browse recent journals and conferences proceedings to get a feel for some current research projects in parallel processing. The Supercomputing conference is a top conference in the field, for example.
A dedicated multi-core Linux virtual machine on Siena's cloud server can be created for any group that would like to use such an environment for development. This would also allow you to pursue a project that requires administrative access. If you think you may be interested in this, request it early to get it set up.
We have additional service units on Stampede3 or other NSF Access resources. You are welcome to request the use of those. If you would like access to a system other than Stampede3, some additional configuration will be needed, so get started on that right away.
Points are not awarded for participating in group formation and topic selection, but a penalty of 2 points will be applied to the proposal portion of the project grade for anyone who does not participate.
Repository Creation
Rather than creating repositories through the GitHub Classroom mechanism we usually use, each group can create a repository for their project, housed in one group member's GitHub account, with other group members granted write access and your instructor granted read access (if the repository is private). Alternately, you can request a repository to be created in our course's GitHub organization, and it will be shared with all group members.
Submit your repository's URL through the "Final Project Group Formation and Project Selection" assignment in Canvas, no later than Monday, November 2, 2026.
Document Formats and Sharing
The parts of the project that involve submission of a document (proposal, progress report, draft, and final paper described below) may be submitted by providing any of the following in the appropriate Canvas assignments:
.docx Word file shared there, if you prefer)
The Proposal
By 10:20 AM, Monday, November 9, 2026, submit a link to a one page proposal in the "Final Project Proposal" Canvas assignment. Your proposal should briefly describe the project you plan to complete and how you plan to go about it. Describe the major milestones for your project, a rough schedule for achieving these milestones, and which milestones you believe are most important for your project to be considered a success. If you will need access to any special hardware or software, include that in your proposal. Your proposal should make it clear that you have an interesting, worthwhile, and relevant topic and that it is feasible in the time available.
The Progress Report
By 4:00 PM, Tuesday, December 1, 2026, submit a link to a progress report in the "Final Project Progress Report" Canvas assignment. This should consist of a detailed outline (or better yet, an early draft) of your paper including sources, and a description of the design and current implementation status of your software, as well as a more specific timetable for completion of the project.
Additionally, the progress report should include the rubric for the research component portion of the project grade, as agreed upon in discussion with the instructor before submission.
The Paper
The writeup should be organized as a technical research paper.
You should begin with a title, author list, and abstract. For the abstract, follow the guidelines in Koopman's How to Write an Abstract.
The main body of the paper should be organized into sections including:
Proper English and a good technical writing style are important. Writing well is very difficult - it is an iterative process and cannot be done all at once. Be precise and be concise. Check your spelling and grammar carefully.
Most papers will be around 15 single-sided pages, using 1.5 spacing, one inch margins, and a 12-point Times Roman font (or as close as you can come). Please do not adjust margins and font sizes to force a certain length.
To make code segments easier to read, please typeset those in a
fixed-width font (likely Courier). This includes code inline in text
("for this, the printf function is used") or in a code block
like
int main() {
printf("Hey, this is a nice fixed-width font!\n");
return 0;
}
LaTeX is a very powerful typesetting tool. You are not required to use it, but are welcome to give it a try. My LaTeX example in a GitHub repository is already set up with an appropriate format that you can upload to the Overleaf site.
Length is not important - content and quality are. Papers shorter than 10 pages or longer than 20 pages are acceptable, if the length is appropriate for the content.
There will be 2 paper submissions:
The more complete the draft, the better feedback you will receive to be able to improve it and the more you can focus on coding, experiments, and analysis in the remaining time. The draft should probably not include an abstract yet, as it is often best to write that last so it can serve as an effective summary of your final product. You may also submit additional drafts for feedback, but keep in mind that it may take a day or two to get to them.
The Project
You should submit your source code and instructions on how to build and run it. The software should be described in the paper, and must be well-documented in a form appropriate for the programming language(s) used. Source code should be committed and pushed to your repository and demonstrations completed (if not part of your presentation as described below) by 1:30 PM, Thursday, December 17, 2026.
The Presentation
Presentations of 15-20 minutes each will take place during a class minisymposium to be held during our exam slot, 1:30-3:30, Thursday, December 17, 2026. All group members must participate in the presentation. Attendance is required for the entirety of all presentation sessions, not just when your group is speaking (penalties will apply if needed).
Your presentation should include background information on your project, the motivation for your project, a description of what you did, and a summary of what you learned. Software demonstrations may also be appropriate. Note that if you do not include a sufficient software demonstration in your presentation, your software must be demonstrated separately.
Prepare slides or a series of web pages. Rehearse your presentation, paying special attention to timing.
Please also submit a link to or a file containing your presentation materials through the "Final Project Presentation" Canvas assignment by 1:30 PM, Thursday, December 17, 2026.
Academic Honesty Guidelines
Collaboration within a group is unrestricted. Since each group is working on a different project, you are free to discuss your projects with each other. If you wish to use or refer to any software libraries or outside source code beyond the standard language (C, C++, Java) libraries, check first. All sources must be cited properly. If in doubt about anything related to Academic Honesty, ask now and avoid problems later!
Use of AI assistance is permitted, and could be of great value to make this project a better learning experience. Of course, AI cannot do the whole project and still have that be the case. AI use should be acknowledged and described, whether it is used as an aid in software development, formulating, performing, and analyzing studies, or in the presentation of the results.
Final Thoughts
You have several weeks, so the expectation is for several weeks of work. You will not be able to do a good job if you put it off. It does not need to be a Ph.D. dissertation, but it must be significantly more substantial than a standard 12 week programming assignment.