Source map

Transcript spans locate lecture material. They do not measure the proportion of original exposition.

ChapterSectionRecordingTranscript spanLecture materialResearch extensionTeaching constructionEvidence class
chapter-01-what-hpsc-is-for.htmlThe objects of the chapter and the running caseOriginal teaching; no recording spanThe unit flop/s and the example of 10^6 unknowns, which fix the quantities of the model.TOP500 definition of Rmax and Rpeak.The triple (problem, algorithm, machine), the cost model T = W/R with its three assumptions, the two feasibility constraints, the running case.definition
chapter-01-what-hpsc-is-for.htmlTheory, experiment and computation: from a partial differential equation to a linear systemyX0KfCorP6s17.0–395.0 sTheory, experiment and computation as the supports of science; the conversion of PDEs into algebraic equations; the numbers of unknowns 10^6 to 10^12.None beyond standard Taylor expansion.Derivation of the five-point stencil, the count 5N^2 - 4N of nonzeros, the program that checks the nonzero count and the order of accuracy.derivation
chapter-01-what-hpsc-is-for.htmlFour contributors and what the sources recordyX0KfCorP6s395.0–631.0 sTuring, von Neumann (395-631), Krylov (595-1021 interleaved with the cost discussion) and Galerkin (1021-1119).Turing (1936), von Neumann (1945, title page), MacTutor on Krylov and Galerkin, Hestenes and Stiefel (1952), Shewchuk (1994).Definition of the Krylov subspace and of the Galerkin method; the checking of each attribution.definition
chapter-01-what-hpsc-is-for.htmlThe cost of a direct solveyX0KfCorP6s631.0–846.0 sGaussian elimination, the order n^3, 27 operations for n = 3, 10^18 operations for 10^6 unknowns, 10^6 seconds.TOP500 and HPL: the operation count 2/3 n^3 + O(n^2) with partial pivoting; Demmel on band LU.Exact LU count (1.3), the counting program, storage (1.4), band LU count (1.5).derivation
chapter-01-what-hpsc-is-for.htmlFlop/s, Rpeak, Rmax, and what the TOP500 measuresyX0KfCorP6s846.0–957.0 sFLOPS and the range 10^12 to 10^15 for large machines.TOP500 list pages (Table 1.1), the Linpack benchmark description, HPL source, the HPCG list.Table 1.1, the ratio Rmax/Rpeak, the HPCG gap, the matrix-product and LU-solve measurements on the laptop.empirical result
chapter-01-what-hpsc-is-for.htmlIterative methods and the claim of O(n log n)yX0KfCorP6s957.0–1021.0 sIterative methods, Krylov subspace solvers, O(n log n).Demmel lecture 24 (Table 1.2, Jacobi spectral radius), Shewchuk (bound and complexity).Costs (1.6) and (1.7), the iteration-count program, the budget program.derivation
chapter-01-what-hpsc-is-for.htmlThe Difference Engine and ENIACyX0KfCorP6s1119.0–1401.0 sBabbage's engine, ENIAC, 300 operations per second, firing tables.Science Museum Group; Weik (1961).The finite-difference table for x^2 + x + 41; the ENIAC rates from Weik's timings; the illustrative table-cost arithmetic.empirical result
chapter-01-what-hpsc-is-for.htmlGrowth of computing power: the data, Moore's observation and Dennard scalingyX0KfCorP6s1401.0–1481.0 sExponential growth, the TOP500 charts.TOP500 list pages; Moore (1965); Dennard et al. (1974).Doubling time (1.8), sub-period doubling times, the power-density derivation (1.9) and its table.empirical result
chapter-01-what-hpsc-is-for.htmlFrontier and the one-day budgetyX0KfCorP6s1481.0–1621.0 sFrontier: 1.7 exaflops, 23 MW, 8.7 million cores; even Frontier could not use direct methods.TOP500 June 2023, November 2023, June 2024, November 2024 and June 2026; TOP500 Frontier system page (Nmax); OLCF user guide; EIA household figure.The decomposition of the core count, the power arithmetic, the test of the closing claim with the two feasibility constraints, the Nmax check against the memory, and the band-LU case.engineering check
chapter-02-operating-systems-and-linux-kernel.htmlThe objects of the chapter and the running caseOriginal teaching; no recording spanNone; the lectures name the layers but do not follow a command.Ritchie and Thompson definitions of image and process; syscall(2) register convention; x86 entry code documentation.Formal model P=(A,F,c,T), privilege modes, system call, running case ./hello with events E1-E6, machine description.definition
chapter-02-operating-systems-and-linux-kernel.htmlWhat an operating system does: multiplexing, protection and abstractionlmlLdGMrdGU48.0–544.0 sDefinition, eight reasons, eight components.None beyond the model sources.Reduction to three mechanisms (Table 2.1), argument for two privilege modes, privileged.c.engineering check
chapter-02-operating-systems-and-linux-kernel.htmlKinds of operating system, and why high performance computing uses LinuxlmlLdGMrdGU544.0–1025.0 sFour types, Unix-MINIX-Linux history, milestones, Linux in HPC, characteristics.Ritchie and Thompson section I; Torvalds 1992 posts; kernel.org v1.0; Tanenbaum-Torvalds exchange; sched(7); KernelNewbies 6.12.Three-property reading of the four types; dated check of the lecture's history claims.product specification
chapter-02-operating-systems-and-linux-kernel.htmlThe layers between a program and the hardwarelmlLdGMrdGU1025.0–1273.0 sUser-application-OS-hardware layers; shell, system libraries, kernel.Ritchie and Thompson section VI; vdso(7); kernel documentation of /proc (Pss).readelf/ldd/strace sessions (35 vs 17 system calls), libc sharing measurement.empirical result
chapter-02-operating-systems-and-linux-kernel.htmlFrom ./hello to the first instructionOriginal teaching; no recording spanNone.Ritchie and Thompson 5.1-5.5; POSIX.1-2024 fork; fork(2); execve(2).Events E1-E6, strace -f session, launch.c, launch_cost.c, launch-time decomposition, equation (2.1).empirical result
chapter-02-operating-systems-and-linux-kernel.htmlThe kernel: privileged code, system calls and loadable modulesJYTA5BWHmb0147.0–678.0 sKernel as bridge, monolithic, virtual machine per process, loadable modules.Tanenbaum-Torvalds exchange; entry_64 and PTI kernel documentation; syscall(2); vdso(7).syscall_cost.c, amortization model (2.2) and chunks.c, microkernel cost remark, kernel session.empirical result
chapter-02-operating-systems-and-linux-kernel.htmlThe scheduler: fair shares, preemption and the cost of switchingJYTA5BWHmb0678.0–807.0 sPolicies, states, preemption, context switching, load balancing.sched(7); CFS, EEVDF and nice-design kernel documentation; KernelNewbies 6.12.Mean waiting time (2.3) with exchange proof, sched_sim.py, nice prediction (2.4) and fairshare.c, switch efficiency (2.5) and ctxswitch.c.derivation
chapter-02-operating-systems-and-linux-kernel.htmlMemory management: virtual addresses, page tables and page faultsJYTA5BWHmb0807.0–907.0 sMMU, address translation, page tables, TLB, protection.Kernel mm concepts and x86-64 memory-map documentation; /proc documentation (VmPTE); fork(2) copy-on-write.Table-size formula (2.6), pagetable.py, ptes.c, translation-cost bound (2.7), pagefault.c.derivation
chapter-02-operating-systems-and-linux-kernel.htmlThe virtual file system, inter-process communication and the claim that everything is a fileJYTA5BWHmb0907.0–1366.0 sVFS elements, network subsystem, IPC mechanisms, everything is a file, file types.VFS kernel documentation; Ritchie and Thompson 3.3 and 5.2.fdtypes.c, /proc and /sys sessions, test of the lecture's file claims.empirical result
chapter-02-operating-systems-and-linux-kernel.htmlWhat the model establishes and what it does notOriginal teaching; no recording spanNone.None.Table 2.2 of lecture statements and their status; limits.engineering check
chapter-03-linux-file-system-permissions-ownership.htmlThe objects of the chapter and the running caseOriginal teaching; no recording spanMulti-user system, owner/group/others (W1L4 25:50).Ritchie and Thompson 1974; POSIX 4.7, 4.8; inode(7); credentials(7)Formal model of inodes, credentials and modes; the shared-directory case with requirements R1-R3definition
chapter-03-linux-file-system-permissions-ownership.htmlWho runs the commands and on whatt8tAOMqb3qc184.0–586.0 swhoami, uname, lscpu, free -hfree(1) definition of used; credentials(7)free_used.py; session on the verification machineengineering check
chapter-03-linux-file-system-permissions-ownership.htmlThe directory tree, paths and the working directoryt8tAOMqb3qc653.0–1431.0 sfile and directory definitions, pwd, ls, ls -la, hidden files, cd variantsFHS 3.0; path_resolution(7); Coreutils 10.1.2nav_session.sh; decoding of the lecture's ls -la lineengineering check
chapter-03-linux-file-system-permissions-ownership.htmlA directory is a table of namest8tAOMqb3qc953.0–1055.0 slink count column of ls -lRitchie and Thompson 1974; link(2), unlink(2), rename(2), symlink(7)Link count of a directory (3.1); names_inodes.pyderivation
chapter-03-linux-file-system-permissions-ownership.htmlCreating, renaming, moving, copying and deletingt8tAOMqb3qc1431.0–1898.0 sW1L3 23:51-31:38: mkdir, rmdir, mv; W1L4 0:37-25:14 (video bc4gkkRVn4Q, t=37-1514): touch, vim, gedit, rm, rm -r, cp, cp -rmkdir(2), rmdir(2), open(2), unlink(2), rename(2); Coreutils 11.4, 11.5Table 3.1; files_session.shengineering check
chapter-03-linux-file-system-permissions-ownership.htmlConcatenation and redirectionbc4gkkRVn4Q794.0–1312.0 scat, >, >>open(2) O_TRUNC, O_APPENDredirect_session.shengineering check
chapter-03-linux-file-system-permissions-ownership.htmlOwner, group and other: the access rule and the ten charactersbc4gkkRVn4Q1550.0–1987.0 sthree categories, r/w/x, ten-character stringPOSIX 4.7; path_resolution(7); Coreutils 10.1.2, 27.1Access rule (3.2)-(3.3); owner_class.sh; mode_decode.py; access_predicate.pytheorem
chapter-03-linux-file-system-permissions-ownership.htmlChanging the mode: symbolic and octal notationbc4gkkRVn4Q1987.0–2559.0 schmod symbolic and octalPOSIX chmod; Coreutils 27.2.6(3.4), (3.5); chmod_session.sh; chmod_model.py (24,576 cases)derivation
chapter-03-linux-file-system-permissions-ownership.htmlOwnership: chown, chgrp and the group of a new filebc4gkkRVn4Q2559.0–2789.0 schown owner:group, groupschown(2); open(2)root_b.sh transcriptengineering check
chapter-03-linux-file-system-permissions-ownership.htmlDefaults and special bits: the creation mask, set-group-ID, sticky and set-user-IDOriginal teaching; no recording spannone (default modes are shown, not explained)open(2), mkdir(2), POSIX umask, Ritchie and Thompson 1974, Coreutils 27.5, inode(7), POSIX 4.5(3.6); umask_check.py; group_session.shderivation
chapter-03-linux-file-system-permissions-ownership.htmlThe shared project directoryOriginal teaching; no recording spannone-shared_dir_model.py; root_a.sh transcriptengineering check
chapter-04-processes-text-memory-and-networking.htmlThe objects of the chapter and the running caseOriginal teaching; no recording spanNone; the running case (residual history of a solver run) is not in the lectures.POSIX.1-2017 Base Definitions 3.206 (line).Formal model: byte stream, line, filter, pipeline as composition, process, signal; Jacobi running case; jacobi_log.c; machine and tool versions.definition
chapter-04-processes-text-memory-and-networking.htmlProcesses, states and signalsS4XYOjSoAQE6.0–1247.0 sProcess definition and attributes; background and foreground, & and fg; states R, S, T, Z; ps, ps -e, ps -ef; top; kill and signals; multitasking, multiprocessing, multithreading.POSIX shell sections 2.8.2, 2.9.3; ps(1), top(1), kill(1), signal(7), wait(2), sched_setaffinity(2), proc_pid_stat(5), GNU coreutils nohup.Multitasking, multiprocessing and multithreading defined with the kernel mechanisms; jobs_demo.sh (background job, nohup, SIGHUP, exit statuses 129 and 143); states.c (states R, S, T, Z, signals, handler, sigaction on SIGKILL and SIGSTOP, two busy loops on one processor); arithmetic check of the lecture's top screen; state diagram.engineering check
chapter-04-processes-text-memory-and-networking.htmlgrep and the language of a regular expressionS4XYOjSoAQE1316.0–1531.0 sgrep PATTERN file, -n, -r with *.POSIX Base Definitions chapter 9; GNU grep manual 3.5, 3.6; Owens, Reppy and Turon 2009; Cox 2007 (Thompson 1968 only through Cox).Language of a regular expression, search against whole-line match, derivative matcher (regex_derivative.py) compared with grep -E on 127 strings; backtracking against automata timing (blowup.py); back-references and non-regular languages.derivation
chapter-04-processes-text-memory-and-networking.htmlawk: records, fields and pattern-action pairsS4XYOjSoAQE1531.0–1829.0 sawk columns, filtering rows, arithmetic, pattern matching on file.txt.GNU awk manual chapter 1, 4.5.1, 7.1.4; POSIX awk (arithmetic, comparison of numeric strings).Pattern-action model; lecture_files.sh reproduces the four lecture programs and shows the /M/ pitfall, field splitting and string against number comparison.engineering check
chapter-04-processes-text-memory-and-networking.htmlSorting, counting and the pipelineS4XYOjSoAQE1829.0–2303.0 ssort, sort -r, numerical sort, uniq, pipe, wc, head, tail, names diff, paste, tr, sed.POSIX Shell Command Language 2.9.2; POSIX sort and uniq; GNU coreutils sort and uniq; GNU grep manual 2.1.6, 2.3; pipe(7).pipes.sh (SIGPIPE and PIPESTATUS, pipefail, stdout against stderr, uniq adjacency, sort -n against -g, grep statuses, leftmost-longest, BRE against ERE, glob and dot files, back-reference, pipe capacity); logsummary.sh (pipelines on the solver log).engineering check
chapter-04-processes-text-memory-and-networking.htmlFrom the residual history to the convergence rateOriginal teaching; no recording spanNone.Demmel CS267 1996 notes (rho_Jacobi = cos(pi/(n+1)), Gauss-Seidel rho squared).Eigenmodes of the Jacobi iteration, residual expansion, estimator q_last, rate_check.sh, modal_check.py, end_prediction.py, modal_big.py, error against residual (4.8), N = 1000 run.derivation
chapter-04-processes-text-memory-and-networking.htmlMemory: virtual and resident size, and what free reportsTNlzx44rR886.0–148.0 sMemory concepts (physical, virtual, swap, paging); free, vmstat, df, swapon, meminfo.free(1), proc_meminfo(5), proc_pid_status(5), vmstat(8), swapon(8), kernel proc documentation, GNU coreutils df.Memory prediction 16 (N+2)^2 bytes; memory_model.c (VmSize against VmRSS, first touch); meminfo_check.py (columns of free from /proc/meminfo); used definition against the lecture's top numbers.engineering check
chapter-04-processes-text-memory-and-networking.htmlNetworking: interfaces, round-trip time and remote loginTNlzx44rR88148.0–718.0 sLoopback and physical interfaces; ping, ip, ssh, wget, scp; remote login example.RFC 1122 3.2.1.3, RFC 792, RFC 4251, ping(8), ip(8), ssh(1), scp(1), OpenSSH 9.0 release notes.Loopback round-trip fit of alpha and beta (loopback.sh), wget through http.server on loopback, ssh -G and local scp (ssh_tools.sh).empirical result
chapter-04-processes-text-memory-and-networking.htmlWhat the chapter establishes and what it does notOriginal teaching; no recording spanNone.None.Table 4.1 of lecture claims and their status; list of what is established and left out.engineering check
chapter-04-processes-text-memory-and-networking.htmlExercisesOriginal teaching; no recording spanNone.None.Six exercises with full solutions: derive, compute, counterexample, diagnose an assumption, design judgment, implementation and measurement.engineering check
chapter-05-shell-scripting-processes-and-control-flow.htmlThe objects of the chapter and the running caseOriginal teaching; no recording spanRunning problem: a parameter sweep that runs a solver and collects results; the lectures' aim of scripts that submit and collect jobs (W2L2 40:09).POSIX 2.1, 2.8.2, 2.9.1, 2.12 (execution environments, subshells, exit status); execve(2); Bash manual 3.7.2 to 3.7.5.Formal model: variables V and export set X, inheritance rule (5.1), cost symbol kappa; machine and versions; solver contract.definition
chapter-05-shell-scripting-processes-and-control-flow.htmlA script is a file of commands: the interpreter line, the execute bit and three ways to run itDRDzYNVw7K4105.0–600.0 sDefinition of a script, uses, shells, creating hello.sh, shebang, chmod, running.POSIX 2.1, 2.9.1 (command search, ENOEXEC); execve(2) interpreter scripts; Slurm sbatch #SBATCH lines.exec_modes.sh (three ways, x bit, missing interpreter line); interp_line.sh (kernel reads #!, single argument on Linux); WSL /mnt/c warning.engineering check
chapter-05-shell-scripting-processes-and-control-flow.htmlCommand substitution and arithmetic expansionDRDzYNVw7K4600.0–832.0 s$(date) and $((5 + 2)) examples.POSIX 2.6.3, 2.6.4; Bash manual 3.5.5, 6.5.Wrap-around rule (5.2); arith.sh (by-name versus textual evaluation, octal, errors); consequences for read input.derivation
chapter-05-shell-scripting-processes-and-control-flow.htmlVariables, the environment and child processesDRDzYNVw7K4832.0–1853.0 sVariables, command substitution into variables, env, export, parent and child scripts, unset, PATH and library/header variables.POSIX 2.2, 2.9.1, 2.12, 8.3; Bash manual 3.7.4; ld.so(8); GCC manual; Slurm --export.Inheritance rule (5.1) and its five consequences; env_demo.sh; path_demo.sh; quoting session; INCLUDE_PATH versus CPATH test.derivation
chapter-05-shell-scripting-processes-and-control-flow.htmlReading input with readDRDzYNVw7K41853.0–2093.0 secho plus read, two numbers and their sum.Bash manual read options.Exact semantics of read (fields, remainder, IFS, -r, status); session.definition
chapter-05-shell-scripting-processes-and-control-flow.htmlExit status: what if really testsh5Labe97yWM6.0–880.0 sif/elif/else, -f test, number test with -gt and ==, grade script.POSIX 2.9.4 if/while, test utility, 2.8.2; Bash manual 3.7.5, 6.4; sysexits.h EX_USAGE.Eight-bit status rule (5.3); status_demo.sh; read_demo.sh with a checked grading script; == and > under [ ].derivation
chapter-05-shell-scripting-processes-and-control-flow.htmlLoops: for, while and the process boundary of a pipelineh5Labe97yWM880.0–1357.0 sfor over a list, while with a counter, rule of choice.POSIX 2.9.4 for/while, 2.12; Bash manual 3.2.3.Iteration count (5.4); loops_demo.sh (word splitting of for lists, loop at the end of a pipeline).derivation
chapter-05-shell-scripting-processes-and-control-flow.htmlFunctions, return values and recursionh5Labe97yWM1357.0–1938.0 sDefinition and call, add with return and $?, factorial by recursion.POSIX 2.9.1, 2.9.5, return; Bash manual local.Wrap of n! and Legendre's formula; functions_demo.sh (return range, global variables, local x=$(cmd), one process per call).derivation
chapter-05-shell-scripting-processes-and-control-flow.htmlThe monitoring script and the price of a processh5Labe97yWM1938.0–2622.0 sDisk-space monitoring script and its explanation; recap.POSIX 2.12; Bash manual 3.2.3.Process-count rule (5.5); fork_cost.sh (counts, kappa, loop against one awk); monitor.sh; extrapolation to 10^6 lines.empirical result
chapter-05-shell-scripting-processes-and-control-flow.htmlThe parameter sweep: every construct togetherOriginal teaching; no recording spanNone (applies the constructs of both lectures).Bash manual wait, local; POSIX 2.5.2.sweep.sh: status-checked collector, case, background processes with wait, file-based results, exit status of the sweep.engineering check
chapter-05-shell-scripting-processes-and-control-flow.htmlWhat the model establishes and what it does notOriginal teaching; no recording spanStatements of the lectures including their own explanations.None.Table 5.1 and boundaries.engineering check
chapter-05-shell-scripting-processes-and-control-flow.htmlExercisesOriginal teaching; no recording spanNone.None.Six exercises with full solutions: derive, compute, counterexample, diagnose an assumption, design judgment, implementation and measurement.engineering check
chapter-06-hpc-components-and-node-architecture.htmlThe objects of the chapter and the running caseOriginal teaching; no recording spanBasic vocabulary used by both lectures (node, cluster, core, thread).Intel Optimization Reference Manual section 2.3.1 (hybrid cores); Notebookcheck (clock range).Peak-rate model phi = 2 X l, P = f phi; Rpeak versus Rmax; machine description and session; running case (polynomial loop).definition
chapter-06-hpc-components-and-node-architecture.htmlUnits, the TOP500 list, and what the lecture means by high performance computingG8zq1xqe_jI6.0–1080.0 sENIAC, speed plot, flop units, TOP500 and HPL, Frontier figures, computation as third mode of science, definitions of HPC and supercomputer, parallel versus distributed, applications.TOP500 Frontier page and lists (2008, 2019, 2026); TOP500 Linpack description; HPL page; Army Ordnance monograph on ENIAC.Arithmetic listing: Rmax/Rpeak, per-core rate, energy, HPL work and time, doubling times of rank 1 and rank 500; corrections of dates and of the axis label.empirical result
chapter-06-hpc-components-and-node-architecture.htmlThe components of a cluster and the path of a jobG8zq1xqe_jI1080.0–1516.0 sCluster diagram (login, compute, accelerated, interconnect, storage layers, management); software stack slide; home on NFS and scratch on Lustre.Slurm overview; OpenHPC site; Lustre manual sections 1.2.2, 1.3, 1.3.1.Role partition and access rule; job path in steps; striping model with listing and the bandwidth rule (6.2) for one file.engineering check
chapter-06-hpc-components-and-node-architecture.htmlInside one compute node: sockets, memory, input and output, and the peak rateG8zq1xqe_jI1516.0–1551.0 sRack, node, dual-socket motherboard, DIMMs, network interface, accelerator card; components of a supercomputer.Intel manual Tables 2-3 to 2-5 (2x256-bit FMA units, latency 4); uops.info measurements for P-core and E-core FMA.Derivation of the P-core peak 16 flop per cycle, 70.4 Gflop/s at 4.4 GHz, and of the E-core 8 flop per cycle, 26.4 Gflop/s at 3.3 GHz; node bound 387.2 Gflop/s at the highest clocks.product specification
chapter-06-hpc-components-and-node-architecture.htmlWhy parallel: capacity, time, and the concurrency a program offersG8zq1xqe_jI1551.0–2062.0 sReasons for parallel computing; concurrency, scalability, data locality, modularity; OpenMP, MPI, OpenACC and CUDA. Teamwork of domain and computational experts; the route from algorithm to parallel algorithm, code, parallel framework, and workflows or problem-solving environments with a graphical interface; commercial applications such as MATLAB (t = 1612 to 1743).Brent (1974) abstract.Memory-capacity arithmetic for the Jacobi grid; work-span definition of concurrency; proof of the greedy bound; work-span listing for three additions of 1024 numbers.derivation
chapter-06-hpc-components-and-node-architecture.htmlFrom a statement to instructions: opcode, operand, latency and throughputxWBICsJyDZo43.0–415.0 sComputer types, simplified model, basic computing model (a = a + b + 1, ADD/INC, opcode, operand, ALU, ISA).Little (1961) abstract; Intel manual 2.3.1 (symmetric ISA), Tables 2-4 and 2-5.gcc -O0 and -O2 sessions for the lecture's statement; R(K) = min(K/L, X) and K* = L X; scalar FMA ramp listing and its interpretation; anomaly of add-immediate chains.engineering check
chapter-06-hpc-components-and-node-architecture.htmlFlynn's taxonomy, vector lanes, and the node as a multiple-instruction machinexWBICsJyDZo415.0–747.0 sFlynn's four classes with slides and examples; SIMD in vector computers, CPUs and GPUs; MIMD shared and distributed memory.Flynn (1966, 1972) abstracts.Formal reading of the classes at four levels; vector FMA ramp listing; five builds of the polynomial loop; thread-scaling listing, whose printed rate is p r_min by (6.6); bounds from P-core and E-core latencies; Table 6.2 of peaks and measurements; clarification of the SIMD definition from the slides. The measurements lie between the E-core-straggler value and the sum of the rates.empirical result
chapter-06-hpc-components-and-node-architecture.htmlPrograms, processes, and sharing one core: multiprogramming, time slicing, the context switchxWBICsJyDZo747.0–1526.0 sProcess basics, single tasking on the IBM PC with MS-DOS, multiprogramming, multitasking, process control block, context switch, symmetric and asymmetric multiprocessing. Terminate-and-stay-resident programs (t = 1192).Intel M80C286 data sheet.Utilization model U(n) = 1 - w^n; check of the hardware claim; pipe ping-pong listing for processes and threads; overhead share of a time slice.empirical result
chapter-06-hpc-components-and-node-architecture.htmlThreads and Hyper-ThreadingxWBICsJyDZo1526.0–2094.0 sThread definition and table of unique and shared items; benefits and scheduling criteria; Hyper-Threading slide.pthreads(7); Marr et al. (2002); Intel manual 2.3.1. Slurm multi-core support page (--hint=nomultithread).Shared-core model g = min(2, L X / K) (6.8); reading of the HPC recommendation from the equal-share speedup (6.6) as protection against bad placement; the thread-scaling run cannot test it.derivation
chapter-06-hpc-components-and-node-architecture.htmlWhat the models establish and what they do notOriginal teaching; no recording spanTable of 16 lecture statements and their status.None.Table 6.3; limits of the models.engineering check
chapter-07-hierarchical-memory-and-scalable-architectures.htmlThe objects of the chapter and the running caseiBMlMcT2Q_46.0–39.0 sAgenda of the lecture: memory technologies, hierarchy and cache, SMP, NUMA and cluster.Intel ARK for the machine; guest sysfs for the cache geometry.Formal model of lines, sets, ways, traces, UMA and NUMA, distributed memory; the row-order and column-order matrix sum as running case.definition
chapter-07-hierarchical-memory-and-scalable-architectures.htmlMemory technologies, the processor-memory gap and two hardware remediesiBMlMcT2Q_439.0–592.0 sTable of SRAM, DRAM, flash, hard disk; read and write cycles; the gap; interleaving; wider paths.Drepper 2.1 (cell structures, refresh, cost); Pentium M cycle counts; internal check of the 52 %/7 % plot.Interleaved-bank rate min(1, kappa/tau) with proof and simulation (interleave.py); comparison of slide speeds with measured latencies.derivation
chapter-07-hierarchical-memory-and-scalable-architectures.htmlLocality, reuse distance and the memory hierarchyiBMlMcT2Q_4271.0–826.0 sRequirements, temporal and spatial locality, the hierarchy from registers to remote storage, hit and miss.Denning (2005) locality as a distance; Mattson et al. stack property via Kim, Hill and Wood.Reuse distance; Theorem 1 (hit iff distance < C) with proof and check (reuse.py); pointer-chase measurement of the hierarchy (chase.c).theorem
chapter-07-hierarchical-memory-and-scalable-architectures.htmlInside a cache: lines, tags, sets and the conflict capacityiBMlMcT2Q_4826.0–1447.0 sCache as buffer of lines, directory store, data, status bits, controller, read algorithm, mapping schemes named.Drepper 3.2, 3.3.1 (address split, associativity, Table 3.1); Kelly notes (compulsory, capacity, conflict misses); Cachegrind check.Line-size measurement (stride.c); Lemma 2 (conflict capacity aS/gcd(S, sigma)); three-level LRU simulator (cachesim.py); independent Cachegrind session; padding prediction.theorem
chapter-07-hierarchical-memory-and-scalable-architectures.htmlHit rate, average access time and the limit of the modeliBMlMcT2Q_41447.0–1478.0 sHit rate, hit time, miss penalty.AMAT after Hennessy and Patterson via Kelly's notes; Little's law.Multi-level AMAT; test against the sum loops; overlap bound t >= max(t_add, mu L / c) and implied concurrency; Table 7.1 (rowcol.c).empirical result
chapter-07-hierarchical-memory-and-scalable-architectures.htmlWrites, coherence and snoopingiBMlMcT2Q_41478.0–1549.0 sCoherency problem, write-through, snooping.Drepper 3.2, 3.3.3, 3.3.4 (write policies, MESI, RFO, shared-bus measurements).MESI simulator with invariant check and traffic counts for four scenarios (coherence.py); link to false sharing of chapter 11.engineering check
chapter-07-hierarchical-memory-and-scalable-architectures.htmlShared memory: SMP, UMA and NUMAiBMlMcT2Q_41549.0–1976.0 sShared and distributed memory, SMP definition and diagram, UMA and NUMA, why NUMA is needed, NUMA implementation, Altix ICE 8400 example.Drepper 5.1, 5.2 (NUMA factor, Altix, default policy in 2007); Linux NUMA memory policy documentation; SGI press text and slide deck.NUMA mean latency model; bus saturation p* = B_bus/g; first-touch consequence; correction of the ICE 8400 example.product specification
chapter-07-hierarchical-memory-and-scalable-architectures.htmlClusters, the interconnect and the cost of distanceiBMlMcT2Q_41946.0–2170.0 sCluster definition and benefits, bandwidth, latency and offloading of the HPC network.Al-Fares et al. 2008 (fat tree, oversubscription); SGI hub offload.alpha-beta message model and half-bandwidth size; distributed matrix sum T_p; availability model; bisection-width table and bound (topology.py).derivation
chapter-07-hierarchical-memory-and-scalable-architectures.htmlWhat the models establish and what they do notOriginal teaching; no recording spanClaims of the lecture collected in Table 7.3.None beyond the sections above.Claims-status table; statement of what the models leave out.engineering check
chapter-07-hierarchical-memory-and-scalable-architectures.htmlExercisesOriginal teaching; no recording spanNone.None.Six exercises with solutions (derive, compute, counterexample, diagnose an assumption, design judgment, implementation and measurement).derivation
chapter-07-hierarchical-memory-and-scalable-architectures.htmlPrimary sourcesOriginal teaching; no recording spanRecording and slides.All cited sources with the claim each supports.None.definition
chapter-08-concurrency-and-synchronization.htmlThe objects of the chapter and the running caseOriginal teaching; no recording spanThe shared counter updated by threads (slides).C11 N1570 5.1.2.4 (conflict, happens before, data race); Lamport 1979 (sequential consistency); Intel ARK (machine).Formal model of events, schedules, conflicts, data race versus race condition; symbols; machine statement.definition
chapter-08-concurrency-and-synchronization.htmlConcurrency, interleaving and overlapulprOSZPAu068.0–279.0 sTime slicing, interleaving on one processor, interleaving and overlap on several; Stallings figure.Chapter 11 definitions of concurrent and parallel.Schedule count (8.1); one-core experiment.definition
chapter-08-concurrency-and-synchronization.htmlThe lost update: a data race and a race conditionulprOSZPAu0279.0–579.0 sRace definition; indeterminate and inconsistent results; two-schedule example.C11 5.1.2.4 p4, p25; ThreadSanitizer run.Theorem 8.1 and Corollary 8.2; exhaustive search (interleave.py); counter.c; batch-size sweep.theorem
chapter-08-concurrency-and-synchronization.htmlMutual exclusion and the critical sectionulprOSZPAu0579.0–1370.0 sLock and key; overhead of waiting; shared-cache figure; contention-only and data-sharing threads; critical section and lock.Dijkstra EWD123 2.1 (requirements, rejected trials); POSIX 4.12; N1570 NOTE 6; Tian and Shih 2012.Four requirements; serialization bound (8.3); batching bound (8.4).derivation
chapter-08-concurrency-and-synchronization.htmlMutex locksulprOSZPAu01370.0–1509.0 sMutex, pthread example, internal binary variable.POSIX pthread_mutex_lock table; Drepper futex mutex.Thread sweep and batch-size sweep measurements; test of the bounds.engineering check
chapter-08-concurrency-and-synchronization.htmlLocks from loads and stores: Peterson's algorithm and the store bufferOriginal teaching; no recording spanAtomics need hardware cooperation (remark).Peterson 1981 (record only); Sewell et al. 2010 (x86-TSO); Lamport 1979; EWD123.Proof under sequential consistency; explicit-state search over SC and TSO (lock_model.py); hardware tests sb.c and peterson.c; assembly of the fence.empirical result
chapter-08-concurrency-and-synchronization.htmlAtomic instructionsulprOSZPAu01509.0–1853.0 sTest-and-set, compare-and-swap, locks from them, hardware cooperation, queue.N1570 7.17; Sewell et al. 3; MCS 1991; OpenMP 5.2 weak clause note.Exclusion proof of the test-and-set lock; locks.c; cas_pi.c; assembly session; cost analysis.derivation
chapter-08-concurrency-and-synchronization.htmlBarriersulprOSZPAu01853.0–2098.0 sLevel-crossing analogy; phases; dependencies, consistency, checkpointing.OpenMP 5.2 15.3.1; POSIX pthread_barrier_wait; MCS 1991 3.1 Fig. 8; Chandy and Lamport 1985.Barrier property; sense-reversing barrier argument; barrier.c; efficiency formula (8.5).engineering check
chapter-08-concurrency-and-synchronization.htmlWhen synchronization fails: deadlockOriginal teaching; no recording spanNot covered by the recording.Coffman et al. 1971 (record only); POSIX relock table and EDEADLK; OpenMP barrier restriction.Deterministic deadlock demonstration; lock-order proof.derivation
chapter-08-concurrency-and-synchronization.htmlThe primitives in OpenMP, MPI and CUDAulprOSZPAu02098.0–2307.0 sSummary; frameworks provide primitives.OpenMP 5.2 15.2, 15.3.1, 15.8.4.Table 8.3; omp_counter.c.product specification
chapter-09-parallel-computing-numerical-models-and-cost.htmlThe objects of the chapter and the running caseOriginal teaching; no recording spanPlate problem (W3L2); canonical grid conventions are the book's.Intel ARK and TechPowerUp for the machine.Formal model of the plate, grid, Jacobi sweep, iteration error, work, symbols and the machine.definition
chapter-09-parallel-computing-numerical-models-and-cost.htmlMoore's law, Dennard scaling and the end of faster single coresPXmMDWzebGE39.0–669.0 sMoore's law chart, MOSFET, scaling table, plateau of frequency and single-thread performance, growth of cores, parallel computing slide.Moore 1965 and 1975; Dennard et al. 1974; Bohr 2007; Rupp trend data.Fits of doubling times; Dennard arithmetic table with V fixed; comparison of 18 months with the data.empirical result
chapter-09-parallel-computing-numerical-models-and-cost.htmlDividing a sum among people, and Amdahl's lawPXmMDWzebGE669.0–1194.0 s10,000 integers with 10 and 100 people; Amdahl's law and its limits; conclusion about machines with millions of cores.Amdahl 1967; Gustafson 1988.T(p) = M/p + p, optimum sqrt(M), effective serial fraction, pairwise combination, table of Amdahl limits.derivation
chapter-09-parallel-computing-numerical-models-and-cost.htmlFrom phenomenon to computation: three errorsz75dO5juDq840.0–808.0 sPipeline phenomenon-equation-method-computation; three errors; balance; central difference.Goldberg 1991 (unit roundoff); NIST CODATA (Boltzmann constant).Error decomposition (9.3); central difference with Taylor remainder; error-balance bound (9.5); experiment in double and single precision.derivation
chapter-09-parallel-computing-numerical-models-and-cost.htmlThe plate problem and the five-point stencilz75dO5juDq8808.0–1080.0 sPlate, Laplace's equation, grid, discretized equation, Ax = b, 'iterative is more efficient'.Saad 2003 (eigenvalues of the model problem).Derivation of the stencil and its truncation error; correction of the slide; maximum-principle bound (9.7); closed-form discrete solution; canonical problem: exact centre value and corner behaviour.theorem
chapter-09-parallel-computing-numerical-models-and-cost.htmlJacobi iteration: convergence, iteration count and the serial codez75dO5juDq81080.0–1147.0 sA code is written, compiled and run; plot of the temperature field.Saad 2003 Theorem 4.1 and eq. 13.5; Demmel 1995.Spectrum (9.8), iteration count with amplitude 4/pi^2 (9.9), stopping-rule factor (9.10); canonical code jacobi_step; three-error experiment.derivation
chapter-09-parallel-computing-numerical-models-and-cost.htmlWhat the iteration costs, and why one core cannot keep upOriginal teaching; no recording spanNone (the lecture states that accuracy affects cost).Demmel 1995 table of solver costs.Work (9.11), measured time per point update, cost table, required speedup and Amdahl condition, work-span remark, banded Cholesky comparison.engineering check
chapter-09-parallel-computing-numerical-models-and-cost.htmlFrom source code to instructionsz75dO5juDq81147.0–1637.0 sPunch card, system layers, abstraction, ISA, ABI; W3L1 claim about automatic parallelization.System V AMD64 ABI; GCC manual (-ftree-parallelize-loops, -march).Session on the compiled kernel (14 instructions per point update); calling convention in the disassembly; automatic-parallelization test.empirical result
chapter-09-parallel-computing-numerical-models-and-cost.htmlWhat the model establishes and what it does notOriginal teaching; no recording spanNone.None.Table 9.1 of lecture claims and their status; boundaries.engineering check
chapter-09-parallel-computing-numerical-models-and-cost.htmlExercisesOriginal teaching; no recording spanNone.Saad Theorem 4.16 (exercise 6).Six exercises with full solutions: derive, compute, counterexample, diagnose an assumption, design judgment, implementation and measurement.engineering check
chapter-10-memory-bottlenecks-hpc-systems-grace-hopper.htmlThe objects of the chapter and the running caseOriginal teaching; no recording spanRunning problem of the book (Jacobi sweep) and the question of whether memory limits it.None.Formal model of a program run (F, Q, I) and a machine (P_peak, B_peak, hierarchy); the bound T >= max(F/P, Q/B); machine description with the installed memory and its pin rate.definition
chapter-10-memory-bottlenecks-hpc-systems-grace-hopper.htmlThe memory hierarchy: speed, size and the width of the pathsDg69YlKdUNo201.0–992.0 sVon Neumann cycle; pyramid of memory levels; speeds, sizes, costs; path widths 8 B, 32 B, 4 KB; bandwidths; warehouse analogy.None beyond the lecture slides.Correction of the cycle count; latency and bandwidth measurement by working-set size (hierarchy.c); half-performance length; bytes in flight.engineering check
chapter-10-memory-bottlenecks-hpc-systems-grace-hopper.htmlVirtual memory, paging and thrashingDg69YlKdUNo992.0–1360.0 sVirtual address space, pages, paging, thrashing, contiguous access.None.Page, frame, page table, fault model; fault cost measurement (faults.c); average time with faults; the thrashing cliff table (amat.py).derivation
chapter-10-memory-bottlenecks-hpc-systems-grace-hopper.htmlHit time, miss penalty, the average access time and the memory wallDg69YlKdUNo1360.0–1570.0 sHit, miss, hit rate, miss rate, hit time, miss penalty; hierarchy numbers.Wulf and McKee as reported by Machanick; Ertl critique.AMAT and two-level AMAT; failure of AMAT for streaming; memory-wall extrapolation.derivation
chapter-10-memory-bottlenecks-hpc-systems-grace-hopper.htmlSTREAM: the bandwidth that the memory deliversOriginal teaching; no recording spanNone.McCalpin STREAM rules and byte-counting conventions.stream_mini.c with a streaming-store triad to test write allocate; interpretation.empirical result
chapter-10-memory-bottlenecks-hpc-systems-grace-hopper.htmlThe Roofline model: derivation, assumptions and the ceilings of this machineOriginal teaching; no recording spanNone.Williams, Waterman and Patterson (technical report).Derivation from (10.1); assumptions A1-A3; peak_fma.c; ridge points of the machine.derivation
chapter-10-memory-bottlenecks-hpc-systems-grace-hopper.htmlThe Jacobi sweep under the roofOriginal teaching; no recording spanNone.Williams et al. 7-point stencil intensity 0.33.Intensity of the sweep in three cache cases; layer condition; jacobi_bench.c, roofline.py, jacobi_check.c.engineering check
chapter-10-memory-bottlenecks-hpc-systems-grace-hopper.htmlShared-memory and distributed-memory machines, and the node of a leadership systemiE47tWwhBKs6.0–1587.0 sShared versus distributed memory; MPPs; CPU versus GPU; Frontier node, GPU, network, programming environment, uses; Spacetime2.OLCF user guide; HPE talk 2023; TOP500; Kim et al. dragonfly.Multi-link bound (10.11); Frontier numbers check; bandwidth ladder; dragonfly port budget and cut capacity; halo ratio; capacity and power per flop.product specification
chapter-10-memory-bottlenecks-hpc-systems-grace-hopper.htmlThe Grace Hopper superchip and the economics of moving datatCj4YXGsEXE39.0–1559.0 sGrand-challenge applications, ML/DL, digital twins, Moore, energy, Grace CPU, Hopper GPU, NVLink-C2C, energy per bit, co-scheduling, ABINIT.GH200 datasheet; whitepaper v1.21; Horowitz 2014.Cost-error orders; ridge-point table; GH200 flop per byte and Jacobi bounds; energy per operand and per Jacobi point; ABINIT bar accounting.product specification
chapter-10-memory-bottlenecks-hpc-systems-grace-hopper.htmlWhat the models establish and what they do notOriginal teaching; no recording spanClaims table.None.Table 10.4 and limits.engineering check
chapter-11-openmp-threads-and-work-distribution.htmlThe objects of the chapter and the running caseOriginal teaching; no recording spanRunning problem: midpoint-rule pi (W4L1).None.Formal model: events, program order, fork, join, schedules, storage (shared/private), cost of a region; symbol list; machine description.definition
chapter-11-openmp-threads-and-work-distribution.htmlOpenMP is directives, a runtime library and environment variablesDVQhXs8_o-A6.0–576.0 sAPI of directives, library routines and environment variables; legacy-code motivation; solution stack; common core of 21 items; directive syntax and structured block; omp.h and -fopenmp.Dagum and Menon 1998 (abstract); Menon 1998 slides (specification dates); OpenMP 5.2 sections 1.3, 3.3, 4.3.Scope of the chapter within the common core; reading of a directive as a change of meaning.product specification
chapter-11-openmp-threads-and-work-distribution.htmlA first parallel program, its many outputs and the interleaving modelDVQhXs8_o-A576.0–1075.0 sHello world in a parallel region; output varies between runs; 8, 4 and 24 threads; concurrency and parallelism definitions.None.Count of schedules (2p)!/2^p and outputs (Catalan numbers); enumeration program; 2000-run experiment.derivation
chapter-11-openmp-threads-and-work-distribution.htmlFork-join execution and the size of the teamDVQhXs8_o-A1075.0–1599.0 sFork-join model and nested regions; team size from an environment variable; omp_set_num_threads; thread number; hello world with thread number.OpenMP 5.2 sections 1.3, 10.1, 10.1.1 (Algorithm 2.1), 18.2.1, 18.2.2, 21.1.2.team.c checking precedence and thread numbers; correction of 'operating system' to the runtime ICV.product specification
chapter-11-openmp-threads-and-work-distribution.htmlShared and private storage, redundant execution and the data raceCz8KRZBbgpI101.0–334.0 sParallel region with pooh(ID, A); redundant execution; shared array and private ID; implicit barrier; requested versus actual threads; scalar promoted to array to avoid a race.OpenMP 5.2 sections 5.1.1 and 1.4.1 (data-race definition, update granularity).Model definition of a race; race.c; remark that race-freedom (memory units) and false sharing (cache lines) are independent.definition
chapter-11-openmp-threads-and-work-distribution.htmlThe midpoint rule for pi: cost and errorCz8KRZBbgpI334.0–653.0 sIntegral of 4/(1+x^2) as a sum of rectangles; serial program; omp_get_wtime.OpenStax Calculus Volume 2 section 3.6 Theorem 3.5 (error bound).Derivation of the bound and of the h^2/24 [f'] expansion; M = 8; h^2/12 for this f; cost-accuracy budget; pi_error.c.derivation
chapter-11-openmp-threads-and-work-distribution.htmlThe SPMD program: cyclic and block distribution of iterationsCz8KRZBbgpI653.0–974.0 sSPMD pi program with sum[id], thread 0 copying the team size, serial global sum, cyclic and block distribution.OpenMP 5.2 section 1.3 (different numbers of threads, different numeric results).Dependence argument and reduction; distributions; load-balance model (11.3), (11.4); pi_spmd.c; triangle.c.derivation
chapter-11-openmp-threads-and-work-distribution.htmlSpeedup, efficiency and Amdahl's lawCz8KRZBbgpI974.0–1336.0 sTiming table 1.86/1.03/1.08/0.97 s; speedup, linear and superlinear; Amdahl's law with alpha.Amdahl 1967 (argument, 40 percent housekeeping, five to seven times; no equations).Derivation from assumptions A1-A3; experimental serial fraction; two-core model; amdahl.py.derivation
chapter-11-openmp-threads-and-work-distribution.htmlThe cost of a parallel region and the choice of the thread countCz8KRZBbgpI1336.0–1525.0 sOverheads of thread creation, destruction and management; 1000 threads slower than serial; OMP_NUM_THREADS without recompiling; timing study.None.Overhead model and optimum team size; fork_cost.c; single-shot 1000-thread runs; capacity-plus-creation model; selection procedure.empirical result
chapter-11-openmp-threads-and-work-distribution.htmlFalse sharing: cache-line arithmetic and a measurementOriginal teaching; no recording spanNone.Drepper 2007 sections 3.2, 6.4.1 (64-byte lines, write ownership, measured penalties).Line-index formula (11.8); falseshare.c; pi_scaling.c with -O0/-O2 and strides 1/8; independent-copies capacity measurement.empirical result
chapter-11-openmp-threads-and-work-distribution.htmlWhat the model establishes and what it does notOriginal teaching; no recording spanNone.None.Claim table (Table 11.1) and boundaries.engineering check
chapter-11-openmp-threads-and-work-distribution.htmlExercisesOriginal teaching; no recording spanNone.None.Six exercises with full solutions: derive, compute, counterexample, diagnose an assumption, design judgment, implementation and measurement.engineering check