Test for floating point result consistency
Overview
This page presents results of an experiment done by IT. We
- ... instructed Matlab to do a small computation
- ... on multiple computers
- ... using multiple Matlab releases
You should draw your own conclusions about the results. IT's minimum suggestion is: If you
have to use Matlab, do not change releases mid-computation and stick to a
specific matlab release .
CPU/Matlab-Release matrix
Each number represents one possible result of the
calculation. The respective result is show in the tooltip help.
CPU |
Host |
7.1 |
7.3 |
7.4 |
7.5 |
7.6 |
7.7 |
7.8 |
7.9 |
7.10 |
7.11 |
7.12 |
7.13 |
7.14 |
8.0 |
8.1 |
8.2 |
8.3 |
8.5 |
8.6 |
9.0 |
9.1 |
9.2 |
9.3 |
9.4 |
9.5 |
9.6 |
9.7 |
9.8 |
9.9 |
9.10 |
9.11 |
Intel(R) Xeon(R) CPU E5-4650L 0 @ 2.60GHz |
springsteen |
1 |
2 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
2 |
2 |
2 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
AMD EPYC 7702 64-Core Processor |
malteser |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
6 |
6 |
6 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
2 |
7 |
7 |
8 |
8 |
AMD Ryzen 5 1500X Quad-Core Processor |
supremes |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
2 |
7 |
7 |
8 |
8 |
AMD Ryzen 5 2600 Six-Core Processor |
fohlen |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
6 |
6 |
6 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
- |
7 |
7 |
8 |
8 |
AMD Ryzen 5 3400G with Radeon Vega Graphics |
okapi |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
6 |
6 |
6 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
- |
7 |
7 |
8 |
8 |
AMD Ryzen 5 3600 6-Core Processor |
puma |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
6 |
6 |
6 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
2 |
7 |
7 |
8 |
8 |
AMD Ryzen 7 2700 Eight-Core Processor |
beagle |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
6 |
6 |
6 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
2 |
7 |
7 |
8 |
8 |
AMD Ryzen 7 5800X 8-Core Processor |
reh |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
6 |
6 |
6 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
2 |
7 |
7 |
8 |
8 |
AMD Ryzen 9 5950X 16-Core Processor |
pavian |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
6 |
6 |
6 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
2 |
7 |
7 |
8 |
8 |
Intel(R) Core(TM) i5 CPU |
algerien |
1 |
2 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
2 |
2 |
2 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
Intel(R) Core(TM) i7 CPU |
wehner |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
2 |
2 |
2 |
5 |
- |
5 |
5 |
5 |
5 |
5 |
Intel(R) Core(TM) i7-2600K CPU |
anna |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
2 |
2 |
2 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz |
nevada |
1 |
2 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
2 |
2 |
2 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
Intel(R) Core(TM) i7-2700K CPU @ 3.50GHz |
enz |
1 |
2 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
2 |
2 |
2 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz |
aisch |
1 |
2 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
2 |
2 |
2 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz |
alphaville |
1 |
2 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
3 |
3 |
3 |
3 |
9 |
9 |
10 |
10 |
10 |
7 |
7 |
7 |
7 |
7 |
8 |
8 |
Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz |
bap |
1 |
2 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
3 |
3 |
3 |
3 |
9 |
9 |
10 |
10 |
10 |
7 |
7 |
7 |
7 |
7 |
8 |
8 |
Intel(R) Core(TM) i9-10900X CPU @ 3.70GHz |
momo |
1 |
2 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
3 |
3 |
3 |
3 |
9 |
9 |
10 |
10 |
1 |
11 |
12 |
12 |
12 |
12 |
8 |
8 |
Intel(R) Core(TM)2 CPU 660 |
guido |
1 |
2 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
13 |
5 |
5 |
5 |
5 |
5 |
5 |
Intel(R) Core(TM)2 CPU 6600 |
boron |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
4 |
4 |
4 |
4 |
4 |
4 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
13 |
5 |
5 |
5 |
5 |
5 |
5 |
Intel(R) Core(TM)2 Duo CPU |
adorno |
1 |
2 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
13 |
5 |
5 |
5 |
5 |
5 |
5 |
Intel(R) Core(TM)2 Quad CPU |
actinium |
1 |
2 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
13 |
5 |
5 |
5 |
5 |
5 |
5 |
Intel(R) Xeon(R) CPU E5-1660 v3 @ 3.00GHz |
luke |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
4 |
4 |
4 |
4 |
3 |
3 |
3 |
3 |
9 |
9 |
10 |
10 |
10 |
7 |
7 |
7 |
7 |
7 |
8 |
8 |
Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz |
ufo |
1 |
2 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
2 |
2 |
2 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz |
comps06h01 |
1 |
2 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
3 |
3 |
3 |
3 |
9 |
9 |
10 |
10 |
10 |
7 |
7 |
7 |
7 |
7 |
8 |
8 |
Intel(R) Xeon(R) Gold 6244 CPU @ 3.60GHz |
maki |
1 |
2 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
3 |
3 |
3 |
3 |
9 |
9 |
10 |
10 |
1 |
11 |
12 |
12 |
12 |
12 |
8 |
8 |
Intel(R) Xeon(R) Silver 4108 CPU @ 1.80GHz |
silbermond |
1 |
2 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
4 |
4 |
4 |
4 |
4 |
3 |
3 |
3 |
3 |
9 |
9 |
10 |
10 |
1 |
11 |
12 |
12 |
12 |
12 |
8 |
8 |
Script
This is the script being used to compare results of floating point calculations:
format long
x = [0 1 2 3 4]'
y = [1 2 5 10 17]'
A = [sin(x), x.^2, ones(size(x))]
ATA = A'*A
rhs = A'*y
c = ATA\rhs
F = @(x) c(1)*sin(x) + c(2)*x.^2 + c(3) * ones(size(x));
S = sum(abs(y - F(x)))