summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormjkwiatkowski <mati.rewa@gmail.com>2026-07-07 14:06:57 +0200
committermjkwiatkowski <mati.rewa@gmail.com>2026-07-07 14:06:57 +0200
commit8f27eba7ad58066cd232b566c6fc7228b6cf9385 (patch)
tree4f976f19f332fba8c3e97a27dc6529043b3c3d36
parent6e056705d1f4136b8277696629210162ab20a756 (diff)
feat: finished section 2.3
-rw-r--r--appendix/glossary.tex4
-rw-r--r--content/background.tex70
-rw-r--r--images/five_dimensional_dt.pdfbin160459 -> 163941 bytes
-rwxr-xr-x[-rw-r--r--]images/system_model.pdfbin44252 -> 43486 bytes
-rw-r--r--sources/five_dimensional_dt.drawio51
-rw-r--r--sources/simulator_comparison.tex2
6 files changed, 99 insertions, 28 deletions
diff --git a/appendix/glossary.tex b/appendix/glossary.tex
index 2f4281d..627d292 100644
--- a/appendix/glossary.tex
+++ b/appendix/glossary.tex
@@ -19,3 +19,7 @@
\newacronym{ui}{UI}{User Interface}
\newacronym{http}{HTTP}{Hyper-text Transfer Protocol}
\newacronym{abc}{ABC}{Approximate Bayesian Computation}
+\newacronym{hp}{HP}{Hewlett Packard}
+\newacronym{json}{JSON}{JavaScript Object Notation}
+\newacronym{pod}{POD}{Proper Orthogonal Decomposition}
+\newacronym{mae}{MAE}{Mean Absolute Error}
diff --git a/content/background.tex b/content/background.tex
index 03f06cb..ab361f2 100644
--- a/content/background.tex
+++ b/content/background.tex
@@ -4,9 +4,10 @@
\section{Datacenters}\label{ss:datacenters}
-\subsection{Computing Infrastructure}\label{sss:failures}
-
\subsection{Datacenter Simulation}\label{sss:simulation}
+\input{sources/simulator_comparison.tex}
+
+\subsection{Hardware Failures}\label{sss:failures}
Predictive modelling uses statistics to predict outcomes.
When deployed commercially, for example in datacenters, predictive modelling is often referred to as predictive analytics~\cite{Wikipedia:PredictiveModelling}.
@@ -22,7 +23,6 @@ A prime example of using probability to find a good machine learning model is Ba
% Stanford Encyclopedia of Philosophy, Douven 2017
The process of inference from data to provide the best explanation is called abduction.
-
%What is below here is true, but nonetheless the argumentation should be slightly changed. And a citation is needed.
However, there has been little effort made to integrate analytics that enable consistent and reliable prediction of datacenter behaviour into a holistic digital twin of a datacenter.
Nor has the fidelity of failure modeling inside a datacenter simulation increased.
@@ -31,9 +31,6 @@ Since a datacenter simulator is quite different from a digital twin, we cannot u
The prediciton models are the same ones for the digital twin as the ones used for the datacenter simulator.
Since a digital twin is not a standalone simulator, a change to how we both predict and model failures is necessary.
-\ipsum[1-2]
-
-\input{sources/simulator_comparison.tex}
\section{Digital Twinning}\label{ss:digital-twinning}
% To fix: remove the \gls commands for ExaDigiT.
% This is getting silly.
@@ -60,7 +57,7 @@ As a result, digital twins have become more relevant today than 10 years ago~\ci
\end{figure}
% (3) in the original paper by Fei Tao is referenced to just `Services`.
% Nonetheless I name them here as Data Analysis Services, because what Fei Tao lists (e.g., fault detection, fault determination, fault-tolerant management, maintenance) is inherently reliant on good data analytics.
-\subsection{Digital Twins across Domains}\label{sss:digital_twins_across_domains}
+%\subsection{Digital Twins across Domains}\label{sss:digital_twins_across_domains}
\subsection{Digital Twins for Datacenters}\label{sss:digital_twins_for_datacenters}
@@ -104,13 +101,51 @@ The digital twin is designed to provide extra datasets for training \gls{ai} mod
% At this point it would make sense to create the distinction between _structural_ digital twinning and _behavioural_ digital twinning.
% Link to 6SigmaDC: https://www5.cadence.com/trial_datacenter_insights_lp.html
+\begin{figure}[t]
+ \centering
+ \includegraphics[width=\linewidth]{images/system_model.pdf}
+ \caption{A generic system model for data center digital twin deployments.
+ The design of DyTwin~\cite{DBLP:conf/sc/TaheriBPRHDEWPM24} indirectly incorporates in its architecture a ``virtual-to-virtual`` digital thread between different digital twins.
+ Zhao \etal likewise present key elements to the digital thread in their architecture~\cite{DBLP:conf/AppliedEnergy/Zhao20}. We add the \emph{Digital Thread} to our model explicitly.}
+ \label{fig:system_model}
+\end{figure}
+
DyTwin~\cite{DBLP:conf/sc/TaheriBPRHDEWPM24} is an adaptive digital twin with visualization and anomaly detection features.
+The system, developed at \gls{hp} is a precursor to the vision on datacenter digital twinning published by Athavale \etal~\cite{DBLP:journals/computer/AthavaleBBMMPS24}.
+DyTwin is the only system capable of failure detection in datacenters.
+Moreover, it is the only system to incorporate the idea of federation into the concept of digital twinning.
+DyTwin is designed to interact not only with the physical facility, but also other federated digital twins.
+Taheri \etal show that DyTwin can effectively detect 100\% of CPU usage anomalies (\ie irregularities that affect CPU utilization, ranging from 5\% to 60\%).
+
+ChatTwin~\cite{DBLP:conf/sensys/LiW0Z0T23} is an \gls{ai} and \gls{llm} powered system that enables easy deployment and configuration of digital twins for datacenters.
+It is a \emph{text-to-3D} approach to building digital twins of datacenters.
+ChatTwin is the only work in the field that does not share the simulation technique used to construct the digital twin based on ChatTwin's configuration.
+Li \etal provide a thorough set of experiments to show ChatTwin generates the \gls{json} \gls{dcdt} configuration efficiently, but do not share the final 3D visualization results.
+
+Reducio~\cite{DBLP:conf/sensys/CaoW0022} is a system designed to further optimize the \gls{cfd} approach to datacenter modeling.
+Instead of using plain \gls{cfd} the authors focus on \gls{pod} approaches to approximate the heat transfer.
+Using the \gls{pod} technique, the authors are able to model the datacenter more efficiently, achieving sub 1 degree Celsius \gls{mae} in temperature prediction.
+Moreover, their model outperforms the \gls{cfd} approaches.
+Cao \etal evaluate their system on an edge datacenter with 70 CPU-only server racks (see Figure 3 in \cite{DBLP:conf/sensys/CaoW0022}), and on a hyper-scale datacenter with thousands of servers (see Figure 4 in \cite{DBLP:conf/sensys/CaoW0022}).
+Their results show promising gains in physics-based datacenter modelling over the conventional approaches.
+
+NetGraph~\cite{DBLP:conf/sigcomm/HongWDSSHZY21}, designed by Huawei Technologies and China Mobile.
+NetGraph is the only system in our literature review that focuses on network management (see \Cref{tab:dt_features_comparison}).
+Moreover, NetGraph employs a unique modelling technique, combining device, network and service models using graph theory.
+The authors evaluate their system in a Huawei datacenter with over 50000 server racks.
+With over 20 million connections in the network graphs, the system is a prime example of datacenter digital twin potential.
+
+Kalibre~\cite{DBLP:conf/sensys/WangZD0TCWZ20} is a system designed by Wang \etal in order to overcome the cons of \gls{cfd}.
+To lessen the computational overhead, Wang \etal propose to use a knowledge-based neural surrogate to calibrate the different \gls{cfd} models.
+Kalibre takes the best of both \gls{ml} and \gls{cfd} approaches and achieves sub 1 degree Celsius \gls{mae}, similarly to Reducio~\cite{DBLP:conf/sensys/CaoW0022}.
+
+
% What is more, Microsoft already offers digital twinning as a service https://azure.microsoft.com/en-us/products/digital-twins/
% Documentation: https://learn.microsoft.com/en-us/azure/digital-twins/
% Moreover, NVIDIA is doing too as well https://www.nvidia.com/en-sg/omniverse/
-Many \gls{dcdt}'s model the cooling systems inside the warehouse, because in a typical datacenter cooling accounts for more than 40\% of total electricity usage~\cite{DBLP:conf/AppliedEnergy/Zhao20}.
+To summarize, many \gls{dcdt}'s model the cooling systems inside the warehouse, because in a typical datacenter cooling accounts for more than 40\% of total electricity usage~\cite{DBLP:conf/AppliedEnergy/Zhao20}.
Since the cooling subsystem is mainly airflow-based, \gls{dt} designers often opt for a \gls{cfd} approach to model the facility.
The reason why a digital twin might be needed for a cooling subsystem is primarily because of inefficient operational strategy.
The cooling system parameters are often set constant, regardless of outdoor temperature \etc~\cite{DBLP:conf/AppliedEnergy/Zhao20}.
@@ -119,26 +154,19 @@ The cooling system parameters are often set constant, regardless of outdoor temp
% Zhang argues that ``digital twin services'' are enabled by simulation monitoring \etc.
% Nonetheless, I dub that they are primarily data analysis services.
-\gls{oda} can be performed in-band (real-time) and out-of-band (from historical data).
-Likewise, Zhao \etal shows that crucial to the digital twin system are ``always-on'' analytics (akin to in-band \gls{oda}) and ``on-demand`` analytics (akin to out-of-band \gls{oda}).
+%\gls{oda} can be performed in-band (real-time) and out-of-band (from historical data).
+%Likewise, Zhao \etal shows that crucial to the digital twin system are ``always-on'' analytics (akin to in-band \gls{oda}) and ``on-demand`` analytics (akin to out-of-band \gls{oda}).
%Include something about data-preprocessing in the pipeline.
%See the article by Fei Tao
-\begin{figure}
- \centering
- \includegraphics[width=0.7\linewidth]{images/system_model.pdf}
- \caption{A generic system model for data center digital twin deployments.}
- \label{fig:system_model}
-\end{figure}
-
-The design of DyTwin~\cite{DBLP:conf/sc/TaheriBPRHDEWPM24} incorporates in its architecture a ``virtual-to-virtual`` digital thread between different digital twins.
-Zhao \etal include this element in their architecture too~\cite{DBLP:conf/AppliedEnergy/Zhao20}.
-Moreover, a crucial parallel between the work of Zhao \etal and ExaDigiT is the concept of multiple models within a single digital twin.
-Brewer \etal argue ExaDigiT is compromised of 5 ``smaller'' twins too.
+%Moreover, a crucial parallel between the work of Zhao \etal and ExaDigiT is the concept of multiple models within a single digital twin.
+%Brewer \etal argue ExaDigiT is compromised of 5 ``smaller'' twins too.
%In Zhang \etal the digital twin can communicate with different other digital twins, as in the work of Taheri \etal.
%To do this, the working program has an API, with a specific API endpoint to communicate with other Digital Twins.
+
+
%In your work, consider adding such an endpoint, albeit explain in future work that you envision \emph{implementing} this endpoint in the future.
diff --git a/images/five_dimensional_dt.pdf b/images/five_dimensional_dt.pdf
index b151bce..5e28a17 100644
--- a/images/five_dimensional_dt.pdf
+++ b/images/five_dimensional_dt.pdf
Binary files differ
diff --git a/images/system_model.pdf b/images/system_model.pdf
index 61fc8f1..96f452b 100644..100755
--- a/images/system_model.pdf
+++ b/images/system_model.pdf
Binary files differ
diff --git a/sources/five_dimensional_dt.drawio b/sources/five_dimensional_dt.drawio
index af6cfa3..5362631 100644
--- a/sources/five_dimensional_dt.drawio
+++ b/sources/five_dimensional_dt.drawio
@@ -1,6 +1,6 @@
<mxfile host="app.diagrams.net">
<diagram name="Page-1" id="C7pt7gl4p0PdqAMWZAV_">
- <mxGraphModel dx="934" dy="675" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+ <mxGraphModel dx="928" dy="636" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
@@ -64,22 +64,22 @@
<mxCell id="j7BUrm3ns0ZNhFwY7Cj1-26" parent="j7BUrm3ns0ZNhFwY7Cj1-15" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#dae8fc;strokeColor=#6c8ebf;direction=south;" value="3" vertex="1">
<mxGeometry height="20" width="20" x="-9" y="-10" as="geometry" />
</mxCell>
- <mxCell id="j7BUrm3ns0ZNhFwY7Cj1-18" edge="1" parent="1" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="j7BUrm3ns0ZNhFwY7Cj1-10" value="">
+ <mxCell id="j7BUrm3ns0ZNhFwY7Cj1-18" edge="1" parent="1" style="endArrow=classic;startArrow=classic;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;dashed=1;" target="j7BUrm3ns0ZNhFwY7Cj1-10" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="260" y="160" as="sourcePoint" />
<mxPoint x="260" y="160" as="targetPoint" />
</mxGeometry>
</mxCell>
- <mxCell id="j7BUrm3ns0ZNhFwY7Cj1-22" edge="1" parent="1" source="j7BUrm3ns0ZNhFwY7Cj1-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" target="j7BUrm3ns0ZNhFwY7Cj1-10">
+ <mxCell id="j7BUrm3ns0ZNhFwY7Cj1-22" edge="1" parent="1" source="j7BUrm3ns0ZNhFwY7Cj1-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;dashed=1;" target="j7BUrm3ns0ZNhFwY7Cj1-10">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="j7BUrm3ns0ZNhFwY7Cj1-23" edge="1" parent="1" source="j7BUrm3ns0ZNhFwY7Cj1-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" target="j7BUrm3ns0ZNhFwY7Cj1-10">
+ <mxCell id="j7BUrm3ns0ZNhFwY7Cj1-23" edge="1" parent="1" source="j7BUrm3ns0ZNhFwY7Cj1-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;dashed=1;" target="j7BUrm3ns0ZNhFwY7Cj1-10">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="j7BUrm3ns0ZNhFwY7Cj1-29" edge="1" parent="1" source="j7BUrm3ns0ZNhFwY7Cj1-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" target="j7BUrm3ns0ZNhFwY7Cj1-5">
+ <mxCell id="j7BUrm3ns0ZNhFwY7Cj1-29" edge="1" parent="1" source="j7BUrm3ns0ZNhFwY7Cj1-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;dashed=1;dashPattern=8 4 1 4;" target="j7BUrm3ns0ZNhFwY7Cj1-5">
<mxGeometry relative="1" as="geometry" />
</mxCell>
- <mxCell id="j7BUrm3ns0ZNhFwY7Cj1-31" edge="1" parent="1" source="j7BUrm3ns0ZNhFwY7Cj1-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" target="j7BUrm3ns0ZNhFwY7Cj1-3">
+ <mxCell id="j7BUrm3ns0ZNhFwY7Cj1-31" edge="1" parent="1" source="j7BUrm3ns0ZNhFwY7Cj1-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;startArrow=classic;startFill=1;dashed=1;dashPattern=8 4 1 4;" target="j7BUrm3ns0ZNhFwY7Cj1-3">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="j7BUrm3ns0ZNhFwY7Cj1-32" edge="1" parent="1" source="j7BUrm3ns0ZNhFwY7Cj1-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" target="j7BUrm3ns0ZNhFwY7Cj1-3">
@@ -88,6 +88,45 @@
<mxCell id="j7BUrm3ns0ZNhFwY7Cj1-34" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Digital Twin" vertex="1">
<mxGeometry height="30" width="80" x="38" y="69" as="geometry" />
</mxCell>
+ <mxCell id="lhpz-W1zQVuOfh66NaAW-12" connectable="0" parent="1" style="group" value="" vertex="1">
+ <mxGeometry height="81" width="447" x="33" y="267" as="geometry" />
+ </mxCell>
+ <mxCell id="lhpz-W1zQVuOfh66NaAW-10" connectable="0" parent="lhpz-W1zQVuOfh66NaAW-12" style="group" value="" vertex="1">
+ <mxGeometry height="56" width="440" x="7" y="25" as="geometry" />
+ </mxCell>
+ <mxCell id="lhpz-W1zQVuOfh66NaAW-2" parent="lhpz-W1zQVuOfh66NaAW-10" style="rounded=1;whiteSpace=wrap;html=1;" value="" vertex="1">
+ <mxGeometry height="30" width="440" as="geometry" />
+ </mxCell>
+ <mxCell id="lhpz-W1zQVuOfh66NaAW-3" edge="1" parent="lhpz-W1zQVuOfh66NaAW-10" style="endArrow=classic;html=1;rounded=0;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="9" y="14.800000000000011" as="sourcePoint" />
+ <mxPoint x="40" y="14.800000000000011" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="lhpz-W1zQVuOfh66NaAW-4" parent="lhpz-W1zQVuOfh66NaAW-10" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Virtual to Physical" vertex="1">
+ <mxGeometry height="20" width="120" x="40" y="5" as="geometry" />
+ </mxCell>
+ <mxCell id="lhpz-W1zQVuOfh66NaAW-6" edge="1" parent="lhpz-W1zQVuOfh66NaAW-10" style="endArrow=classic;html=1;rounded=0;dashed=1;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="170" y="14.800000000000011" as="sourcePoint" />
+ <mxPoint x="201" y="14.800000000000011" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="lhpz-W1zQVuOfh66NaAW-7" edge="1" parent="lhpz-W1zQVuOfh66NaAW-10" style="endArrow=classic;html=1;rounded=0;dashed=1;dashPattern=8 4 1 4;" value="">
+ <mxGeometry height="50" relative="1" width="50" as="geometry">
+ <mxPoint x="326" y="12.8" as="sourcePoint" />
+ <mxPoint x="357" y="12.8" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="lhpz-W1zQVuOfh66NaAW-8" parent="lhpz-W1zQVuOfh66NaAW-10" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Twin to Services" vertex="1">
+ <mxGeometry height="20" width="98" x="200" y="5" as="geometry" />
+ </mxCell>
+ <mxCell id="lhpz-W1zQVuOfh66NaAW-9" parent="lhpz-W1zQVuOfh66NaAW-10" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Twin to Data" vertex="1">
+ <mxGeometry height="20" width="70" x="360" y="5" as="geometry" />
+ </mxCell>
+ <mxCell id="lhpz-W1zQVuOfh66NaAW-11" parent="lhpz-W1zQVuOfh66NaAW-12" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" value="Connection Type" vertex="1">
+ <mxGeometry height="30" width="112" as="geometry" />
+ </mxCell>
</root>
</mxGraphModel>
</diagram>
diff --git a/sources/simulator_comparison.tex b/sources/simulator_comparison.tex
index ef5793d..4014ad0 100644
--- a/sources/simulator_comparison.tex
+++ b/sources/simulator_comparison.tex
@@ -1,4 +1,4 @@
-\begin{table}[h]
+\begin{table}[t]
\centering
\renewcommand{\arraystretch}{1.4}
\resizebox{\columnwidth}{!}{