Add multilingual language and systems learning tracks

This commit is contained in:
Admin committed 2026-11-01 15:46:21 +08:00
1 parent 07338189fc
commit d8d1c40118
844 files changed
+6061

No files matched your search

+9
View File
@@ -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)
+5
View File
@@ -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(&quot;ISA:&quot;,platform.machine())
print(&quot;Visible logical CPUs:&quot;,os.cpu_count())
print(&quot;GPU: not measured by this program&quot;)
</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>
+4
View File
@@ -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")
+1
View File
@@ -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>
+3
View File
@@ -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>
+2
View File
@@ -0,0 +1,2 @@
import os
print(sorted(os.sched_getaffinity(0)))