Heat diffusion

部署运行你感兴趣的模型镜像

Heat diffusion
v1.0 — October 6th 2022
1 Introduction
As you are aware, microprocessors are prone to heating up. In 2023, the most powerful processors absorb more than 200 Watts and dissipate it as heat. Evacuating this heat is a critical
issue: if not managed well, the rise in temperature will destroy the processor. Put simply, if
the processor exceeds a certain temperature Tmax (for example 100°C), it will be destroyed.
The heat flux density (i.e. the number of Watts transferred per square meter) of processors is extremely high. A modern high-end CPU can produce 280W on 10 cm2
, which makes 280 kW/m2
.
This is ten times more than a hotplate, and it’s about half as much as a fuel rod in a nuclear
reactor.
For this reason, dissipators in the form of metal heatsinks are fitted against the processors.
They allow for the efficient transfer of heat from the processor to an external environment. In
mainstream machines, a fan is used to evacuate the heat of these metal dissipators by forced
convection1
. In computing centers, the heatsink is often cooled by a fluid (water-cooling).
Finally, in the case of less powerful processors, the phenomenon of natural convection2 may be
sufficient to remove heat from the heatsink.
We assume here that the heatsink is a rectangular parallelepiped (a cuboid). Its surface, its
thickness and the choice of material it is made of all affect its thermal characteristics.
This project consists in parallelizing a numerical simulation that determines the temperature
reached by a recent CPU (an AMD EPYC “rome”) on which we place an aluminum plate of
15 cm × 12 cm × 0.8 cm. The z = 0 face of the heatsink is forcibly held at T = 20 ◦C by some
cooling device, and we assume that the entire heatsink is initially at this temperature. The
ambient air is also assumed to be at T = 20 ◦C. The general idea is to turn on the processor
at time t = 0 and simulate the diffusion of heat in the heatsink until an approximately steady
state is reached.
Will the processor overheat? What if we reduce/increase the thickness/area of the What if we
reduce/increase the thickness/area of the heatsink? What if we replace the aluminium with
copper, iron or. . . gold?
1To increase the contact surface with the air flow and maximize heat transfer, the heat sinks are usually
equipped with with fins.
2The air in contact with the heatsink absorbs heat, heats up, rises and makes room for fresh air.
1
Figure 1: A copper heat sink (with fins) placed on a board containing a CPU.
Figure 2: The CPU under the simulated heatsink. Real size. Power dissipation: 280W. Only
the black parts are in contact with the heatsink.
2 Physical principle of the numerical simulation
2.1 General comments
Heat is not to be confused with temperature. Heat is a transfer of thermal energy. When two
bodies are brought into contact, an exchange of thermal energy takes place until both bodies are
at the same temperature. Temperature is measured in Celsius degrees (◦C) or Kelvin degrees
(K, where 0 K = −273.1
◦C), while quantities of energy (thermal or otherwise) are measured in
joules (J).
When heat energy is exchanged, it is convenient to measure the flow rate. Heat flow is the
amount of energy transferred per unit time, and is expressed in Watts (W) — it is the equivalent
of some power. For example, if a constant heat flow Φ is transferred for t seconds, the amount of
thermal energy transferred is Q = Φt. In the case of our CPU, the heat flow from the processor
to the heatsink is Φ = 280W.
Page 2
Figure 3: Result of the numerical simulation in stationary regime.
y
x
z
Figure 4: Schematic illustration of the heat sink.
Page 3
When heat is transferred occurs across a surface, we can also examine how the heat flow rate
varies along that surface. The heat flux density φ indicates what heat flux passes through a
given point of the surface. If it is constant over a surface S, then the total heat flux is Φ = φS.
Still in the case of our processor, its contact surface with the heatsink is about 10 cm2
, which
gives φ = 280 kW m−2
.
When a material receives thermal energy, its temperature rises. Its mass thermal capacity (or
specific heat capacity), generally denoted by c, represents the amount of energy (measured in
J) required to raise the temperature of 1kg of the material by 1 degree. For example, we have
c = 897 J kg−1 K−1
for aluminium, so if we put a 1Kg block of aluminum on our processor,
then we know that it will heat up by ≈ 0.31 ◦C per second (that is 280/897). Without external
cooling, it will go from 20 ◦C to 100 ◦C in 256.3 seconds.
2.2 Thermal transfers
It is assumed that there are four different types of heat transfer that take place. In each case,
the heat flux (the flow rate of the transfer) is directly proportional to the surface area where
the transfer occurs. Therefore we only provide the heat flux density.
1. Thermal conduction from the CPU to the heatsink. It occurs solely at points of contact,
which all reside on the y = 0 plane. We have already calculated that φ = 2.8×105 W m−2
.
2. Heat conduction within the heatsink: heat propagates in the metal from the hot parts to
the cold parts. This transfer obeys Fourier’s law: ⃗φ = −λ ·
−−→grad T, where λ (the thermal
conductivity) characterizes the capacity of the medium to conduct heat: the greater λ is,
the faster the thermal transfer. Conductivity is expressed in Watts per meter per Kelvin
and represents the heat flux that circulates between two points when the temperature
gradient is 1 degree per meter.
More concretely, if we have a wall of thickness e whose two sides are of homogeneous
temperature T1 and T2, then the heat flux density at any point of the wall (from 1 to 2)
is φ = λ(T1 − T2)/e.
3. Convection on the edges of the heatsink: the metal heats the ambient air which enters in
movement and evacuates the heat. If a solid wall of surface S and temperature T1 is in contact with a fluid (air) of temperature T2, the heat flux density is φ1→2 = h(T1−T2), where
h is the convection heat transfer coefficient of the material. We observe experimentally
that h ≈ 10W m−2 K−1
for air.
4. Radiation emitted on the edges of the heatsink: the metal releases an electromagnetic wave
whose frequency depends on the temperature (it can belong to the visible light spectrum:
“hot-white” metal). Under reasonable assumptions (black body radiation), the density of
thermal flux emitted towards the outside is φ = σT4
, where σ is the Stefan-Boltzmann
constant (its value is 5.6703×10−8 W m−2 K−4
; be careful that here the temperature must
be in Kelvin).
The proposed numerical simulation claims a certain realism, but it is not perfect: the temperature of the medium is assumed to be fixed, the black body hypothesis is a simplification, and
it is assumed that the heat sink does not receive thermal energy from the surrounding medium
by radiation, which is impossible.
Page 4
2.3 Numerical simulation
To simulate all these thermal transfers, we discretize time and space. We slice the heatsink
in cells (small cuboids) of size ∆x × ∆y × ∆z, and we suppose that during a sufficiently short
time step, the temperature is homogeneous within each cell. The time steps are small enough
so that the propagation of thermal energy is relatively slow, and in particular so that it cannot
“cross” several cells at the same time (thus the more the metal is a good thermal conductor,
the smaller time steps have to be).
We denote by T(i, j, k) the temperature of the cell of coordinates (i, j, k) at time t. The problem
consists in computing the temperature of all the cells at time t + ∆t
.
To do this, we must determine the heat flux Φ received by each cell, and then we can calculate
the variation of its temperature thanks to the mass heat capacity of the metal and the mass of
the cells — fortunately we know the density ρ of the metal and the volume of the cells. We will
thus have ∆T = ∆Q/(c∆x∆y∆zρ).
The cells which are on the surface yield energy to the external medium by radiation. For
example, on the face z = 1, a cell of temperature T transfers to the outside a heat flux of
∆x∆yσT4 Watts (indeed, the exchange surface is ∆x∆y).
The cells that are on the surface also give up energy to the outside environment by convection.
For example, on the face x = 0, a cell of temperature T transfers ∆y∆zh(T − 293.1) Watts.
Each of the cells in contact with the CPU receives a thermal flux of ∆x∆y2.8 × 105
.
Finally, a cell exchanges thermal energy with each of its neighbors. Cell a receives from cell b
(its right-hand neighbor on the x axis, say) a heat flux λ∆y∆z(Tb − Ta)/∆x.
2.4 Implementation
To simplify matters, we assume that cells are cubic (∆x = ∆y = ∆z). In the program, we
denote by dl the length of the cell sides.
Representation in memory One (minor) difficulty is that we have to represent the threedimensional array T in memory. Let us assume that it is of dimension n × m × o (according
to the axes x, y, z). We flatten it on one dimension using the following convention (row-major,
usual in the C language): the xy planes are represented contiguously in memory, and within
these planes the x lines are represented contiguously. In other words, if the temperature of cell
(i, j, k) is in T[u], then:
• T[u + 1] contains the temperature of the cell (i + 1, j, k);
• T[u + n] contains the temperature of the cell (i, j + 1, k);
• T[u + nm] contains the temperature of the cell (i, j, k + 1).
The temperature of the cell (i, j, k) is therefore stored in T[i+nj +knm]. The simulation works
according to the pseudo-code in figure 5.
3 What you Have to Do
We provide you with a heatsink.c sequential C program that runs the simulation and dumps
the end result to the standard output. We also provide a few python scripts that do visual
renderings of the result.
Page 5
1: procedure Simulation(...)
2: Allocate two arrays R and T of size nmo
3: T[:] ← 293.15 ▷ all cells are initially at 20 ◦C
4: t ← 0
5: convergence ← 0
6: while convergence = 0 do
7: for 0 ≤ k < o do ▷ Processes the kth xy-plane
8: for 0 ≤ j < m do
9: for 0 ≤ i < n do
10: R[knm + jn + i] ← UpdateTemp(i, j, k)
11: ▷ Accesses to up to 6 neighbor cells
12: end for
13: end for
14: end for
15: if t is an integer then
16: Tmax = max R[:]
17: ε =
omn X
u=0
(R[u] − T[u])2
18: if √
ε/∆t < 0.1 then
19: convergence ← 1
20: end if
21: Print t and Tmax to keep the user waiting. . .
22: end if
23: t ← t + ∆t
24: T ← R
25: end while
26: Save T in a file for the forthcoming graphical rendering
27: end procedure
Figure 5: Principle of the simulation
Page 6
Your primary goal is to run the simulation in “CHALLENGE” mode, as fast as possible.
There is only one rule: the use of OpenMP is forbidden. You may use the external libraries that
are usually available in computing centers. We expect that you end up with a parallel program
capable of running on more than one compute node.
Some things that you can do:
• Try to use non-blocking communications to overlap communications with computation.
Does it bring any improvement? (if so, how much, if not, why?)
• Try to experiment with several kinds of domain decomposition and choose the best one
(e.g. 1D, 2D, 3D).
• Try to provide a theoretical model of the performance of your code, in terms of processing
and network speed; check this model against reality.
• Try to implement some form of checkpointing — the program has to save periodical
checkpoints ; if it is interrupted, then it can restart from the last checkpoint.
Whatever you do, you must :
1. Describe what you have done.
2. Measure the performance of your implementation and its scalability (both strong- and
weak-scaling are fair game).
3. Comment these results: are they good or not? If not, why? Can you design an experiment
that would confirm your opinion? Would it have been possible to tell in advance what
has happened?
Your work must be submitted by Sunday, November 12th before 23:59 (using Moodle). You
must submit your source code, a Makefile that compiles your code (without errors nor warnings,
even with -Wall), and a ≈ 5 pages report in .PDF format that explains what you have done.
Please follow our guidelines about writing reports (on Moodle).
You must work in pairs (submit one report with both names)
You MUST respect the grid5000 usage policy. Do big computations at night.
If you believe that you have found an error in our programs (it does happen), or if you and
your classmates are facing a common technical problem, don’t hesitate to contact us.

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

内容概要:本文介绍了ENVI Deep Learning V1.0的操作教程,重点讲解了如何利用ENVI软件进行深度学习模型的训练与应用,以实现遥感图像中特定目标(如集装箱)的自动提取。教程涵盖了从数据准备、标签图像创建、模型初始化与训练,到执行分类及结果优化的完整流程,并介绍了精度评价与通过ENVI Modeler实现一键化建模的方法。系统基于TensorFlow框架,采用ENVINet5(U-Net变体)架构,支持通过点、线、面ROI或分类图生成标签数据,适用于多/高光谱影像的单一类别特征提取。; 适合人群:具备遥感图像处理基础,熟悉ENVI软件操作,从事地理信息、测绘、环境监测等相关领域的技术人员或研究人员,尤其是希望将深度学习技术应用于遥感目标识别的初学者与实践者。; 使用场景及目标:①在遥感影像中自动识别和提取特定地物目标(如车辆、建筑、道路、集装箱等);②掌握ENVI环境下深度学习模型的训练流程与关键参数设置(如Patch Size、Epochs、Class Weight等);③通过模型调优与结果反馈提升分类精度,实现高效自动化信息提取。; 阅读建议:建议结合实际遥感项目边学边练,重点关注标签数据制作、模型参数配置与结果后处理环节,充分利用ENVI Modeler进行自动化建模与参数优化,同时注意软硬件环境(特别是NVIDIA GPU)的配置要求以保障训练效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值