Phase I · Process-based, on Linux#
Execution environment#
An Ubuntu/Linux environment with a reproducible setup.
Implementation stack#
A C program compiled with gcc, using process creation and synchronization with fork() and wait().
Experimentation#
Controlled matrix multiplication runs with different matrix sizes and process counts.
Reporting#
Document the setup, commands, results tables and performance analysis.
Phase II · Multithreaded Java#
Core task#
Modify the Java program to compute the sum of cubes of the array elements, then evaluate its performance on a multi-core system.
Implementation requirements#
- Use integer array values strictly less than
100. - Support these thread counts:
1,2,4,6,8. - Measure the execution time for each thread count.
- Compute speedup and percentage improvement relative to the single-thread baseline.
Required analysis#
- Compare how execution time behaves across thread counts.
- Explain why performance improves or degrades.
- Discuss thread creation overhead, scheduling overhead and CPU core utilization.
- Identify the thread count after which performance starts to decrease.
Submission checklist#
Submit one ZIP package containing:
Modified Java source code#
The final, commented version of the benchmark.
Results tables#
A summary in tabular form, including the main table: Threads, Execution Time, Speedup, % Improvement.
Graphs#
Graphs that show the performance trends.
Short explanation#
At most 1000 words, including the thread count after which performance decreases.
Machine specifications#
Processor model, number of cores, RAM and operating system, for reproducibility.
Marking scheme · 100 marks#
| Criteria | Marks |
|---|---|
| Understanding and explanation of the provided code | 15 |
| Successful execution and verification of the original program | 10 |
| Correct implementation of the required mathematical modification | 15 |
| Implementation with multiple thread counts (1, 2, 4, 6, 8) | 10 |
| Accurate runtime measurement and data collection | 10 |
| Correct speedup and percentage-improvement calculation | 10 |
| Quality of performance analysis and explanation | 15 |
| Code quality, readability and documentation | 5 |
| Proper results table and formatting | 5 |
| Machine specifications and reproducibility details | 5 |
Academic integrity
All submitted work must be original and follow university policy. External references must be properly attributed.