This shows you the differences between two versions of the page.
|
asc:teme:tema2 [2026/05/11 12:26] tudor.calafeteanu |
asc:teme:tema2 [2026/05/21 10:38] (current) tudor.calafeteanu [Tema 2 - Implementarea în CUDA a arborelui Merkle și a algoritmului de consens Proof of Work din cadrul Bitcoin] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | <hidden> | ||
| ====== Tema 2 - Implementarea în CUDA a arborelui Merkle și a algoritmului de consens Proof of Work din cadrul Bitcoin ====== | ====== Tema 2 - Implementarea în CUDA a arborelui Merkle și a algoritmului de consens Proof of Work din cadrul Bitcoin ====== | ||
| <note important> | <note important> | ||
| - | * **Deadline:** **24 Mai 2026, ora 23:55**. Primiți un bonus de 10% din punctajul obținut pentru trimiterea temei înainte de **21 Mai 2026, ora 23:55**. | + | * **Deadline:** **25 Mai 2026, ora 23:55 <del>24 Mai 2026, ora 23:55</del>**. Primiți un bonus de 10% din punctajul obținut pentru trimiterea temei înainte de **23 Mai 2026, ora 23:55 <del>21 Mai 2026, ora 23:55</del>**. |
| * **Responsabil:** [[tudor.calafeteanu@upb.ro |Tudor Calafeteanu]] | * **Responsabil:** [[tudor.calafeteanu@upb.ro |Tudor Calafeteanu]] | ||
| </note> | </note> | ||
| Line 164: | Line 163: | ||
| <code> | <code> | ||
| - | BLOCK_ID,NONCE,BLOCK_HASH,TIME_FOR_MERKLE_ROOT_COMPUTATION,TIME_FOR_NONCE_COMPUTATION,TIME_SUM | + | BLOCK_ID,BLOCK_HASH,MERKLE_ROOT,NONCE,TIME_FOR_MERKLE_ROOT_COMPUTATION,TIME_FOR_NONCE_COMPUTATION,TIME_SUM |
| </code> | </code> | ||
| Line 177: | Line 176: | ||
| <spoiler Click pentru a vedea un exemplu de fișier de ieșire> | <spoiler Click pentru a vedea un exemplu de fișier de ieșire> | ||
| <code> | <code> | ||
| - | 1,33865,0000517db16db1b0a4b3c2a1eee14ebc3c6beaae6420dc90a0643d23a03c167a,0.10294,0.14677,0.24970 | + | 1,0000517db16db1b0a4b3c2a1eee14ebc3c6beaae6420dc90a0643d23a03c167a,edff735b62b37d1afe12e3dcaf3df4da978c857f1ad8f3a8b98c4464fbf0c11c,33865,0.07091,0.10240,0.17332 |
| - | 2,4050,00007ddf6566d4687489b21cd2764bd286e6958dd7d365fbe30de7ca4b9bbb50,0.09830,0.01761,0.11592 | + | 2,00007ddf6566d4687489b21cd2764bd286e6958dd7d365fbe30de7ca4b9bbb50,ed865ee13c3cdbb2382e3dffab25c95591fbdebaed58c5efed27778114964e4d,4050,0.07046,0.01225,0.08270 |
| - | 3,166127,00002663dafd560b4a42eca2fba9ee2c4692318b271a40e087af715c238d879d,0.09814,0.65140,0.74954 | + | 3,00002663dafd560b4a42eca2fba9ee2c4692318b271a40e087af715c238d879d,606f0d682afbbe8a242e48d77a1d93ef9156dc2d6508ff652da15896d77216b7,166127,0.07062,0.50269,0.57331 |
| ..... | ..... | ||
| - | 10,158592,0000f5e98829b6fc7d24b890e621b5ca64a6c7c4e4d097a126eae066b54b8de0,0.07127,0.49897,0.57024 | + | 10,0000f5e98829b6fc7d24b890e621b5ca64a6c7c4e4d097a126eae066b54b8de0,38248f1726546451e5f3990f676b857a64d232c002bd06d1ea50ca8609ebfcd4,158592,0.07069,0.47980,0.55049 |
| - | 0.79865,2.10661,2.90526 | + | 0.70681,1.86021,2.56703 |
| </code> | </code> | ||
| </spoiler> | </spoiler> | ||
| Line 225: | Line 224: | ||
| * Punctajul la testarea automată ([[https://curs.upb.ro/2025/mod/assign/view.php?id=117021|Moodle]]) se va acorda în funcție de performanța (durata de rulare) a celor două funcții modificate, pentru o suită de teste private, generate de noi, în felul urmator: | * Punctajul la testarea automată ([[https://curs.upb.ro/2025/mod/assign/view.php?id=117021|Moodle]]) se va acorda în funcție de performanța (durata de rulare) a celor două funcții modificate, pentru o suită de teste private, generate de noi, în felul urmator: | ||
| * Fiecare test (asociat unui fișier de intrare) va fi rulat de 5 ori. | * Fiecare test (asociat unui fișier de intrare) va fi rulat de 5 ori. | ||
| - | * Se vor selecta timpii minimi obținuți pentru fiecare funcție, independent unul de altul (de exemplu, timpul minim pentru generarea Merkle root-ului poate proveni din a 3-a rulare, iar timpul minim pentru găsirea nonce-ului valid din a 4-a) și vor fi aproximați la 2 zecimale (exemplu: 0.044 se aproximeaza la 0.04, 0.045 la 0.05, si 0.046 la 0.05). | + | * Se vor selecta timpii minimi obținuți pentru fiecare funcție, independent unul de altul (de exemplu, timpul minim pentru generarea Merkle root-ului poate proveni din a 3-a rulare, iar timpul minim pentru găsirea nonce-ului valid din a 4-a) și vor fi aproximați la 3 zecimale (exemplu: 0.0044 se aproximeaza la 0.004, 0.0045 la 0.005, si 0.0046 la 0.005). |
| * Timpii rezultați vor fi comparați cu threshold-urile de timp aferente fiecărui test, pentru stabilirea punctajului. | * Timpii rezultați vor fi comparați cu threshold-urile de timp aferente fiecărui test, pentru stabilirea punctajului. | ||
| * Pentru a testa local eficiența implementării, înainte de încărcarea pe [[https://curs.upb.ro/2025/mod/assign/view.php?id=117021|Moodle]] pentru testarea automată, vă puteți ajuta de următoarele treshold-uri de timp în cazul parametrilor predefiniți din testul 4 (//test4.in//): | * Pentru a testa local eficiența implementării, înainte de încărcarea pe [[https://curs.upb.ro/2025/mod/assign/view.php?id=117021|Moodle]] pentru testarea automată, vă puteți ajuta de următoarele treshold-uri de timp în cazul parametrilor predefiniți din testul 4 (//test4.in//): | ||
| * Pentru Merkle root (TOTAL_TIME_FOR_MERKLE_ROOT_COMPUTATION): | * Pentru Merkle root (TOTAL_TIME_FOR_MERKLE_ROOT_COMPUTATION): | ||
| - | * Timp bun: ≤ 0.04s -> 45 pct | + | * Timp **bun**: < **0.02s** -> **50 pct** |
| - | * Timp mediu: ≤ 0.1s -> 30 pct | + | * Timp **mediu**: < **0.03s** -> **35 pct** |
| - | * Timp slab: ≤ 0.5s -> 15 pct | + | * Timp **slab**: < **0.04s** -> **20 pct** |
| - | * Timp foarte slab (>0.5s) SAU Merkle root incorect: 0 pct | + | * Timp **foarte slab** (>= **0.04s**) SAU Merkle root incorect: **0 pct** |
| * Pentru căutarea Nonce-ului (TOTAL_TIME_FOR_NONCE_COMPUTATION): | * Pentru căutarea Nonce-ului (TOTAL_TIME_FOR_NONCE_COMPUTATION): | ||
| - | * Timp bun: ≤ 0.01s -> 45 pct | + | * Timp **bun**: < **0.01s** -> **50 pct** |
| - | * Timp mediu: ≤ 0.1s -> 30 pct | + | * Timp **mediu**: < **0.02s** -> **35 pct** |
| - | * Timp slab: ≤ 1s -> 15 pct | + | * Timp **slab**: < **0.03s** -> **20 pct** |
| - | * Timp foarte slab (>1s) SAU Nonce incorect: 0 pct | + | * Timp **foarte slab** (>=**0.03s**) SAU Nonce incorect: **0 pct** |
| 2. Parte verificată/notată la interviul/evaluarea individuală de laborator/teme, de la finalul semestrului: maxim **50 pct.**, distribuite astfel: | 2. Parte verificată/notată la interviul/evaluarea individuală de laborator/teme, de la finalul semestrului: maxim **50 pct.**, distribuite astfel: | ||
| Line 245: | Line 244: | ||
| * maxim **10 pct.** acordate pentru furnizarea prompt-urilor folosite (în format text -- NU imagini! -- sub formă de întrebare și răspuns, ordonate succesiv) în interacțiunea cu unelte de tip LLM (e.g. Gemini, Claude, etc.). Indicați unealta folosită + versiunea acesteia. Explicați de ce prompturile folosite si soluțile oferite sunt utile (sau mai puțin utile). Puneți accent și pe modificările de mână ale codurilor dezvoltate, nu doar pe explicarea unor coduri generate automat. | * maxim **10 pct.** acordate pentru furnizarea prompt-urilor folosite (în format text -- NU imagini! -- sub formă de întrebare și răspuns, ordonate succesiv) în interacțiunea cu unelte de tip LLM (e.g. Gemini, Claude, etc.). Indicați unealta folosită + versiunea acesteia. Explicați de ce prompturile folosite si soluțile oferite sunt utile (sau mai puțin utile). Puneți accent și pe modificările de mână ale codurilor dezvoltate, nu doar pe explicarea unor coduri generate automat. | ||
| * Eventuale disfuncționalități ale codului vor aduce depunctări, în urma analziei codului de către asistent. Trebuie să puteți răspunde coerent la întrebarea "de ce" pentru orice bucată de cod din soluția oferită (indiferent de funcția la care se adresează întrebarea). | * Eventuale disfuncționalități ale codului vor aduce depunctări, în urma analziei codului de către asistent. Trebuie să puteți răspunde coerent la întrebarea "de ce" pentru orice bucată de cod din soluția oferită (indiferent de funcția la care se adresează întrebarea). | ||
| - | |||
| - | ===== Observații ===== | ||
| - | |||
| - | <note warning> | ||
| - | Temele vor fi testate împotriva plagiatului. Orice tentativă de copiere va fi depunctată conform [[asc:regulament|regulamentului]]. | ||
| - | Rezultatele notării automate este orientativă și poate fi afectată de corectarea manuală. | ||
| - | </note> | ||
| ===== Bonus ===== | ===== Bonus ===== | ||
| Line 281: | Line 273: | ||
| [1][[https://bitcoin.org/bitcoin.pdf|Bitcoin Whitepaper]] | [1][[https://bitcoin.org/bitcoin.pdf|Bitcoin Whitepaper]] | ||
| - | </hidden> | + | |