Laboratoarele mele rezolvate pentru cursul ASC (Arhitectura Sistemelor de Calcul), an universitar 2025–2026. Codul-schelet provine din repo-ul oficial asc-public; aici se află doar laboratoarele LAB1–LAB8 completate de mine, transpuse de pe clusterul FEP în local. Fiecare laborator are propriul README cu enunț, comenzi, output așteptat și capcane.
Notă: temele (assignments) nu sunt incluse în acest repo — doar laboratoarele.
| Lab | Subiect | Tehnologii |
|---|---|---|
| LAB1 | Introducere în clusterul HPC (FEP, SLURM) | bash, SLURM, Pthreads, CUDA |
| LAB2 | Arhitecturi de microprocesoare: alocare, aliniere, dimensiunea cache-ului și a liniei de cache | C, Valgrind |
| LAB3 | Tehnici de optimizare a codului: înmulțirea matricelor (ordonarea buclelor, blocking, pointeri) | C |
| LAB4 | Analiza performanței: Valgrind, Callgrind, Cachegrind, perf, Tachyon | C, OpenMP |
| LAB5 | Introducere în CUDA (alocare host/device, kernel, indici globali) | CUDA |
| LAB6 | Arhitectură CUDA: GFLOPS, înmulțire de matrice tiled (__shared__) |
CUDA, Nsight Compute |
| LAB7 | CUDA avansat: unified memory, atomics, atomicCAS, dynamic parallelism |
CUDA |
| LAB8 | CUDA practic: sortări (OETS, merge sort), Gaussian blur | CUDA |
- Cluster FEP (
fep.grid.pub.ro) cu SLURM:sbatch/srun, partițiihaswell(CPU),ucsx/xl(GPU A100/P100). - Containere Apptainer pentru laboratoarele de C (
asc-public/c-labs). - CUDA rulat pe partiții cu GPU (sau local pe WSL cu
nvcc, vezi notele din fiecare laborator).
Fiecare laborator are instrucțiuni proprii în LABx/README.md (sau README.lab.md). Pe scurt:
ssh fep
srun --x11 -p haswell --pty /bin/bash # nod CPU
# sau, pentru CUDA:
srun --partition=ucsx --gres=gpu:1 --pty bash # nod GPU
cd LABx/.../task && make && make run