Context. Software systems are heavily configurable, in the sense that users can adapt them according to their needs thanks to configurations. But not all configurations are equals, and some of them will clearly be more efficient than others in terms of performance. For human beings, it is quite complex to handle all the possible configurations of a system and to choose among one of them to reach a performance goal. Research work has shown that machine learning can bridge this gap and predict the performance value of a software system based on its
configurations.
Problem. These techniques do not include the executing environment as part of the training data, while it could interact with the different configuration options and change their related performance distribution. In short, our machine learning models are too simple and will not be useful or applicable for end-users.
Contributions. In this thesis, we first propose the term deep variability to refer to the existing interactions between the environment and the configurations of a software system, altering its performance distribution. We then empirically demonstrate the existence of deep variability and propose few solutions to tame the related issues.
Finally, we prove that machine learning models can be adapted to be by-design robust to deep variability.
4. Software conļ¬gurations lead to distinct performance values
Performance
Conļ¬guration
x264
--cabac
--me dia
--output compressed.264
video.mkv
x264
--no-cabac
--me tesa
--output compressed.264
video.mkv
time = 34 seconds
time = 2 min 25 seconds
Context
The power of configurations ! 4
5. 2320
# atoms in
universe
231
# seconds in a
human life
grep
11 options 20 000 options
48 options 119 options
A huge[2]
number of options & conļ¬gurations
2x
possible
configurations
1 500 options
X
independent
boolean
options
Context
#options is already high & wonāt decrease 5
[2] Tianyin Xu, Long Jin, Xuepeng Fan, Yuanyuan Zhou, Shankar Pasupathy, Rukma Talwadker,
Hey, you have given me too many knobs! Understanding and dealing with over-designed configuration in system software, FSEā15, Link
6. Options
Challenging to interpret optionsā effects
~25 MB ~50 MB ~1 GB
RANDOMIZE
BASE
DEBUG
INFO
REDUCED
UBSAN
SANITIZE
ALL
DEBUG
INFO
SPLIT
SENSORS
ADM1031
BACKLIGHT
GPIO
DEBUG
DRIVER
ENCLOSURE
SERVICES
REFCOUNT
FULL
Kernel Size
Performance
ā¦.
.conļ¬g ļ¬le
ā¦.
ā¦.
~7 MB
DEBUG
INFO
20 000
options
Context
Too many options for humans? 6
+ interactions
7. Whole
Population of
Configurations
Predict
Performance
Sample
Configurations
Measure
Performance
Train Performance
Model [3]
Learning
x264 --no-cabac --ref 1 ā¦
compressed.264
video.mkv
x264 --cabac --ref 2 ā¦
compressed.264
video.mkv
x264 --cabac --ref 7 ā¦
compressed.264
video.mkv
Performance
Conļ¬gurations
Machine
Learning
Conļ¬gurations Performance
Conļ¬gurations
Machine
Learning
Performance
24 seconds
57 seconds
39 seconds
[3] J. Guo, K. Czarnecki, S. Apel, N. Siegmund and A.
WÄ sowski, Variability-aware performance prediction: A
statistical learning approach, ASEā13,
10.1109/ASE.2013.6693089
Sampling, Measuring,
Context
State-of-the-art Solution :
But not too many options for ML 7
9. Performance
?
?
?
Performance also depends on the software stack
Hardware
Operating
System
Software
Input Data
Problem
Software layer is not enough 9
[4] Pooyan Jamshidi, Norbert Siegmund, Miguel Velez,
Christian KƤstner, Akshay Patel, Yuvraj Agarwal,
Transfer Learning for Performance Modeling of
Configurable Systems: An Exploratory Analysis,
ASEā17, Link
13. Why should I care ?
Problem
Deep Variability Stakeholders 13
Default software
conļ¬g. is not optimal
Users Developers
Documentation can
not cover all soft. envs.
Researchers
Performance Models
are not applicable
Scientists
May introduce a bias
in experiments
Companies
Server conļ¬guration not
adapted to software
15. 1. Characterize and spot empirical evidence of the existence of deep variability
2. Propose solutions to include deep variability in performance models
Contributions
Contributions 15
16. 1. Characterize & Spot Deep Variability
On the Input Sensitivity of Conļ¬gurable Systems
17. Software systems process inputs that are different in terms ofā¦
Contrib 1. Spot & Characterize Deep Variability
Define the notion of input 17
Nature Scale & Complexity
18. On the Input Sensitivity[6]
of Conļ¬gurable Systems
+
Input Video 1
+
Input Video 2
Software Input Data
Contrib 1. Spot & Characterize Deep Variability
ā inputs ā ā perf. distributions 18
[6] Yufei Ding, Jason Ansel, Kalyan Veeramachaneni, Xipeng Shen, Una-May OāReilly, Saman Amarasinghe,
Autotuning algorithmic choice for input sensitivity. SIGPLAN Not.ā2015, Link
19. Performance distributions & models change with inputs
-O2 -fnoasm
-Ofast
-O1
-fļ¬oat-store
Software
System
Performance
Conļ¬gurations
Machine
Learning
Decision
Tree
Compil. time
Input
Data
This part investigates, demonstrates and quantifies
what effects configurable system inputs have on performance
Contrib 1. Spot & Characterize Deep Variability
Study input-config interactions 19
20. Gather data about Input Sensitivity
Measure performance
5
6
4
3
2
1
8 software systems
ā domains
ā inputs
Contrib 1. Spot & Characterize Deep Variability
A typical measurement process 20
21. RQ1 - Do software performance stay consistent across inputs?
+
-
Performance distributions of ā & ā
are negatively correlated
Spearman correlations
A configuration could be good
for profile ā but not for ā
Contrib 1. Spot & Characterize Deep Variability
Config. ranks change with inputs 21
22. RQ2 - Do conļ¬guration option's effects change with input data?
An option could be good to activate for one input but bad for others
Individual impact of options change with inputs
Contrib 1. Spot & Characterize Deep Variability
Options effects change with inputs 22
23. RQ3 - Can we ignore Input Sensitivity?
S1 S2
We both predict
optimal
configurations
I value
Input
Sensitivity
I do not care
about Input
Sensitivity
Performance up to x10
when considering inputs
S1 ā S2 + 38% perf
Contrib 1. Spot & Characterize Deep Variability
Significant diff. of performance 23
24. RQ4 - How do research papers address Input Sensitivity?
65 papers
Q-A. Is there a software system processing input data in the study?
Q-B. Does the experimental protocol include several inputs?
Q-C. Is the problem of Input Sensitivity mentioned e.g. in threat?
Q-D. Does the paper propose a solution to generalize performance
models across inputs?
94%
63%
47%
26%
Contrib 1. Spot & Characterize Deep Variability
Inputs in research papers 24
25. RQ5 - How to quantify Input Sensitivity?
Score of Input Sensitivity IS
0 = not input-sensitive
1 = input-sensitive
Contrib 1. Spot & Characterize Deep Variability
Proposing input sensitivity score 25
26. Input Sensitivity threatens the concrete application of performance models
A model trained on one input will not be reusable on any other input
Conclusion
[7] Stefan MĆ¼hlbauer, Florian Sattler, Christian Kaltenecker, Johannes Dorn, Sven Apel, Norbert Siegmund,
Analyzing the Impact of Workloads on Modeling the Performance of Configurable Software Systems, ICSEā23, Link
Our results were also found by another team [7]
Contrib 1. Spot & Characterize Deep Variability
Inputs mess with perf. models 26
27. Age # Cores GPU
Compil. Version
Version Option Distrib.
Size Length Res.
Run-time
Hardware
Operating
System
Software
Input Data
Towards modelling Deep Variabilityā¦
ICSRā22
+
SPLCā21
ICPEā22
VaMoSā22
JSSā23
Contrib 1. Spot & Characterize Deep Variability
TSEā21
+
SPLCā22
Deep variability is real !! 27
29. Age # Cores GPU
Compil. Version
Version Option Distrib.
Size Length Res.
Run-time
Hardware
Operating
System
Software
Input Data
Towards modelling Deep Variabilityā¦ with other researchers!
Contrib 1. Spot & Characterize Deep Variability
DV is also addressed in SOTA 29
[H] S. MĆ¼hlbauer, F. Sattler, C. Kaltenecker, J. Dorn,
S. Apel, N. Siegmund, Analyzing the Impact of
Workloads on Modeling the Performance of
Configurable Software Systems, ICSEā23, Link
[I] S. MĆ¼hlbauer, S. Apel, N. Siegmund,
Identifying Software Performance Changes
Across Variants and Versions, ASEā20, Link
[J] MS Iqbal, R. Krishna, MA Javidian, B. Ray,
P. Jamshidi, Unicorn: Reasoning about
Configurable System Performance through the
Lens of Causality, Eurosysā22, Link
ā
[K] Marko Boras, Josip Balen, Kresimir Vdovjak,
Performance Evaluation of Linux Operating
Systems, ICSSTā20, Link
[L] D. Cotroneo, R. Natella, R. Pietrantuono,
S. Russo, Software Aging Analysis
of the Linux Operating System, ISSREā10, Link
[H] [I]
[J]
[L]
[K]
30. 1. Characterize and spot empirical evidence of the existence of deep variability
2. Propose solutions to include deep variability in performance models
Contributions
Contributions 30
31. 2. Train Resilient Performance Models
How to embed deep variability in models?
32. Make Performance Models Resist to Deep Variability
Hardware
Operating
System
Software
Input Data
0.152.2854 0.155.2917
Include deep variability
in the model
Train a performance model
valid for as many possible
software environments
Contrib 2. Train Resilient Performance Models
The future of perf. modelling 32
33. Current State-the-art solution : Transfer Learning
Source
Input
Perf
P.
target
?
training
prediction
source
?
Shifting function
Source Model
2
1
Source Model
Shifting function
Training
Test
1
Learn the ā
between
source & target
2
Train a model
on the source
3
Apply ā and ā”
on the test set
Model Shift[8]
3
Measuring, Learning
for each new input
Time- & resource-
consuming for users
Contrib 2. Train Resilient Performance Models
[8] Pavel Valov, Jean-Christophe Petkovich, Jianmei Guo, Sebastian Fischmeister and Czarnecki Krzysztof,
Transferring Performance Prediction Models Across Different Hardware Platforms, ICPEā17, Link
TL avoids deep variability 33
vertical
animation
Target
Input
34. Measuring on each new input has a non-negligible cost
Contrib 2. Train Resilient Performance Models
Cost of (Transfer) Learning 34
New video
Target
Input
3ā
Default conļ¬g. Optim. conļ¬g.
1ā
10*3ā
Source
Input
animation
Target
Input
Optim. conļ¬g.
1ā
100*3ā
Fixed conļ¬g.
3ā
Transfer Learning Std. Learning
31ā 301ā
36. Input-aware Learning
+
+
Input Video 1
+
Input Video 2
Performance
Conļ¬gurations Input Properties
Train machine learning models
predicting the performance of software conļ¬gurations
AND robusts to the change of input data
Contrib 2. Train Resilient Performance Models
Alternative approach 36
37. Input Properties
RQ1. To what extent are input properties helpful? (1/2)
Classify inputs into previously identified performance profiles
(70% accuracy)
No need for additional measurements
Input properties instead of domain knowledge
Performance proļ¬les
ā ā” ā¢ ā£
Contrib 2. Train Resilient Performance Models
Input props for benchmarking 37
Machine
Learning
38. RQ1. To what extent are input properties helpful? (2/2)
Transfer Learning
Since inputs matter, so does the
choice of the source input [10]
Source
Input
Target
Input
?
Contrib 2. Train Resilient Performance Models
Input props for TL source selection 38
4 different policies to select the
best input:
- uniform selection of input
- closest input properties
- closest performance distr.
- input of the same perf. profile
[10] Rahul Krishna, Vivek Nair, Pooyan Jamshidi and Tim Menzies, Whence to Learn?
Transferring Knowledge in Configurable Systems Using BEETLE, TSEā20, Link
39. RQ2. How do conļ¬gurations & inputs affect the model?
Input-aware Learning
is possible
Robust to new inputs
without new
measurements
Prediction error stable ~ 25 inputs
Various results according to software systems
Contrib 2. Train Resilient Performance Models
Input-aware models are real 39
40. RQ3. Which approach to recommend? (1/2)
In general, standard learning beats the
input-aware learning
Contrib 2. Train Resilient Performance Models
Better than SOTA for low budgets 40
For small number of configurations,
input-aware learning outperforms
SOTA standard learning
41. RQ3. Which approach to recommend? (2/2)
Transfer learning > standard learning
with a fancy selection of the source thanks
to input properties
Contrib 2. Train Resilient Performance Models
Improving TL with deep var. 41
Knowledge about inputs allows transfer learning
to beat the standard learning
42. Performance prediction should be quick (measurement cost --)
Input-aware learning is possible
With very low budget of configurations,
Contextual performance models using input properties outperform transfer learning
Conclusion
Contrib 2. Train Resilient Performance Models
Few messages 42
44. Conclusion
Conclusion
- Put a name on (& promote) deep variability
- Gathered data to empirically prove it exists
- Proposed ways to benchmark deep variability
- Practical implications for performance models
Deep variability rocks 44
46. Why should I care?
Conclusion
Benefits of Deep Variability 46
Recommend optimal
conļ¬guration
Researchers
Make performance
models usable
Scientists
Control DV to enable
reproducible science
Companies
Recommend optimal
env. conļ¬g for servers
Users Developers
Automatic testing of
deep variability
48. Deep Variability-Aware Performance-Inļ¬uence Models
Hardware
Operating
System
Software
Input Data
Built in 16 minutes
lscpu command cat /etc/*-release
version
compile-time options
run-time options
#LOCs for a .c ļ¬le
resolution for a video
Linux version
Linux variant
distribution
#cores
L1/L2/L3 cache
street price
[11] Y. Wang, V. Lee, GY. Wei, D. Brooks, Predicting New Workload or
CPU Performance by Analyzing Public Datasets, TACOā19, Link
Perspectives
Letās extend that to other layers ! 48
[9]
49. Build a common benchmark to study Deep Variability
Hardware
Operating
System
Software
Input Data
[12] N. Siegmund, S. Kolesnikov, C. KƤstner, S. Apel, D. Batory, M.
RosenmĆ¼ller, G. Saake, Predicting Performance via Automated
Feature-Interaction Detection, ICSEā12, Link
Perspectives
A common benchmark for DV 49
0.152.2854 0.155.2917
Weakness of this work:
only one layer at a time !
Share the computational effort
Agree on a common playground to test
deep variability
54. Tend to conļ¬rm the negative results for
hardware of SOTA, e.g. [1]
Across hardware platforms
[1] P. Valov, JC. Petkovich, J. Guo, S. Fischmeister, K. Czarnecki, Transferring Performance Prediction Models Across Different
Hardware Platforms, International Conference on Performance Engineering (ICPEā17). https://dl.acm.org/doi/10.1145/3030207.3030216
Hardware
Software
Input Data
30 clusters of Gridā5000 with different
hardware models
ļ¬xed with the same operating system
8 videos
201 conļ¬gs
Only weak interactions (aka linear)
between hardware and conļ¬gurations
54
57. RQ1. How to choose a (machine learning) algorithm establishing a
relevant performance prediction model?
ā Supervised Online Approach
ā All Inputs & Systems
ā Separate in train-test
Gradient Boosting Tree
~5% prediction error
57
58. Inputs
OFFLINE
1. Measure performance related to inputs and conļ¬gs
2. Train the model
ONLINE
1. Compute input properties
2. Apply the model
Configs Model
Input
Config
Performance
Perf.
Model
2
Input
Config
User
Perf.
1
1
2
Difference Online &Ofļ¬ine
58
59. Transfer Learning
Closest Perf. selection
No Many
Few
Yes
No
Are you ready to
measure conļ¬gurations?
Did someone measure
inputs on this system?
Did someone measure
inputs on this system?
We cannot guarantee
a robust prediction
Supervised - Online
Tune hyperparameters
No
Supervised - Ofļ¬ine
(Random selection)
Cannot predict
Yes
9% 3%
5%
Actionable Conclusion
Online
Ofļ¬ine
59
61. RQ1.1. Do the run-time performances of conļ¬gurable systems vary with compile-time options?
RQ1 - Do compile-time options change the performance distributions?
6
1
Fixed run-time conļ¬g.
Different compile-time conļ¬g.
Results:
- Size => stable
- xz => stable
- x264 => vary with run-time
- nodeJS => vary
62. RQ1.2. How many performance can we gain/lose when changing the default compile-time conļ¬guration?
RQ1 - Do compile-time options change the performance distributions?
6
2
Performance Ratio (r, c) =
performance of the run-time conļ¬guration r for the compile-time conļ¬guration c
performance of the run-time conļ¬guration r for the default compile-time conļ¬guration
Results:
- Size => no gain
- xz and poppler => negligible
- Good default performance
- Can vary with input data
63. RQ2.1. Do compile-time options interact with the run-time options?
63
RQ2 - How to tune software performances at the compile-time level?
Spearman correlations (3a)
Random Forest importances (3b)
Results (nodeJS):
- Compile-time options alter perf. rankings
-> Interplay
- Both compile- and run-time are useful
-> Interplay
64. RQ2.2. How to use these interactions to ļ¬nd a set of good compile-time options and tune the conļ¬gurable system?
64
RQ2 - How to tune software performances at the compile-time level?
Predict the best compile-time conļ¬guration
Vary the training size : 1%, 5% and 10% of measurements
Depict the performance ratio per input and per training size in Table 3
Results (nodeJS):
Do not need too much data - 5% is enough to get close to the oracle
Up to 50 % improvement of performance
66. A Brief History of Transfer Learning
Valov et al
IPCEā17
Hardware
(Model Shift)
Martin et al
TSEā21
Variants &
Versions
(tEAMS)
This paper
VaMoSā22
ā software
systems
Jamshidi et
al
SEAMSā17
Challenges
Valov et al
IPCEā20
Pareto
frontier
Jamshidi et
al
ASEā17
Hardware &
workloads
Jamshidi et
al
FSEā18
Exploit
similarities
(L2S)
Krishna et
al
TSEā20
Bellwhether
(Beetle)
ā¦applied to software systemsā¦
ā¦and predicting their performance properties
66
67. 24 options
Human ML
Speed Slow Fast
Accuracy Worse Better
With more
training data
Lost Progressing
Motivation Bored Always !
Why do we need Machine Learning?
Same conditions for both
encoded size
201 conļ¬gs
For huge conļ¬gurable systems, e.g. 20k options for Linux, ML scales but not human
67
68. Run-time conļ¬gurations matter
Threads = āauto-detectā
Tile size = 64 pixels
Progressive refine = True
Thread(s) = 1
Tile size = 12 pixels
Progressive refine = False
Rendering a 3D scene
1
2
~ 3 seconds
~ 3 minutes
Performance
Run-time
conļ¬guration
Input data
What about
compile-time
conļ¬gurations?
68
69. Problem
Features do not have
the same name
--level --level-idc
The feature of one system
encapsulates one feature
of the other
--fullrange --range full
A feature
is not implemented X --rc-grain
A feature value
is not implemented
--me āstarā X
Features do not have the
same default value
--qpmax [51] --qpmax [69]
Different requirements
or feature interactions
.yuv format
=> --input-res
.yuv format
ā > --input-res
Feature ranges differ
between source & target
--crf [0-51] --crf [0-51] --crf [0-69]
Challenges (2/2) - Align Conļ¬guration Spaces
Transfer requires a common
conļ¬guration space
How to automate the alignment of
conļ¬g. space?
Different cases
to handle
69
70. Experiment - Compute the DTW
for all combinations of hardware platforms
Impact of hardware platforms on software evolution
Heatmap of DTW between times series
related to different variants of hardware
ā DTW = 0.38
ā DTW = 5.39
What is the Dynamic Time Warping?
Similar
Different
Result - Identify hardware platforms
having similar evolutions
to reduce the cost of benchmarking
71. ā DRPC = 1.61%
ā DRPC = 25.07%
Impact of workloads on software evolution
Experiment - Compute the DRPC
distribution for each workload
Result - Identify stable workloads
to use in benchmarks
Daily Relative Percentage Change
ā p(t) the performance value at the time t
ā d(t, t+1) the number of days between t and t+1
72. The bias of public datasets of hardware performance
Challenging (even for google & cie) to
build a representative benchmark of
hardware platforms
Phoronix is the result of a life work,
though it is missing many SKUs
77. Predicting performance of hardware platforms based on properties
Built in 16 minutes
[9] Y. Wang, V. Lee, GY. Wei, D. Brooks, Predicting New Workload or
CPU Performance by Analyzing Public Datasets, TACOā19, Link
[9]
Case 1 - Prediction for New SKUs
79. Case 3 - Cross-Prediction Between Suites (aka different sources)
79
80. x264
on Youtube UGC
to compress
input videos
no-mbtree
no-cabac
Wang, Yilin, Sasi Inguva, and Balu Adsumilli.
"YouTube UGC dataset for video compression research."
IEEE 21st International Workshop on Multimedia Signal Processing (MMSP) 2019
https://media.withyoutube.com/
encoding size
encoding time
fps
cpu consumption
bitrate
spatial/temporal/chunk complexity
resolution of the video
video fps
Input
videos
Conļ¬gs
Properties
Perfs
80
81. fno-asm
O1/02/Ofast
gcc
on PolyBench
to compile
input .c programs
Louis-Noel Pouchet
Polybench: The polyhedral benchmark suite v3.1
http://web.cs.ucla.edu/~pouchet/software/polybench/
binary size,
compilation time,
execution time
size of the program
# LOCs
# methods
# imports
Input
programs
Conļ¬gs
Properties Perfs
81
82. quality
thread
ImageMagick
on an excerpt of ImageNet
to blur
input images
āImageNet: A large-scale hierarchical image database.ā
Jia Deng, Wei Dong, Richard Socher, Li-Jia Li, Kai Li, and Li Fei-Fei.
IEEE Conf. on Computer Vision and Pattern Recognition, 2009
https://doi.org/10.1109/CVPR.2009.5206848
size of the result
extraction time
initial size of image
# rgb
Input
images
Conļ¬gs
Properties
Perfs
82
83. Lingeling memlimit
minimize
lingeling
on SAT Compet. bench.
to solve
input formulae
Francisco Gomes de Oliveira Neto, Richard Torkar et al.
Evolution of statistical analysis in empirical software engineering research [...]
Journal of Systems and Software, 2019
https://doi.org/10.1016/j.jss.2019.07.002
#conļ¬icts
#reductions
# propositions
# and
# or
Input
formulae
Conļ¬gs
Properties
Perfs
83
84. debug
wasm
NodeJS
on its test suite
to interpret
.js scripts
NodeJS test suite:
https://github.com/nodejs/node
# operations per
second
size of the script
# LOCs
# methods
# imports
Input
scripts
Conļ¬gs
Properties
Perfs
84
85. poppler
on Trent Nelsonās list
to extract images
out of input .pdf ļ¬les
ccit
format
Trent Nelson
Technically-oriented pdf collection (github repo) 2014
https://github.com/tpn/pdfs
size of the comp. images
time
avg size of images
# pages
# images
Input pdfs
Conļ¬gs
Properties
Perfs
85
86. maxsize
memtrace
SQLite
on TPC-H
to query
input databases
Meikel Poess and Chris Floyd
New TPC Benchmarks for Decision Support and Web Commerce
SIGMOD 2000
https://doi.org/10.1145/369275.369291
15 queries
-> time to handle the query
# memory size
# lines
Input DBs
Conļ¬gs
Properties
Perfs
86
87. format
level
memory
xz
on different corpora
to compress
input ļ¬les
The Canterbury Corpus + The Silesia Corpus.
http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia
size
time
type of ļ¬le
size
Input ļ¬les
Conļ¬gs
Properties
Perfs
87
88. Devs are aware of the input sensitivity problem
88
browsing commits of x264
90. Feature Subset Selection for Learning Huge Configuration Spaces:
The case of Linux Kernel Size
https://www.kaggle.com/competitions/linux-kernel-size/overview
90
We can benefit from contributions of the machine
learning communityā¦
And our dataset/problems are raising interests.
91. āNeuroimaging pipelines are known to generate different results
depending on the computing platform where they are compiled and
executed.ā Significant differences were revealed between
FreeSurfer version v5.0.0 and the two earlier versions.
[...] About a factor two smaller differences were detected
between Macintosh and Hewlett-Packard workstations
and between OSX 10.5 and OSX 10.6. The observed
differences are similar in magnitude as effect sizes
reported in accuracy evaluations and neurodegenerative
studies.
see also Krefting, D., Scheel, M., Freing, A., Specovius, S., Paul, F., and
Brandt, A. (2011). āReliability of quantitative neuroimage analysis using
freesurfer in distributed environments,ā in MICCAI Workshop on
High-Performance and Distributed Computing for Medical Imaging. 91
92. āNeuroimaging pipelines are known to generate different results
depending on the computing platform where they are compiled and
executed.ā
Reproducibility of neuroimaging
analyses across operating
systems, Glatard et al., Front.
Neuroinform., 24 April 2015
The implementation of mathematical functions manipulating single-precision floating-point
numbers in libmath has evolved during the last years, leading to numerical differences in
computational results. While these differences have little or no impact on simple analysis
pipelines such as brain extraction and cortical tissue classification, their accumulation
creates important differences in longer pipelines such as the subcortical tissue
classification, RSfMRI analysis, and cortical thickness extraction.
92
93. Can a coupled ESM simulation be restarted from a diļ¬erent machine without causing
climate-changing modiļ¬cations in the results? Using two versions of EC-Earth: one ānon-replicableā
case (see below) and one replicable case.
93