A topic in the Open Knowledge Graph — a free, open map of 15,290 topics and the order to learn them in.

NC Class and Parallel Circuit Complexity

Graduate Depth 85 in the knowledge graph ☐ I know this ☆ Set as goal
488prerequisites beneath it
See this on the map →
Circuit ComplexityTime Complexity and the Class P→
parallel-computation circuits depth-bounds

Core Idea

NC (Nick's Class) contains languages computable by circuits of polynomial size and logarithmic depth. These circuits model highly parallel computation: depth corresponds to parallel time while size represents total operations. NC ⊆ P, and whether NC = P remains open. NC-hierarchy captures degrees of parallelizability, with NC1 (linear size, log depth) being particularly fundamental for understanding parallelism.

Explainer

From your study of circuit complexity, you know that Boolean circuits measure two distinct resources: size (total gates, corresponding to work) and depth (longest path from input to output, corresponding to time if gates can compute in parallel). NC exploits this separation: it defines the class of problems solvable with polynomial total work but only logarithmic parallel time.

The key intuition is that depth measures how many sequential steps you need if you have unlimited processors. Consider adding two n-bit numbers: naively done left to right, you have n sequential carries — depth Θ(n). But with a carry-lookahead tree, you can compute carries in O(log n) depth using O(n) gates. This is why integer addition is in NC1 (circuits of O(n) size and O(log n) depth). More generally, NCi consists of problems solvable by polynomial-size circuits of depth O(logi n). The full class NC = ∪_i NCi is what you can solve in polylogarithmic parallel time.

NC ⊆ P follows directly: a polynomial-size, polylogarithmic-depth circuit can be evaluated in polynomial time sequentially (just evaluate gate by gate in topological order). The reverse containment NC = P is open — it asks whether every polynomial-time algorithm can be efficiently parallelized down to polylogarithmic depth. The intuition for why P ≠ NC is plausible: some problems seem inherently sequential, where each step depends critically on the previous result.

The NC hierarchy refines parallelizability: NC1 captures the most aggressively parallelizable problems (formula evaluation, regular languages), while NC2 captures linear algebra over finite fields (matrix multiplication). Between NC and P lies an important class called P-complete: problems that are in P but believed not to be in NC because they capture sequential computation. The canonical P-complete problem is circuit value problem (CVP) — evaluating a given circuit on a given input — with all the irony that the very model used to define NC turns out to characterize its complement.

Practice Questions 5 questions

Prerequisite Chain

Understanding Zero → The Number Zero → Counting to Five → Counting to 10 → Counting to 20 → Counting a Set of Objects Up to 20 → Cardinality: The Last Number Counted → Matching Numerals to Quantities → Subitizing Small Quantities → Addition Within 10 → Number Bonds to 10 → Addition Within 20 → Doubles and Near Doubles → Doubles Facts Within 10 → Near Doubles Facts Within 20 → Mental Math Strategies for Addition → Mental Math: Adding and Subtracting Tens → Addition Within 100 → Repeated Addition as Multiplication → Multiplication as Equal Groups → Multiplication: Arrays → Basic Multiplication Facts (0s, 1s, 2s, 5s, 10s) → Multiplication Facts Within 100 → Division as Equal Sharing → Division as Grouping (Measurement Division) → Division: Grouping (Repeated Subtraction) Model → Division: Fair Sharing Model → Division as Equal Sharing → Division as Grouping → Basic Division Facts → Division Facts Within 100 → Multiplication and Division Fact Families → Relationship Between Multiplication and Division → Division Facts as Inverse of Multiplication → Remainders and Quotients in Division → Division Word Problems → Multi-Step Word Problems → Solving Multi-Step Word Problems → Multiplication Word Problems → Division Word Problems → Introduction to Long Division → Factors and Multiples → Prime and Composite Numbers → Equivalent Fractions → Relating Fractions and Decimals → Decimal Place Value → Integers and the Number Line → Comparing and Ordering Integers → Absolute Value → Adding Integers → Subtracting Integers → Multiplying Integers → Dividing Integers → Unit Rates → Proportions → Percent Concept → Converting Between Fractions, Decimals, and Percents → Operations with Rational Numbers → Two-Step Equations → Solving Multi-Step Equations → Equations with Variables on Both Sides → Literal Equations → Slope-Intercept Form → Point-Slope Form → Writing Linear Equations → Parallel and Perpendicular Line Slopes → Graphing Linear Equations → Piecewise Functions → Step Functions → Composition of Functions → Inverse Functions → Radical Functions and Graphs → Rational Exponents → Exponential Functions and Graphs → Logarithms Introduction → Big-O Notation and Asymptotic Analysis → Breadth-First Search (BFS) → Shortest Paths in Unweighted Graphs → Dijkstra's Shortest Path Algorithm → Algorithm Analysis and Big-O Notation → Turing Machines → Time Complexity and the Class P → Nondeterministic Turing Machines → Space Complexity: PSPACE, L, and NL → Circuit Complexity → NC Class and Parallel Circuit Complexity

Longest path: 86 steps · 488 total prerequisite topics

Prerequisites (2)

Leads To (0)

No topics depend on this one yet.