Eigenvalues, singular values, rank

How wide the block should be

A block narrower than the multiplicity does not converge slowly — it never returns the missing copy at all. Above the multiplicity every extra column buys iterations at about ten products with A each. And the mechanism that is supposed to make the choice unimportant never fires from a random start.

Worth reading first: The plane survives what its vectors do not · An eigenvalue that arrives twice · A reduction that changes the order.

An eigenvalue one vector cannot see settled what a block of two is for. A Krylov space built from one starting vector meets a two-dimensional eigenspace in exactly one direction, whatever that vector is, so a single-vector method returns one copy of a doubled eigenvalue — at 12, 16, 20 and 24 steps alike, the last on a space of dimension 23 in a 24-dimensional problem. It is not slow convergence. The second copy is not in the space.

That essay used a block of two and left the obvious question: how wide should the block be in general?

The question has a clean answer and an uncomfortable corollary. The answer is exact rather than empirical — it falls out of a statement about dimensions, not out of a convergence rate — and it says the width must be at least the multiplicity. The corollary is that the multiplicity is not something the method can find out, so the one parameter that decides whether the answer is complete has to be supplied from outside the computation.

Products with A to return all 2 copies, against the block widthOne bar per block width. Widths below 2 return fewer copies than the eigenvalue has, at every step count up to a basis of half the problem's dimension, and are marked rather than drawn. The cheapest width that works is 2, at 32 products with A; the widest drawn costs 84.an eigenvalue repeated 2 times, in a 200-dimensional problemblock of 1never returns them allblock of 232 products, 16 stepsblock of 351 products, 17 stepsblock of 460 products, 15 stepsblock of 570 products, 14 stepsblock of 684 products, 14 stepsthe narrowest that workscheapest width2its products with A32the widest drawn84narrower than the multiplicity is not slowit is absent
Fig. 1 Products with A to return every copy of a doubled eigenvalue, at six block widths. The narrow bar is not slow — it is marked rather than drawn, because it never arrives.

The rule

A block of b spans b directions, and it meets an eigenspace of dimension d in min(b, d) of them. So the rule is exact rather than approximate: the block must be at least the multiplicity, and nothing above the multiplicity changes what can be found.

multiplicity b = 1 b = 2 b = 3 b = 4 b = 5 b = 6
1 19 / 19 16 / 32 16 / 48 15 / 60 13 / 65 13 / 78
2 16 / 32 17 / 51 15 / 60 14 / 70 14 / 84
3 17 / 51 15 / 60 14 / 70 14 / 84
4 16 / 64 15 / 75 14 / 84

Steps and products with A, on a 200-dimensional problem, to return every copy of an eigenvalue repeated the stated number of times. A dash is not a slow run: the missing copies are still missing at every step count up to a basis of half the problem’s dimension.

The cheapest working width is the multiplicity itself, at every row: 19, 32, 51 and 64 products.

The cap, and why it decides the table

That phrase — up to a basis of half the problem’s dimension — is the whole reason the table means anything, and the first version of this measurement did not have it.

A block of b after s steps spans b·s dimensions. Run it far enough and the basis is the whole space, the projected matrix is similar to A, and the Ritz values are A’s eigenvalues — all of them, including every copy, whatever the block width was. Without a cap the measurement reported that a block of three finds a quadruple eigenvalue at twenty-seven steps, which is true and is a statement about eighty-one vectors in an eighty-dimensional space rather than about blocks.

So the run is stopped when its basis reaches half the problem’s dimension, and the problem was made large enough that every honest width has room to converge inside that. That is a limitation of the measurement, stated where the assertion is, rather than a property of the method.

The six largest Ritz values, against a doubled eigenvalue at 10Distance from 10 for each of the six largest Ritz values, on a logarithmic vertical axis. The single-vector run of 16 steps has one value at 10 to 2.6·10⁻¹² and its second is 1.696 away — it has found the eigenvalue once. The block of two has two values at 10, to 1.1·10⁻⁹ and 4.7·10⁻⁹.12345610⁻¹⁷10⁻¹⁴10⁻¹¹10⁻⁸10⁻⁵10⁻²10¹Ritz value, largest firstdistance from 10one vectora block of twoa space, not a ratecopies found, one vector1copies found, block of two2Krylov dimension, one vector16the second copy is not in the spaceat any number of steps
Fig. 2 The claim underneath the table, from the previous essay: one vector returns one copy of a doubled eigenvalue at every step count, and a block of two returns both. What this essay adds is the price list.

What a wider block buys, priced

On a simple eigenvalue, where no width is required at all, the wider blocks still do something: the step count falls from 19 to 13 as the block grows from one to six. And the product count rises from 19 to 78.

Six iterations removed for fifty-nine extra products with A: about ten products with A per iteration saved.

That is not obviously a bad trade, and this site has the field that says why. An iteration of a Krylov method is a synchronisation — every processor holding part of the vector has to agree on an inner product before the next step can start — and the cost field’s own finding is that three factorisations of one matrix rank differently in messages and in words: 48, 4 and 4 communication rounds against 1,170, 1,170 and 2,160 words moved, with the method that sends the fewest messages sending the most words.

A block trade is that trade inside an eigensolver. Ten products with A is cheap against a global reduction when the reduction is what the machine is slow at, and expensive when it is not. What the measurement supplies is the exchange rate, which is what turns a preference into a decision.

Communication for a 512×12 factorisation on 16 processorsTwo counts for the same factorisation. Rounds on the critical path: 48 for the column sweep, 4 for the reduction tree, 4 for Cholesky QR — a factor of n between the first and the other two. Words sent: 1170, 1170 and 2160 — the sweep and the tree send the same number, and the method with the fewest rounds sends the most.rounds on the critical pathHouseholder sweep48reduction tree4Cholesky QR4words sentHouseholder sweep1170reduction tree1170Cholesky QR2160two counts, two rankingsrounds, sweep ÷ tree12words, Cholesky ÷ tree1.8arithmetic, tree ÷ sweep1.5the rounds separate the threeand the words do not
Fig. 3 The same currency question one field along. Rounds and words are different counts and rank the same three methods differently; a block width is a knob that moves a computation along exactly this axis.

The mechanism that is supposed to make this unimportant

There is a standard answer to how wide, and it is that the width does not much matter because the block deflates. When a new block direction turns out to be numerically dependent on what has already been built, it is dropped, the width falls, and the method finds its own size.

Measured, from a random starting block, that never happens.

The width of a block of 4, at every stepThree step functions against the step count. A block of 4 independent columns keeps its width at every step. A block with one column copied from another loses that column before the first product with A and keeps 3 for the rest of the run. A block whose columns all lie in the span of two eigenvectors starts at 2 and ends at 0 after one step, having found the whole subspace.01234567891001234stepcolumns in the blockindependent columnsone column repeatedinside an invariant planewhen a block narrowsrandom: width at the end4repeated: width at the end3invariant: vectors found2the mechanism worksand nothing a random start does sets it off
Fig. 4 The width at every step, for three starting blocks. One line is flat at the width it started with; one drops a column before the first product with A; one drops to two and terminates.
starting block widths, step by step
four independent random columns 4 4 4 4 4 4 4 4 4 4 4
four columns, one copied from another 3 3 3 3 3 3 3 3 3 3 3
four columns inside a 2-dimensional invariant subspace 2 0

The first row is the finding: a random block never narrows, at any width from two to six, at any multiplicity, until the whole space is exhausted. The block Krylov space of independent random vectors does not lose rank, so there is nothing for the mechanism to detect.

The other two rows are the positive controls, and they are the reason the first row is a measurement rather than a broken detector. A block handed a repeated column drops it before the first product with A and keeps the width it is left with. A block whose columns all lie in the span of two eigenvectors starts at two — the other columns were never independent — and terminates after one step having found the whole subspace, which is the one case where a block should stop.

A block narrows only when it was given something it already had.

What a too-narrow block returns

The failure is worth looking at directly, because it does not look like a failure.

A block of two, on a triple eigenvalue, after twenty steps of a 200-dimensional problem, returns two values at the repeated eigenvalue: 9.999999999989216 and 9.999999999945066, in error by 1.1·10⁻¹¹ and 5.5·10⁻¹¹. Both are excellent. The vectors that go with them are an orthonormal pair spanning a genuine two-dimensional invariant subspace of A. Every residual is small, every bound is tight, and nothing anywhere in the computation is wrong.

The third copy is simply absent, and the same run with one more column returns it.

This is the shape the subspace field already named from the other direction: a plane can be well determined while the vectors in it are not, and a method that has found part of an eigenspace has found a smaller invariant subspace correctly. There is no internal quantity that separates the eigenvalue is double and both copies are here from the eigenvalue is triple and two copies are here, because the arithmetic of the first situation is exactly what the method is doing in the second.

The only routes out are external. Count the copies and compare against a multiplicity known in advance; or widen the block and see whether another copy appears, which costs a whole extra run; or compute a trace or a determinant by some independent route and check it against the spectrum found. Each of those is information from outside the iteration, which is the honest summary: a block method cannot discover the multiplicity, it can only be told it.

Where the extra columns go

A wider block than the multiplicity is not doing nothing. It is running a wider Krylov space, and a wider space converges to the other eigenvalues faster too — which is why the step count falls at all.

That is worth separating from the multiplicity question because it is the reason the trade is not absurd. A block of six on a simple eigenvalue is not six copies of a search for one direction; it is a search over a six-dimensional starting space, and the extremes of the spectrum are reached from it sooner. The step count falling from 19 to 13 is that effect and nothing else.

What the measurement says is only that the effect is weak — six columns for a 32% reduction in iterations — and that it is paid for at four times the arithmetic. A method whose iteration cost was dominated by something other than the products with A, which is exactly what a distributed eigensolver’s is, would read that table the other way up.

A note on what was measured and what was not

Three things this essay does not settle, and each of them would change the numbers.

The spectrum is built rather than found. The eigenvalues are 1 to 10 in equal steps with the top one repeated, which is a spectrum with no clustering anywhere except where it was put. On a spectrum with a dense interior the step counts would all be larger and the widths would interact with the clustering in ways this construction cannot show.

The block is orthonormalised twice against everything, at every step. That is the decision restart.js records and takes: the subject is what a block can reach, not what a lost basis does. A production block method reorthogonalises selectively or not at all, and its behaviour at large widths is then a question about orthogonality rather than about spaces.

And products with A are counted, not time. The whole argument for a wide block is that its products come in a batch — b matrix-vector products that can be one matrix-matrix product, with the memory traffic amortised — which is a claim about a machine and belongs to the cost field rather than here. The exchange rate of ten products an iteration is the numerator of that argument, not its conclusion.

So the width is a decision, not a discovery

Putting the three measurements together gives a short procedure and an honest gap in it.

If the multiplicity is known, use it. The narrowest working width is the cheapest at every multiplicity drawn, by a margin that grows with the width — 32 products against 84 at multiplicity two.

If it is not known, nothing in the method reports it. A block too narrow returns a plausible, accurate, complete-looking answer with a copy missing, and the residual bounds on the copies it did find are excellent. This is the same failure the double eigenvalue essay describes and the reason it is worth restating: the method does not fail, it succeeds at a smaller problem than the one it was given.

And running longer does not help, which is the refusal this essay publishes. It is the tempting repair and it is refuted: a block of two on a triple eigenvalue returns two copies at every step count the measurement reaches.

The plane, and the two vectors inside it, at a gap of 0.001A circle representing the invariant plane, with two perpendicular radii for the eigenvectors and two more for the perturbed ones, rotated within the same circle.the invariant planesolid: beforedashed: aftersame perturbation, two questionsthe vectors turned, radians3.1·10⁻⁵the plane turned, radians7.6·10⁻⁸what left the plane6.7·10⁻⁸drawn in the unperturbed plane's own basisa radius is not determined; the circle is
Fig. 5 Why the missing copy is invisible: the subspace is well conditioned where its individual vectors are hopeless. A method that has found part of an eigenspace returns quantities that all look healthy, because the part it has found is a perfectly good invariant subspace of a smaller dimension.

What is left when nothing is repeated

Exact multiplicity is a construction. Real matrices have clusters — eigenvalues separated by 10⁻⁸ rather than by nothing — and for those the previous essay measured the other half of this story: a single-vector run separates a pair by convergence and needs 17, 18, 20 and 22 steps as the gap closes through four decades, while a block of two needs eleven at every gap.

So the block’s advantage on a cluster is a step count that does not depend on the gap, and its advantage on an exact multiplicity is that it returns an answer at all. Those are different claims and the second is the stronger one: no amount of arithmetic buys what the first buys, and the second is bought by four extra products with A.

Separating two eigenvalues, against how close they areIterations against the gap between the two largest eigenvalues, on a logarithmic gap axis. The single-vector method needs 17, 18, 20, 22 steps as the gap closes through four decades. The block of two needs 11 at every gap — and spends 22 products with A doing it, which is no less arithmetic. What it saves is synchronisations.10⁻⁴10⁻³10⁻²10⁻¹0510152025gap between the two eigenvaluesiterationsone vectorblock iterationsblock productsiterations, not arithmeticsingle-vector steps at 0.117single-vector steps at 0.000122block iterations, every gap11the same products with Aand half the synchronisations
Fig. 6 The cluster case, from the previous essay. The single-vector count climbs as the gap closes and the block’s does not move — which is the same rule as this essay’s, softened by the fact that a cluster is not quite an eigenspace.

The rule as a sentence

The three measurements come to one sentence with a price on each clause.

A block must be at least the multiplicity, and no amount of anything else substitutes. Not more steps, not a different starting block, not a smaller tolerance. The missing copy is not in the space.

Above the multiplicity it buys iterations at about ten products with A each. Whether that is worth paying is a question about the machine and not about the matrix, and the answer changes with the ratio of a synchronisation’s cost to a product’s.

And the width will not choose itself. The deflation mechanism that is supposed to let a method find its own size fires only on a block that was handed a direction it already had, which a random start never is.

Three perturbations of 10⁻¹⁴, three eigenvectors, one planeA circle with three radii at widely different angles, one for each perturbation, and a table of their residuals showing all three satisfy the eigenvalue equation.every radius is an eigenvectorseed 11: 2.0°seed 23: 60.5°seed 41: 18.2°none of them is wrongspread of the returned angles1spread of the returned planes1.3·10⁻¹⁵worst ‖Ax − λx‖5·10⁻¹⁵an exactly repeated eigenvalueno correct answer to fail to return
Fig. 7 A double eigenvalue has no eigenvector for an algorithm to get wrong, which is the other side of the multiplicity rule: what a block of two returns is a plane rather than two vectors.
Copies of each eigenvalue after 80 steps on a 40×40 matrix with a simple spectrumA bar per eigenvalue that came back more than once, showing how many times. The matrix has 40 distinct eigenvalues by construction; the run returned 25 extra copies of 13 of them, the most-copied arriving 5 times. Every copy is accurate to 1.9·10⁻⁸ relative, which is why nothing but the true spectrum could detect them.λ = 105 timesλ = 9.55 timesλ = 95 timesλ = 8.55 timesλ = 2.952 timesλ = 2.92 timeseigenvalues that arrived more than once — the matrix has 40 distinct onesa spectrum with the wrong multiplicitiesextra copies, no reorthogonalisation25extra copies, full reorthogonalisation0worst relative error among the copies1.9·10⁻⁸steps taken of 80 asked for, full40no arithmetic error was madeevery one of these is right to eight digits
Fig. 8 The failure this is not. A block too narrow returns fewer copies than the eigenvalue has; a basis that has lost orthogonality returns more than it has.
The same arithmetic, twice, with M = 144 words of fast memoryThree counters against the matrix size on logarithmic axes. The operation count is one curve, because both orderings perform exactly the same operations — 338,120 of them at n = 80. The words moved between fast and slow memory are two curves a factor of 3.24 apart. The factorisations they produce are identical to the last bit.10²10³10⁴10⁵matrix size ncountoperations, bothwords, unblockedwords, blocked (b = 6)the answer does not move‖PA − LU‖/‖A‖, unblocked2.8·10⁻¹⁶‖PA − LU‖/‖A‖, blocked2.8·10⁻¹⁶difference between them0the dashed curve is both orderings' operation countthe solid pair is what they cost
Fig. 9 The currency the exchange rate is denominated in. A block trades products with A for iterations, and an iteration of a Krylov method is a synchronisation.

What the drag does

The slider is the multiplicity, and each position removes one more width from the left of the figure and moves the cheapest bar one place right. Nothing else about the picture changes, which is the point: the rule is min(b, d) and the figure is that expression drawn four times.

The one thing worth watching for is the fourth position. At multiplicity four the cheapest working width costs 64 products where multiplicity one costs 19 — so an eigenvalue’s multiplicity is a cost multiplier on the method that can find it, and there is no width, no step count and no starting vector that avoids it.

What links here

Computed from the collection, not written here: the essays that point at this one.

Shares its objects with

Essays that name at least two of the same things, and that neither author linked.

Named objects

A flat tag is an object no other essay names yet.

Block methodsCommunicationDeflationInvariant subspaceKrylov subspaceLanczosMultiplicityReorthogonalisationRitz valuesSynchronisation