~ /project-overview /requirements
Project · Requirements

What the brief asked for.

The latest course requirements for both phases in one place. Phase II requirements were updated on February 28, 2026, following the instructor's latest brief.

Updated 28 Feb 2026100 marks · Phase II≤ 1000-word explanation

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.