You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 2671025
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: content/english/hpc/_index.md
+43-10Lines changed: 43 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,6 +15,38 @@ Its intended audience is everyone from performance engineers and practical algor
15
15
16
16
All materials are hosted on GitHub, with code in a [separate repository](https://github.com/sslotin/scmm-code). This isn't a collaborative project, but any contributions and feedback are very much welcome.
17
17
18
+
<!--
19
+
20
+
### FAQ
21
+
22
+
**Release date.**
23
+
24
+
There are also future parts (see below).
25
+
26
+
As of March 2nd 2022, the first part is 70-80% complete.
27
+
28
+
**Fixing errors.** If you spot an error, please create an issue on GitHub or, preferably, fix it right away (the pencil icon on the top-right).
29
+
30
+
**Pre-ordering / financially supporting the book.**
31
+
32
+
Until I find.
33
+
34
+
The best way you can help is to share the articles on link aggregation.
35
+
36
+
In either case, the book will always be available online in full version. "pay what you want" hard copy.
37
+
38
+
**Translations.** As the book. The website has a functionality.
39
+
40
+
Italian and Chinese (and I will personally translate at least some of it in my native Russian).
41
+
42
+
However, you are encouraged to make your translation. I'd appreciate it if and also sent me the link to the translation.
43
+
44
+
**"Translating" the Russian version.** The articles at [ru.algorithmica.org/cs/](https://ru.algorithmica.org/cs/) are not about advanced performance engineering but mostly about classical computer science algorithms, targeted towards competitive programming audience.
45
+
46
+
They are undergrad-level, and most of the information there is not unique in other placed on the internet — e. g. the similar-spirited [cp-algorithms.com](https://cp-algorithms.com/).
47
+
48
+
-->
49
+
18
50
### Part I: Performance Engineering
19
51
20
52
The first part covers the basics of computer architecture and optimization of single-threaded algorithms.
@@ -140,18 +172,19 @@ Among cool things that we will speed up:
140
172
141
173
- 2x faster GCD (compared to `std::gcd`)
142
174
- 8-15x faster binary search (compared to `std::lower_bound`)
143
-
-7x faster segment trees
175
+
-5-10x faster segment trees (compared to Fenwick trees)
144
176
- 5x faster hash tables (compared to `std::unordered_map`)
145
-
-~~?x faster popcount~~
177
+
-2x faster popcount (compared to repeatedly calling `popcnt`)
146
178
- 2x faster parsing series of integers (compared to `scanf`)
147
179
- ?x faster sorting (compared to `std::sort`)
148
180
- 2x faster sum (compared to `std::accumulate`)
181
+
- 2-3x faster prefix sum (compared to naive implementation)
182
+
- 10x faster argmin (compared to naive implementation)
149
183
- 10x faster array searching (compared to `std::find`)
150
184
- 100x faster matrix multiplication (compared to "for-for-for")
151
185
- optimal word-size integer factorization (~0.4ms per 60-bit integer)
152
186
- optimal Karatsuba Algorithm
153
187
- optimal FFT
154
-
- argmin at the speed of memory
155
188
156
189
This work is largely based on blog posts, research papers, conference talks and other work authored by a lot of people:
157
190
@@ -181,27 +214,27 @@ This work is largely based on blog posts, research papers, conference talks and
Concurrency, models of parallelism, green threads and runtimes, cache coherence, synchronization primitives, OpenMP, reductions, scans, list ranking and graph algorithms, lock-free data structures, heterogeneous computing, CUDA, kernels, warps, blocks, matrix multiplication and sorting.
222
+
Concurrency, models of parallelism, green threads and concurrent runtimes, cache coherence, synchronization primitives, OpenMP, reductions, scans, list ranking and graph algorithms, lock-free data structures, heterogeneous computing, CUDA, kernels, warps, blocks, matrix multiplication and sorting.
190
223
191
224
Volume: 150-200 pages
192
-
Release date: late 2022 / 2023?
225
+
Release date: 2023?
193
226
194
227
### Part III: Distributed Computing
195
228
196
229
Communication-constrained algorithms, message passing, actor model, partitioning, MapReduce, consistency and reliability at scale, storage, compression, scheduling and cloud computing, distributed deep learning.
197
230
198
-
Release date: ???
231
+
Release date: ??? (more likely to be completed than not)
199
232
200
233
### Part IV: Compilers and Domain-Specific Architectures
201
234
202
-
LLVM IR, main optimization techniques from the dragon book, JIT-compilation, Cython, JAX, Numba, Julia, OpenCL, DPC++ and oneAPI, XLA, FPGAs and Verilog, ASICs, TPUs and other AI accelerators.
235
+
LLVM IR, compiler optimizations, JIT-compilation, Cython, JAX, Numba, Julia, OpenCL, DPC++ and oneAPI, XLA, Verilog, FPGAs, ASICs, TPUs and other AI accelerators.
203
236
204
-
Release date: ???
237
+
Release date: ??? (less likely to be completed than not)
0 commit comments