CS 374 introduces the ideas and concepts of
high performance computing, including programming and architecture.
Students gain practical experience programming
Calvin's Beowulf cluster.
Instructor:
Professor Joel Adams
Texts:
-
For sale in the bookstore:
An Introduction to Parallel Programming (2nd Ed), Pacheco
-
Free, online:
PDC For Beginners, Adams, Brown, Matthews, Shoop
-
Free, online:
Intermediate PDC, Shoop
Grading:
Your grade in this course will depend on your successful completion of
weekly homework projects and the final exam.
These will be weighted at 75% and 25%, respectively.
Each homework project has three parts:
-
Programming:
Write one or more programs that solve a problem.
See
my code-style guidelines
for my expectations and standards for the programs you write.
-
Data Collection and Visualization:
Collect data by running your programs,
varying the number of processing elements
(i.e., processes or threads) and/or the problem size,
and recording their execution times.
After the data are collected, create
charts or other visualizations for your analysis (see next).
-
Analysis:
Write a detailed analysis of the data you collected, explaining what
the data reveal about your program's performance.
Since you will have one of these projects each week,
you should aim to (i) complete the programming within 3 days,
(ii) complete the data collection and visualization the next day, and
(iii) complete your written analysis the next day.
That still leaves you two "HPC-free" days each week.
Late Work Policy:
Unless noted otherwise,
projects are due at the beginning of lab on Wednesdays.
(i.e., must be submitted to me on or before then),
or they will be considered late.
Late submissions will incur a 3x point penalty,
where x is the number of days late, for 0 < x < 4:
| Days Late |
Penalty |
| 1 |
3 |
| 2 |
9 |
| 3 |
27 |
| 4 |
no longer accepted |
Requests for extensions will not be granted without
written confirmation from Student Life that you are
undergoing exceptional circumstances.
We have a new project each week; the goal of this policy
is to encourage you to keep up and not fall behind,
while providing some grace/flexibility.
AI Policy:
Since this is an advanced CS course, you may try to use AI
code-generating tools on the homework projects.
However, be aware that you:
-
Are responsible for ensuring that the AI-generated code
is fully correct and that it completely solves the problem.
-
Must acknowledge the use of the AI tool in the header comment
of any file containing AI-generated code.
-
Must add at least 2 extra pages to your project analysis
documenting your experience using the AI tool, including
- which AI tool you used,
- the tasks for which you tried to use it,
- the exact prompts you used,
- an indication of what worked (and what didn't),
- how accurate (or inaccurate) the AI's code was,
- how much time you think the AI saved (or cost) you, and
- any other interesting things you discover through using the AI tool.
Since project analyses without AI are typically about two pages,
using an AI tool may save you coding time,
but it will roughly double the length of your project's
written analysis.
Disabilities Policy:
Calvin University has a continuing commitment to providing
reasonable accommodations for students with documented disabilities.
Students with disabilities who may need some accommodation
in order to fully participate in this class are urged to contact
Disability Services in the Center for Student Success as soon as possible,
to explore what arrangements need to be made to assure access:
disabilityservices@calvin.edu.
Calvin >
CS >
374 >
Policies
This page maintained by
Joel Adams.