What the project covers#
Process-based parallelism#
Use fork() and wait() on Linux to divide matrix multiplication rows across child processes.
Thread-based parallelism#
Split a sum-of-cubes computation across Java worker threads and study how it scales from 1 to 8 threads.
Timing and analysis#
Measure with clock() in C and System.nanoTime() in Java, then compute speedup and percentage improvement.
Reproducible documentation#
Record the setup steps, run controlled experiments, and publish formatted results and reports for both phases.
Objectives#
- Understand Linux process creation and parent–child synchronization.
- Explore multithreading in Java and how work is divided among threads.
- Measure execution time under different parallel configurations.
- Analyze scalability and the overhead that limits it.
- Compare process-based and thread-based parallelism.
- Practice clear, structured technical documentation.
Scope#
The project is about experimental evaluation, not algorithm design. The provided programs are used as they are. Only their configuration parameters change, and every change is measured.
| Phase I | Phase II | |
|---|---|---|
| Mechanism | Processes (fork() / wait()) |
Threads (Runnable / join()) |
| Language | C, compiled with GCC | Java, OpenJDK 25 |
| Workload | Matrix multiplication | Sum of cubes over 1,000,000 integers |
| Variables | Matrix size N, process count PROCS |
Thread count: 1, 2, 4, 6, 8 |
| Machine | UTM VM, Ubuntu 24.04 ARM64, 4 cores, 4 GB | MacBook Air, Apple M2, 8 cores, 8 GB |
| Timer | clock() (CPU time) |
System.nanoTime() (wall time) |
| Runs per config | 3 | 12 |
Tools and technologies#
Linux (Ubuntu)#
The Phase I runtime environment for process creation and benchmarking.
C + GCC#
System-level code for process-based parallel matrix multiplication.
Java#
The multithreaded implementation and its timing harness in Phase II.
fork() / wait()#
The process-management primitives used in Phase I.
Java threads#
Workload division and synchronization with Thread and join().
MkDocs#
Builds this site from Markdown, using a custom theme.