Differences

This shows you the differences between two versions of the page.

Link to this comparison view

asc:laboratoare:04 [2026/03/24 03:48]
tudor.calafeteanu [Exercitii]
asc:laboratoare:04 [2026/03/26 14:24] (current)
emil.slusanschi [Reference]
Line 104: Line 104:
 Pentru acest laborator se pot utiliza sistemele din cluster prin intermediul fep.grid.pub.ro:​ Pentru acest laborator se pot utiliza sistemele din cluster prin intermediul fep.grid.pub.ro:​
   - Vă conectați pe ''​fep'',​ conform [[https://​ocw.cs.pub.ro/​courses/​asc/​laboratoare/​01|Laboratorului 1]] (Vezi ''​Ce este FEP-ul?​)''​.   - Vă conectați pe ''​fep'',​ conform [[https://​ocw.cs.pub.ro/​courses/​asc/​laboratoare/​01|Laboratorului 1]] (Vezi ''​Ce este FEP-ul?​)''​.
-  - ''​wget https://​ocw.cs.pub.ro/​courses/​_media/​asc/​laboratoare/​lab4_skl.tar.gz -O lab4_skl.tar.gz'' ​- Downloadați arhiva laboratorului ​+  - Downloadați arhiva laboratorului: ​''​wget https://​ocw.cs.pub.ro/​courses/​_media/​asc/​laboratoare/​lab4_skl.tar.gz -O lab4_skl.tar.gz''​. 
-  - ''​tar -xzvf lab4_skl.tar.gz'' ​- Dezarhivați arhiva downloadată mai sus+  - Dezarhivați arhiva downloadată mai sus: ''​tar -xzvf lab4_skl.tar.gz''​. 
-  - ''​%%srun --pty bash%%''​ - intrați în mod interactiv pe Haswell. +  - Intrați în mod interactiv pe Haswell: ​''​%%srun --pty bash%%''​
-  - ''​%%apptainer run docker://​gitlab.cs.pub.ro:​5050/​asc/​asc-public/​c-labs:​1.3.1 /​bin/​bash%%'' ​- Accesați imaginea de docker în cadrul căreia avem permisiunile necesare realizării laboratorului.+  ​Accesați imaginea de docker ​în cadrul căreia veți face laboratorul:​''​%%apptainer run docker://​gitlab.cs.pub.ro:​5050/​asc/​asc-public/​c-labs:​1.3.1 /​bin/​bash%%''​
  
 **Task 0**  - Folositi Callgrind pentru ''​task0.c'',​ urmărind TODO-urile din cod. **Task 0**  - Folositi Callgrind pentru ''​task0.c'',​ urmărind TODO-urile din cod.
Line 145: Line 145:
 Apptainer>​ perf stat ./​tachyon_analyze_locks dat/​balls.dat Apptainer>​ perf stat ./​tachyon_analyze_locks dat/​balls.dat
 </​code>​ </​code>​
 +
 +Notați și explicați următoarele observații:​
 +  * Care sunt funcțiile cu cel mai mare număr de instrucțiuni în versiunea serială?
 +  * Ce funcție consumă cel mai mult din versiunea serială și de ce? (hint: ''​initialize_2D_buffer''​)
 +  * Cum diferă profiling-ul serial de cel paralel? Ce funcții noi apar?
 +  * Unde este plasat mutex-ul în ''​analyze_locks''?​ Este necesar acolo?
  
 **Task 2** - Analizați înmulțirea de matrice cu diferite ordonări ale buclelor folosind Cachegrind. **Task 2** - Analizați înmulțirea de matrice cu diferite ordonări ale buclelor folosind Cachegrind.
Line 183: Line 189:
   * http://​www.brendangregg.com/​perf.html ​   * http://​www.brendangregg.com/​perf.html ​
   * https://​www.oracle.com/​tools/​developerstudio/​downloads/​developer-studio-jsp.html   * https://​www.oracle.com/​tools/​developerstudio/​downloads/​developer-studio-jsp.html
 +  * https://​guides.upb.ro/​docs/​grid/​apptainer-usage
  
 ==== Resources ==== ==== Resources ====
asc/laboratoare/04.1774316937.txt.gz · Last modified: 2026/03/24 03:48 by tudor.calafeteanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0