# Earlier Readings & Notes

- [High Performance Computing Course Notes](/earlier-readings-and-notes/cs759-hpc-course-notes.md): ECE/ME/EMA/CS 759: High Performance Computing for Engineering Applications, Spring 2021 by Prof. Dan Negrut
- [Lecture 1: Course Overview](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-1-course-overview.md)
- [Lecture 2: From Code to Instructions. The FDX Cycle. Instruction Level Parallelism.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-2-from-code-to-instructions.-the-fdx-cycle.-instruction-level-parallelism..md)
- [Lecture 3: Superscalar architectures. Measuring Computer Performance. Memory Aspects.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-3-superscalar-architectures.-measuring-computer-performance.-memory-aspects..md)
- [Lecture 4: The memory hierarchy. Caches.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-4-the-memory-hierarchy.-caches..md)
- [Lecture 5: Caches, wrap up. Virtual Memory.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-5-caches-wrap-up.-virtual-memory..md)
- [Lecture 6: The Walls to Sequential Computing. Moore’s Law.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-6-the-walls-to-sequential-computing.-moores-law..md)
- [Lecture 7: Parallel Computing. Flynn's Taxonomy. Amdahl's Law.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-8-parallel-computing.-flynns-taxonomy.-amdahls-law..md)
- [Lecture 8: GPU Computing Intro. The CUDA Programming Model. CUDA Execution Configuration.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-8-gpu-computing-intro.-the-cuda-programming-model.-cuda-execution-configuration.md)
- [Lecture 9: GPU Memory Spaces](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-9.md)
- [Lecture 10: GPU Scheduling Issues.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-10-gpu-scheduling-issues..md)
- [Lecture 11: Execution Divergence. Control Flow in CUDA. CUDA Shared Memory Issues.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-11-execution-divergence.-control-flow-in-cuda.-global-memory-access-patterns-and.md)
- [Lecture 12: Global Memory Access Patterns and Implications.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-12-cuda-shared-memory-issues..md)
- [Lecture 13: Atomic operations in CUDA. GPU ode optimization rules of thumb.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-12-cuda-shared-memory-issues.-atomic-operations-in-cuda..md)
- [Lecture 14: CUDA Case Studies. (1) 1D Stencil Operation. (2) Vector Reduction in CUDA.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-14-tiling-as-a-programing-pattern-in-cuda.-example-vector-reduction-in-cuda..md)
- [Lecture 15: CUDA Case Studies. (3) Parallel Prefix Scan on the GPU. Using Multiple Streams in CUDA.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-15-cuda-optimization-issues.-resource-utilization-issues.-parallel-prefix-scan-on-the-gpu..md)
- [Lecture 16: Streams, and overlapping data copy with execution.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-16-streams-and-overlapping-data-copy-with-execution..md)
- [Lecture 17: GPU Computing: Advanced Features.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-17-gpu-computing-advanced-features.-unified-memory-usage..md)
- [Lecture 18: GPU Computing with thrust and cub.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-18-gpu-computing-with-thrust-and-cub..md)
- [Lecture 19: Hardware aspects relevant in multi-core, shared memory parallel computing.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-19-hardware-aspects-relevant-in-multi-core-shared-memory-parallel-computing..md)
- [Lecture 20: Multi-core Parallel Computing with OpenMP. Parallel Regions.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-20-multi-core-parallel-computing-with-openmp.-parallel-regions..md)
- [Lecture 21: OpenMP Work Sharing.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-21-openmp-work-sharing..md)
- [Lecture 22: OpenMP Work Sharing](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-22-openmp-work-sharing.md)
- [Lecture 23: OpenMP NUMA Aspects. Caching and OpenMP.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-23-openmp-numa-aspects.-caching-and-openmp..md)
- [Lecture 24: Critical Thinking. Code Optimization Aspects.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-24-critical-thinking.-code-optimizatino-aspects..md)
- [Lecture 25: Computing with Supercomputers.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-25-computing-with-supercomputers..md)
- [Lecture 26: MPI Parallel Programming General Introduction. Point-to-Point Communication.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-26-mpi-parallel-programming-general-introduction.-point-to-point-communication..md)
- [Lecture 27: MPI Parallel Programming Point-to-Point communication: Blocking vs. Non-blocking sends.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-27-mpi-parallel-programming-point-to-point-communication-blocking-vs.-non-blocking-sends..md)
- [Lecture 28: MPI Parallel Programming: MPI Collectives. Overview of topics covered in the class.](/earlier-readings-and-notes/cs759-hpc-course-notes/lecture-28-mpi-parallel-programming-mpi-collectives.-overview-of-topics-covered-in-the-class..md)
- [Cloud Computing Course Notes](/earlier-readings-and-notes/cloud-computing-course-notes.md)
- [1.1 Introduction to Clouds, MapReduce](/earlier-readings-and-notes/cloud-computing-course-notes/1.1-introduction-to-clouds-mapreduce.md)
- [1.2 Gossip, Membership, and Grids](/earlier-readings-and-notes/cloud-computing-course-notes/1.2-gossip-membership-and-grids.md)
- [1.3 P2P Systems](/earlier-readings-and-notes/cloud-computing-course-notes/1.3-p2p-systems.md)
- [1.4 Key-Value Stores, Time, and Ordering](/earlier-readings-and-notes/cloud-computing-course-notes/1.4-key-value-stores-time-and-ordering.md)
- [1.5 Classical Distributed Algorithms](/earlier-readings-and-notes/cloud-computing-course-notes/1.5-classical-distributed-algorithms.md)
- [4.1 Spark, Hortonworks, HDFS, CAP](/earlier-readings-and-notes/cloud-computing-course-notes/4.1-spark-hortonworks-hdfs-cap.md)
- [4.2 Large Scale Data Storage](/earlier-readings-and-notes/cloud-computing-course-notes/4.2-large-scale-data-storage.md)
- [Operating Systems Papers - Index](/earlier-readings-and-notes/index.md)
- [CS 736 @ UW-Madison Fall 2020 Reading List](/earlier-readings-and-notes/index/cs-736-uw-madison-fall-2020-reading-list.md): Imported from https://canvas.wisc.edu/courses/205576/pages/paper-list. The reading list was put together by Prof. Andrea Arpaci-Dusseau.
- [All File Systems Are Not Created Equal: On the Complexity of Crafting Crash-Consistent Applications](/earlier-readings-and-notes/index/all-file-systems-are-not-created-equal-on-the-complexity-of-crafting-crash-consistent-applications.md)
- [ARC: A Self-Tuning, Low Overhead Replacement Cache](/earlier-readings-and-notes/index/arc-a-self-tuning-low-overhead-replacement-cache.md)
- [A File is Not a File: Understanding the I/O Behavior of Apple Desktop Applications](/earlier-readings-and-notes/index/a-file-is-not-a-file-understanding-the-i-o-behavior-of-apple-desktop-applications.md)
- [Biscuit: The benefits and costs of writing a POSIX kernel in a high-level language](/earlier-readings-and-notes/index/biscuit-the-benefits-and-costs-of-writing-a-posix-kernel-in-a-high-level-language.md)
- [Data Domain: Avoiding the Disk Bottleneck in the Data Domain Deduplication File System](/earlier-readings-and-notes/index/data-domain-avoiding-the-disk-bottleneck-in-the-data-domain-deduplication-file-system.md)
- [Disco: Running Commodity Operating Systems on Scalable Multiprocessors](/earlier-readings-and-notes/index/disco-running-commodity-operating-systems-on-scalable-multiprocessors.md)
- [FFS: A Fast File System for UNIX](/earlier-readings-and-notes/index/ffs-a-fast-file-system-for-unix.md)
- [From WiscKey to Bourbon: A Learned Index for Log-Structured Merge Trees](/earlier-readings-and-notes/index/from-wisckey-to-bourbon-a-learned-index-for-log-structured-merge-trees.md)
- [LegoOS: A Disseminated, Distributed OS for Hardware Resource Disaggregation](/earlier-readings-and-notes/index/legoos-a-disseminated-distributed-os-for-hardware-resource-disaggregation.md)
- [LFS: The Design and Implementation of a Log-Structured File System](/earlier-readings-and-notes/index/lfs-the-design-and-implementation-of-a-log-structured-file-system.md)
- [Lottery Scheduling: Flexible Proportional-Share Resource Management](/earlier-readings-and-notes/index/lottery-scheduling-flexible-proportional-share-resource-management.md)
- [Memory Resource Management in VMware ESX Server](/earlier-readings-and-notes/index/memory-resource-management-in-vmware-esx-server.md)
- [Monotasks: Architecting for Performance Clarity in Data Analytics Frameworks](/earlier-readings-and-notes/index/monotasks-architecting-for-performance-clarity-in-data-analytics-frameworks.md)
- [NFS: Sun's Network File System](/earlier-readings-and-notes/index/nfs-suns-network-file-system.md): Russel Sandberg wrote the original NFS paper in 1986 (linked below). This article covers a chapter from Remzi & Andrea's book, OSTEP.
- [OptFS: Optimistic Crash Consistency](/earlier-readings-and-notes/index/optfs-optimistic-crash-consistency.md)
- [RAID: A Case for Redundant Arrays of Inexpensive Disks](/earlier-readings-and-notes/index/raid-a-case-for-redundant-arrays-of-inexpensive-disks.md)
- [RDP: Row-Diagonal Parity for Double Disk Failure Correction](/earlier-readings-and-notes/index/rdp-row-diagonal-parity-for-double-disk-failure-correction.md)
- [Resource Containers: A New Facility for Resource Management in Server Systems](/earlier-readings-and-notes/index/resource-containers-a-new-facility-for-resource-management-in-server-systems.md)
- [ReVirt: Enabling Intrusion Analysis through Virtual-Machine Logging and Replay](/earlier-readings-and-notes/index/revirt-enabling-intrusion-analysis-through-virtual-machine-logging-and-replay.md)
- [Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism](/earlier-readings-and-notes/index/scheduler-activations-effective-kernel-support-for-the-user-level-management-of-parallelism.md)
- [SnapMirror: File-System-Based Asynchronous Mirroring for Disaster Recovery](/earlier-readings-and-notes/index/snapmirror-file-system-based-asynchronous-mirroring-for-disaster-recovery.md)
- [The Linux Scheduler: a Decade of Wasted Cores](/earlier-readings-and-notes/index/the-linux-scheduler-a-decade-of-wasted-cores.md)
- [The Unwritten Contract of Solid State Drives](/earlier-readings-and-notes/index/the-unwritten-contract-of-solid-state-drives.md)
- [Venti: A New Approach to Archival Storage](/earlier-readings-and-notes/index/venti-a-new-approach-to-archival-storage.md)
- [Earlier Notes](/earlier-readings-and-notes/earlier-notes.md)
- [How to read a paper](/earlier-readings-and-notes/earlier-notes/how-to-read-a-paper.md)
