Skip to content

Glossary

Key terms used throughout the CS330 parallel performance project, with emphasis on the concepts that appear in Phase I and Phase II.


Glossary Guide

  • Project Reference


    Quick access to the official GitHub repository used throughout the report, code appendix, and documentation.

  • Core Parallel Terms


    Concepts such as speedup, synchronization, overhead, scalability, and data parallelism that apply across the whole project.

  • Phase I Concepts


    Process-based execution terms such as fork(), wait(), child process, matrix multiplication, and virtual machine setup.

  • Phase II Concepts


    Thread-based execution terms such as array partitioning, worker thread, Runnable, partial sum, and thread configuration.

  • Measurement Terms


    Reporting vocabulary used in the benchmark analysis, including average execution time, percentage improvement, reproducibility, and raw timing data.

  • How To Use This Page


    Start with the section that matches your question, then use the definitions to interpret the reports, results tables, graphs, and source code.


Project Reference


Core Parallel Computing Terms

Baseline

The reference version used for comparison. In Phase II, the baseline is the 1-thread run.

Benchmark

A controlled performance test used to measure execution time under fixed conditions.

Concurrency

The ability of multiple tasks to make progress during overlapping time periods. Concurrency does not always mean tasks run at the exact same instant.

Correctness Check

A verification step that confirms the multithreaded result matches the single-thread result.

Data Parallelism

A parallel strategy where the same operation is applied to different portions of the data at the same time.

Execution Time

The total time a program or configuration needs to finish running. This project reports execution time in milliseconds.

Overhead

Extra cost introduced by parallel execution, such as thread creation, synchronization, scheduling, or process management.

Parallelism

The use of multiple processing units, threads, or processes to perform work simultaneously.

Scalability

How well performance changes as more threads or processes are added.

Speedup

A performance metric showing how much faster a parallel version is compared to a baseline. In this project:

Speedup = T(1) / T(n)

Synchronization

The coordination required to make sure parallel tasks finish safely and their results are combined correctly.

Throughput

The amount of work completed in a period of time. This project focuses more on execution time than throughput, but both are related.


Phase I Terms

Child Process

A process created by another process using fork().

fork()

A Unix system call that creates a new child process. Phase I uses fork() to split matrix multiplication work across processes.

wait()

A system call used by the parent process to pause until child processes finish.

Matrix Multiplication

The computation performed in Phase I, where matrices A and B are multiplied 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 used in Phase I to run Ubuntu Linux inside a controlled environment.


Phase II Terms

Array Partitioning

Dividing the input array into non-overlapping ranges so each thread processes a different slice.

Chunk

A contiguous portion of the array assigned to one worker thread.

Join

In Java, join() makes one thread wait until another thread finishes. This is used in Phase II before combining partial sums.

Multithreading

Using multiple threads inside one program to perform work in parallel.

Partial Sum

The local result computed by one worker before all worker results are added together.

Runnable

A Java interface used to define code that can run on a thread. Summer.java implements Runnable.

Sum of Cubes

The Phase II workload where each array value contributes x^3 to the final result.

Thread

A lightweight unit of execution inside a process. Threads share the same memory space but can perform different parts of the work concurrently.

Thread Configuration

The specific number of threads used in one experiment run, such as 1, 2, 4, 6, or 8.

Worker Thread

A thread responsible for computing one assigned portion of the input data.


Measurement And Reporting Terms

Average Execution Time

The mean runtime across repeated runs of the same configuration.

Configuration

A specific test setup, such as a chosen matrix size, process count, or thread count.

Controlled Experiment

An experiment where only selected variables change while the rest of the setup stays fixed.

Graph Interpretation

The explanation of what a graph shows and why a trend appears.

Machine Specifications

The hardware and software details of the machine used for the benchmark, such as CPU, RAM, OS, and Java version.

Percentage Improvement

The percentage reduction in execution time compared to the baseline. In this project:

((T1 - Tn) / T1) * 100

Raw Timing Data

The unprocessed run-by-run execution times recorded before averaging.

Reproducibility

The ability for the same setup and method to produce comparable results when the experiment is repeated.