~ /reference /glossary
Reference · Glossary

The vocabulary of parallel performance.

Key terms from Phase I and Phase II, grouped by topic. Start with the group that fits your question, then use the definitions to read the reports, tables, graphs and code.

Core conceptsPhase I · processesPhase II · threadsMeasurement

Core parallel computing#

Baseline
The reference used for comparison. In Phase II, the baseline is the 1-thread run.
Benchmark
A controlled performance test that measures execution time under fixed conditions.
Concurrency
Multiple tasks making progress in overlapping time periods. Concurrency does not always mean the tasks run at the same instant.
Correctness check
A step that confirms the multithreaded result matches the single-thread result.
Data parallelism
A strategy that applies the same operation to different parts of the data at the same time.
Execution time
The total time a program or configuration takes to finish. This project reports it in milliseconds.
Overhead
The extra cost of running in parallel, such as thread creation, synchronization, scheduling or process management.
Parallelism
Using multiple processing units, threads or processes to do work simultaneously.
Scalability
How performance changes as more threads or processes are added.
Speedup
How much faster a parallel version is than the baseline. In this project, Speedup = T(1) / T(n).
Synchronization
The coordination that ensures parallel tasks finish safely and their results are combined correctly.
Throughput
The amount of work completed per unit of time. This project focuses on execution time, which is closely related.

Phase I · Processes#

Child process
A process created by another process with fork().
fork()
A Unix system call that creates a new child process. Phase I uses it to divide matrix multiplication across processes.
wait()
A system call the parent uses to pause until its child processes finish.
Matrix multiplication
The Phase I workload: multiplying matrices A and B to produce matrix C.
Process
An independent running program with its own execution state and resources.
Process-based parallelism
Parallel execution achieved by running multiple processes rather than multiple threads.
Virtual machine (VM)
A software-based computer. Phase I ran Ubuntu Linux in one to keep the environment controlled.

Phase II · Threads#

Array partitioning
Dividing the input array into non-overlapping ranges so each thread processes a different slice.
Chunk
A contiguous part of the array assigned to one worker thread.
join()
In Java, makes one thread wait until another finishes. Phase II calls it before combining the partial sums.
Multithreading
Using multiple threads inside one program to do work in parallel.
Partial sum
The result one worker computes locally, before all the workers' results are added together.
Runnable
A Java interface for code that can run on a thread. Summer.java implements it.
Sum of cubes
The Phase II workload: each array value contributes x^3 to the final result.
Thread
A lightweight unit of execution inside a process. Threads share the same memory but can work on different parts of a task concurrently.
Thread configuration
The number of threads used in one experiment run: 1, 2, 4, 6 or 8.
Worker thread
A thread responsible for computing one assigned part of the input.

Measurement & reporting#

Average execution time
The mean runtime across repeated runs of the same configuration.
Configuration
A specific test setup, such as a given matrix size, process count or thread count.
Controlled experiment
An experiment where only the chosen variables change and everything else stays fixed.
Graph interpretation
An explanation of what a graph shows and why the trend appears.
Machine specifications
The hardware and software details of the benchmark machine, such as CPU, RAM, OS and Java version.
Percentage improvement
The percentage reduction in execution time compared with the baseline: ((T1 - Tn) / T1) * 100.
Raw timing data
The run-by-run execution times, before averaging.
Reproducibility
Whether the same setup and method produce comparable results when the experiment is repeated.
No terms match that filter.

Project reference#

The official repository: CS330-Parallel-Performance-Evaluation-in-Linux-Project.