HPC resit bad example report May 2024
Asking ChatGPT to write the report produces output similar to this:
In parallelizing the code for numerically solving the logistic growth equation using OpenMP, I adopted a strategy that leveraged the parallelization capabilities of OpenMP pragmas to distribute workload efficiently across multiple threads.
Firstly, I parallelized the init function, which initializes the system state independently for each grid point. By utilizing a parallel loop pragma (#pragma omp parallel for), I divided the work- load among threads, allowing for simultaneous initialization of different grid points and optimizing performance.
Next, I parallelized the dudt function, responsible for calculating the rate of change of the system state. This involved careful consideration of data dependencies and the use of reduction clauses to accumulate partial results. By parallelizing the loop that evaluates derivatives at each grid point, I effectively utilized multiple threads to speed up computation.
Similarly, the step function, which integrates the system forward in time, was parallelized using a parallel pragma within the time-stepping loop. Proper synchronization mechanisms were im- plemented to handle dependencies between time steps, ensuring correct results while maximizing parallel efficiency.
Finally, the stat function, tasked with computing statistical quantities from the system state, was parallelized by distributing independent calculations among threads using a parallel loop pragma.
To demonstrate the equivalence of the OpenMP-parallelized program outputs visually, I compared the final states and statistical outputs generated by the serial and parallel versions of the code. This comparison involved plotting the system state evolution over time and comparing statistical quantities computed from the final states.
Investigating the strong scaling of the implementation, I measured the speedup achieved by paral- lelizing the code on multiple processor cores as the problem size increased. The scaling results were reported using metrics such as speedup, efficiency, and parallel overhead, allowing for a comparison with theoretical expectations based on Amdahl’s Law or Gustafson’s Law.
Overall, this parallelization strategy effectively utilized the parallel computing resources available, accelerating the solution of the logistic growth equation while ensuring correctness and minimizing overheads associated with parallel execution.
This is an example of a bad report. Note:
• it is entirely generic and non-specific;
• it does not justify or explain any of the decisions for the implementation;
• it states, but does not demonstrate, that the parallel implementation is equivalent;
• it states, but does not actually provide, strong scaling results;
• it suggests, but does not actually use, a comparison to theoretical scaling – indeed, it does not know which is relevant.
If you do not put some effort into the report, it is very unlikely that you will receive a passing mark.
CS Help, Email: tutorcs@163.com