@@ -7,6 +7,21 @@ questions:
7
7
might want?"
8
8
- " What aspects of computer and supercomputer design allow us to work
9
9
around this?"
10
+ objectives :
11
+ - " Understand why Python code often runs more slowly than equivalent
12
+ code in other languages, so that these can be mitigated"
13
+ - " Understand how high performance is typically obtained from
14
+ programs on HPC facilities"
15
+ keypoints :
16
+ - " Python is an implicitly-typed, interpreted language, meaning that
17
+ we must do work to overcome this to gain performance comparable to
18
+ compiled, explicitly-typed languages."
19
+ - " Python has a Global Interpreter Lock, which allows performant
20
+ single-threaded code at the expense of multithreading performance"
21
+ - " Typically, performance is gained from efficient use of available
22
+ vector units, CPU cores, accelerators such as GPUs, and nodes.
23
+ We need to ensure that we don't accidentally stop our programs making
24
+ use of these if we want to get optimal performance."
10
25
---
11
26
12
27
## Characteristics of Python
@@ -138,7 +153,7 @@ Compare the execution of a loop element-by-element sequentially:
138
153
with the execution of a vectorised loop:
139
154
![ An illustration of a vectorised loop] ( ../fig/vector.svg )
140
155
141
- The vectorised loop can be up to N times faster, where N is the number
156
+ The vectorised loop can be up to $N$ times faster, where $N$ is the number
142
157
of elements that fit into the processor's vector units.
143
158
144
159
Plain Python loops cannot be vectorised, since elements of a list aren't
0 commit comments