Projects
Project Descriptions
-
Project 1: Dynamic Programming
- Project Description
- You can generate random test data with the following command: cat /dev/urandom | tr -dc 'HGWT' | fold -w 10000 | head -n 1 > test1.txt Change 10000 to the length you want. On some Linux systems, you may need to change -w to -n.
- Here is a file of sample data and the results produced by my code. For my program, I specify a data file and a number \(n\) of initial characters to process. So, for example, \(n = 100\) means "read the first 100 characters of the file and compute the maximum number of matchings from that string." The results file includes my answer for several values of \(n\).
-
Project rubric:
- Recursive formula for \(OPT(i, j)\) and proof of optimal substructure — 15 points
- Design of algorithm to compute the size \(|S|\) of a maximal line folding for a given input sequence — 15 points
- Design of algorithm to recover the maximal line folding \(S\) for a given input sequence — 10 points
- Analysis and asymptotic bounds for the algorithm to compute \(|S|\) — 15 points
- Implementation of algorithms — 20 points
- Empirical performance data and comparison with theoretical running time — 20 points
- Quality of writing — 5 points
- When timing your implementation, you only want to time the dynamic programming portion, which is the computation of \(OPT(1, n)\). In particular, do not include the reconstruction code in your timings.
- Your implementation must be able to run on GL.
-
Project 2: Multithreaded Algorithms
- Project Description
- example2.c is a second, simpler example of using OpenMP. Note in particular the use of the omp_get_wtime() function.
- example2.slurm is the slurm file that goes with example2.c. It requests a 16-core node (hpcf2013).
- example.c — C program for use with example.slurm. Compile with icc example.c -openmp -o example
- example.slurm — Sample slurm batch file. Submit with sbatch example.slurm.
Project Policies
You may work with a partner on your projects. If you choose to work with a partner, be sure that all submitted files are clearly marked with both students' names. Partners must work together on the entire project (milestones, if any, and final submission).
General Project Rules
- You (and your partner) should try as much as possible to complete the project by yourselves.
- You may get assistance only from your instructor or TA.
- You must document all help that you receive.
Apart from working with your partner, you MAY NOT
- Copy anyone else's code,
- Have someone else write your code for you,
- Submit someone else's code as your own,
- Look at someone else's code, or
- Have someone else's code in your possession at any time.
See the Acadmeic Conduct portion of the syllabus for more more informtion, including the penalties for academic misconduct.
Project Submission
Projects will be submitted on Blackboard.
Late Policy
The due date and time for each project will be found on the course schedule and in the project description. A project is considered late if even one of the submitted files is timestamped past the due date and time.
If a project is late, the following grade penalties will apply:
- Up to 24 hours late: 15 point reduction
- 24 to 48 hours late: 40 point reduction
- More than 48 hours late: no credit
All due dates and times, and assessments of late penalties, are firm.