This shows you the differences between two versions of the page.
asc:teme:tema2 [2025/04/27 17:57] tudor.calafeteanu |
asc:teme:tema2 [2025/05/13 16:32] (current) costin.carabas [Tema 2 - Implementarea în CUDA a arborelui Merkle și a algoritmului de consens Proof of Work din cadrul Bitcoin] |
||
---|---|---|---|
Line 2: | Line 2: | ||
<note important> | <note important> | ||
- | * **Deadline soft:** **11 Mai 2025, ora 23:55**. Primiți un bonus de 10% din punctajul obținut pentru trimiterea temei înainte de **8 Mai 2025, ora 23:55**. Veți primi o depunctare de 10% din punctajul maxim al temei pentru fiecare zi de întârziere, până la maxim 7 zile, adică până pe **18 Mai 2025, ora 23:55**. | + | * **Deadline soft:** **18 Mai 2025, ora 23:55** <del>**11 Mai 2025, ora 23:55**. Primiți un bonus de 10% din punctajul obținut pentru trimiterea temei înainte de **8 Mai 2025, ora 23:55**. Veți primi o depunctare de 10% din punctajul maxim al temei pentru fiecare zi de întârziere, până la maxim 7 zile, adică până pe **18 Mai 2025, ora 23:55**</del>. |
* **Deadline hard:** **18 Mai 2025, ora 23:55**. | * **Deadline hard:** **18 Mai 2025, ora 23:55**. | ||
* **Responsabili:** [[tudor.calafeteanu@upb.ro |Tudor Calafeteanu]], [[costin.carabas@gmail.com|Costin Carabaș]] | * **Responsabili:** [[tudor.calafeteanu@upb.ro |Tudor Calafeteanu]], [[costin.carabas@gmail.com|Costin Carabaș]] | ||
Line 164: | Line 164: | ||
<code> | <code> | ||
- | BLOCK_ID,NONCE,BLOCK_HASH,TIME_FOR_NONCE_COMPUTATION,TIME_FOR_MERKLE_ROOT_COMPUTATION,TIME_SUM | + | BLOCK_ID,NONCE,BLOCK_HASH,TIME_FOR_MERKLE_ROOT_COMPUTATION,TIME_FOR_NONCE_COMPUTATION,TIME_SUM |
</code> | </code> | ||
- | , unde TIME_SUM = TIME_FOR_NONCE_COMPUTATION + TIME_FOR_MERKLE_ROOT_COMPUTATION | + | , unde TIME_SUM = TIME_FOR_MERKLE_ROOT_COMPUTATION + TIME_FOR_NONCE_COMPUTATION |
După procesarea tuturor tranzacțiilor, se scriu pe ultimul rând timpii totali pentru fiecare din cele 3 coloane de timpi, adică pentru toate blocurile găsite. Timpii sunt aproximați la cinci zecimale. | După procesarea tuturor tranzacțiilor, se scriu pe ultimul rând timpii totali pentru fiecare din cele 3 coloane de timpi, adică pentru toate blocurile găsite. Timpii sunt aproximați la cinci zecimale. | ||
<code> | <code> | ||
- | TOTAL_TIME_FOR_NONCE_COMPUTATION,TOTAL_TIME_FOR_MERKLE_ROOT_COMPUTATION,TOTAL_TIME_SUM | + | TOTAL_TIME_FOR_MERKLE_ROOT_COMPUTATION,TOTAL_TIME_FOR_NONCE_COMPUTATION,TOTAL_TIME_SUM |
</code> | </code> | ||
Line 230: | Line 230: | ||
* Punctajul la testarea automată ([[https://curs.upb.ro/2024/mod/assign/view.php?id=115685|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/2024/mod/assign/view.php?id=115685|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. | + | * 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). |
* 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/2024/mod/assign/view.php?id=115685|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/2024/mod/assign/view.php?id=115685|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: | + | * Pentru Merkle root (TOTAL_TIME_FOR_MERKLE_ROOT_COMPUTATION): |
* Timp bun: ≤ 0.04s -> 45 pct | * Timp bun: ≤ 0.04s -> 45 pct | ||
* Timp mediu: ≤ 0.1s -> 30 pct | * Timp mediu: ≤ 0.1s -> 30 pct | ||
* Timp slab: ≤ 0.5s -> 15 pct | * Timp slab: ≤ 0.5s -> 15 pct | ||
* Timp foarte slab (>0.5s) SAU Merkle root incorect: 0 pct | * Timp foarte slab (>0.5s) SAU Merkle root incorect: 0 pct | ||
- | * Pentru căutarea Nonce-ului: | + | * Pentru căutarea Nonce-ului (TOTAL_TIME_FOR_NONCE_COMPUTATION): |
* Timp bun: ≤ 0.01s -> 45 pct | * Timp bun: ≤ 0.01s -> 45 pct | ||
* Timp mediu: ≤ 0.1s -> 30 pct | * Timp mediu: ≤ 0.1s -> 30 pct |