You are on page 1of 2

Parallel Programming Labs

Labs will be accepted no later than 12/12/19 (the last day of finals).

Labs
There are four required labs in this class. The first three are set for you, with some flexibility in the 4 thlab.
Each lab has a starting project found at https://gitlab.com/OC-ParallelProgramming.

Lab 1 (warmup):
Due 11/14 Use a Monte-Carlo methodto calculate the value of the mathematical constant π. This is
Problem 5.2 in Section 5.13, pages 267-268.

Lab 2:
Due 11/21 Implement the parallel sum method as described by the book. This is described in Section
1.3, pages 3-6.

Lab 3:
Due 12/5 Parallelize drawing the Mandelbrotset.

Lab 4:
Due 12/12 Parallelize a sort of your choosing (for instance, a bubble, insertion, quick, or merge sort).

Graduate students:
Implement a parallel merge or quick sort. Optionally, you may implement the
Samplesort/PSRSalgorithms. Additional information about the PSRS algorithm can be
found here.

Guidelines
OpenMP
This class utilizes OpenMP only, due to the quick nature of the course (as well as the fact that OpenMP
lends itself to being able to create parallel code without having to deal with the more technical side). If
a referenced book problem asks for other solutions, you only need to implement the OpenMP
portions.

Default Setup
Setup guides for CMake and CLion are as follows:
● Windows: https://git.io/oc-parallel-programming-windows
● macOS: https://git.io/oc-parallel-programming-macos
● Linux: https://git.io/oc-parallel-programming-linux
Readability
Any code that is poorly formatted will not be accepted. Nearly all IDEs (and many text editors) have the
ability to automatically format your code. Please use this functionality to your advantage. Furthermore,
your code should be clear to follow and documented.

It is perfectly acceptable to utilize the internet and sites like StackOverflow to help with code. If you use
code from a site, you must attribute your sources. Failing to do so may be the difference between a
passing lab and a failing one. You may also collaborate with students for help; however, sharing code
between students is not allowed (and is very easy to catch).

Submitting labs
Labs will be accepted no later than 12/12/19 (last day of finals).
All code must be hosted in a git repository on GitHub or GitLab. It is free to make an account and host
your code. If you are unfamiliar with either, please see the GitHub guides (GitLab gives a walkthrough
upon making an account). If you are completely unfamiliar with git, Google it or use the guide made by
Atlassian. There are many graphical tools to help you with git if you are uncomfortable interacting
directly.
A link to the repository must be sent to brooke.dobbins@eagles.oc.edu. Submissions will be graded as
received. You may make changes based on feedback; the submission will be reevaluated if you give
notice of updates. Otherwise, it will be assumed that you do not want a reevaluation. Partial solutions
will earn credit. All labs must use the starting projects.
Tooling
There are many free tools out there to help you with coding. I would highly suggest using CLion, but
any text editor (Visual Studio Code, Notepad++) or IDE (Visual Studio, NetBeans, Eclipse) may be used.
Tools for interacting with git include GitKraken, SourceTree (Windows and Mac only), and TortoiseGit
(Windows only).
All solutions will be run on Linux using CMake and gcc as the default setup. You may use a specific
platform (i.e. Windows) or compiler (gcc, clang, etc.) but all instructions must be provided for doing so.
For financial and legal reasons, no OSX-specific code can be run. For this class you should avoid writing
OS-specific code, and it is relatively easy to do so.

Getting Help
One-on-one Help: Can be requested as needed, which can be done in person or via video chat.
Typical available hours are as follows:
● M 6pm-10pm
● W 6pm-10pm
● F 6pm-10pm
If these times do not work, additional times may be requested but will depend on availability. These
hours are typical, and there may be days in which the availability is different. However, every effort will
be taken to make sure these times are available.
To request help, please email brooke.dobbins@eagles.oc.edu. Most problems should be solvable
with a simple email chat. If it’s a code question, remember to email your repository as well.

You might also like