After working through these videos, you are ready to complete your work on Assignment 0.
neovim_advanced.pdf
.Video: What is HPC?
Video: What is HPC Used for?
Optional reading: Skim the article “Scalability! But at what COST?”, which is freely available.
Optional reading: Skim the article “There’s plenty of room at the Top: What will drive computer performance after Moore’s law?”, if you can get access to it. If not, consider taking a moment to reflect on the contribution of scientific “publishing” to science and society.
Optional reading: Alternatively, skim the performance tables in the slides “Performance Engineering of Software Systems, Lecture 1” by Charles E. Leiserson.
Video:
File Access.
Code:
file_access.c
.
Additional file:
test_file.dat
.
Video:
Binary vs. Text Files
.
Code:
binary_vs_text.c
,
binary_vs_text.sh
.
Additional file:
test_file.txt
Video:
String Encoding and Handling.
Code:
string_handling.c
.
Video:
GDB.
Slides:
gdb.pdf
, and
Code:
gdb_example.c
,
gdb_example.sh
,
makefile
.
Two ammendments to the video:
watch
you can set watchpoints for variables in gdb.x
(or x/x
, x/d
, x/f
, etc.) prints the value at a given memory
address in requested format.Video:
valgrind.
Code:
valgrind_example.c
,
makefile
.
Video:
Simple Machine Model.
Slides:
simple_machine_model.pdf
.
Video:
CPU vs. Memory Bound Code
.
Code:
cpu_bound.c
,
memory_bound.c
,
memory_bound_random.c
,
makefile
.
Video:
Memory Hierarchy.
Slides:
memory_hierarchy.pdf
.
Video:
CPU Pipeline.
Slides:
cpu_pipeline.pdf
.