Add multilingual language and systems learning tracks
This commit is contained in:
1 parent
07338189fc
commit
d8d1c40118
844 files changed
+6061
No files matched your search
@@ -0,0 +1,9 @@
|
||||
# CPU/GPU Core & Memory Mapping · 1
|
||||
|
||||
[Agila University track](https://edu.agilaos.com/track.php?track=30&lang=en)
|
||||
|
||||
About 15 minutes per lesson. Predict, run, change, explain, then complete the check in University.
|
||||
|
||||
- [Lesson 1: Map the machine before scheduling work](lesson-1/lesson.html)
|
||||
- [Lesson 2: Match work to an execution model](lesson-2/lesson.html)
|
||||
- [Lesson 3: Affinity and migration](lesson-3/lesson.html)
|
||||
@@ -0,0 +1,5 @@
|
||||
<!doctype html><html lang="en"><meta charset="utf-8"><title>Map the machine before scheduling work</title><h1>Map the machine before scheduling work</h1><p>15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.</p><p>Separate sockets, physical cores, logical CPUs, and virtual CPUs. A cloud vCPU does not prove exclusive ownership of a physical core. GPU compute units and lanes use another execution model. Record what the environment actually exposes and what remains unknown. This droplet has one vCPU and no GPU; a multi-core or GPU comparison needs other hardware.</p><p><strong>Practice and evidence:</strong> Predict the example or draw its state transitions. Change one assumption, test the boundary, and record the actual result. Explain what this small model does not establish about a production system.</p><pre><code class="language-python">import os,platform
|
||||
print("ISA:",platform.machine())
|
||||
print("Visible logical CPUs:",os.cpu_count())
|
||||
print("GPU: not measured by this program")
|
||||
</code></pre><h3>Practice and evidence</h3><p>Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.</p><p><a href="https://git.agilaos.com/matt/open_agx">Language reference: git.agilaos.com</a></p><p><a href="https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/">Language reference: docs.nvidia.com</a></p></html>
|
||||
@@ -0,0 +1,4 @@
|
||||
import os,platform
|
||||
print("ISA:",platform.machine())
|
||||
print("Visible logical CPUs:",os.cpu_count())
|
||||
print("GPU: not measured by this program")
|
||||
@@ -0,0 +1 @@
|
||||
<!doctype html><html lang="en"><meta charset="utf-8"><title>Match work to an execution model</title><h1>Match work to an execution model</h1><p>15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.</p><p>Independent operations over large arrays can expose parallelism. A serial dependency chain cannot be split merely by adding cores. Branch-heavy or tiny jobs may favor CPU execution after launch and transfer overhead. Treat these as hypotheses, not universal rules. Classify a parser, a large matrix multiply, and a small request handler, then state what you would measure.</p><p><strong>Practice and evidence:</strong> Predict the example or draw its state transitions. Change one assumption, test the boundary, and record the actual result. Explain what this small model does not establish about a production system.</p><h3>Practice and evidence</h3><p>Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.</p><p><a href="https://git.agilaos.com/matt/open_agx">Language reference: git.agilaos.com</a></p><p><a href="https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/">Language reference: docs.nvidia.com</a></p></html>
|
||||
@@ -0,0 +1,3 @@
|
||||
<!doctype html><html lang="en"><meta charset="utf-8"><title>Affinity and migration</title><h1>Affinity and migration</h1><p>15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.</p><p>CPU affinity restricts which logical CPUs a thread may run on. It can reduce migration or accidentally create contention. Pinning does not reserve a core from other workloads. Compare unpinned and pinned runs only on a machine where topology and policy are known. Record affinity, competing load, frequency behavior, and sample count. Do not change a production server’s scheduling policy for a lesson.</p><p><strong>Practice and evidence:</strong> Predict the example or draw its state transitions. Change one assumption, test the boundary, and record the actual result. Explain what this small model does not establish about a production system.</p><pre><code class="language-python">import os
|
||||
print(sorted(os.sched_getaffinity(0)))
|
||||
</code></pre><h3>Practice and evidence</h3><p>Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.</p><p><a href="https://git.agilaos.com/matt/open_agx">Language reference: git.agilaos.com</a></p><p><a href="https://docs.nvidia.com/cuda/cuda-c-best-practices-guide/">Language reference: docs.nvidia.com</a></p></html>
|
||||
@@ -0,0 +1,2 @@
|
||||
import os
|
||||
print(sorted(os.sched_getaffinity(0)))
|
||||
Reference in new issue
Block a user