---
# System prepended metadata

title: Raport do zadania 3
tags: [ASK]

---

---
title: Raport do zadania 3
tags: ASK
author: Mateusz Reis
---

# Raport do zadania 3

### Autor: Mateusz Reis
### Numer indeksu: 316276

Konfiguracja
---

Informacje o systemie:

Informacje o systemie:

 * Dystrybucja: Debian 
 * Jądro systemu: 5.3.0-53-generic
 * Kompilator: gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
 * Procesor: AMD A8-6500
 * Liczba rdzeni: 4

Pamięć podręczna:

 * L1d: 16 KiB, 4-drożny (per rdzeń), rozmiar linii 64B
 * L2: 2048 KiB, 16-drożny (per rdzeń), rozmiar linii 64B
 * L3: brak , ?-drożny (współdzielony), rozmiar linii 64B

Pamięć TLB:

 * L1d: 4KiB strony, w pelni asocjacyjny, 64 wpisy
 * L2: 4KiB strony, 8-drożny, 1024 wpisów

Informacje o pamięciach podręcznych uzyskano na podstawie wydruku programu
`x86info`.

Wyniki eksperymentów
---
Tabelka przestawiajaca srednie IPC danego rozwiazania dla roznych rozmiarow tablicy: 

|Rozmiar tablicy|randwalk0|randwalk1
|-|-|-|
|32x32|0.5726|1.1485|
|64x64|0.6773|1.481|
|128x128|0.7312|1.7017|
|256x256|0.7727|1.8296|
|512x512|0.7861|1.8992|
|1024x1024|0.7948|1.9367|


Na podstawie tabelki tradycyjnie tworzymy wykres na ktorym jest przedstawiona roznica miedzy jednym a drugim rozwiazaniem:


![](https://i.imgur.com/skRWZzi.png)

:::danger
randwalk0
:::

:::warning
randwalk1
:::

Wnioski
---
> Ilosc instrukcji maszynowych w petli randwalk0 = 56 ~ instrukcje warunkowe 9
> Ilosc instrukcji maszynowych w petli randwalk1 = 50 ~ instrukcje warunkowe 4
-----
>Optymalizacja na tym procesorze zwiekszyla IPC dwukrotnie, natomiast na nowszym procesorze jest to nawet 4 razy wiecej instruckji/cykl (AMD Ryzen 5 3500U)

----
>Zmiana kolejnosci instrukcji w ciele petli ma znikomy wplyw na IPC, poniewaz aby wynik pozostal poprawny jedyne co mozna zamienic miejscami to warunki, ktore i tak zawsze musza sie wykonac. 
----
>Jak mozemy zauwazyc na wykresie im wieksza tablica tym wieksza jest przewaga w IPC drugiego rozwiazania. Natomiast wieksza tablica oznacza dluzszy czas dostepu do elementow tablicy, co jest spowodowane korzystaniem z pamieci RAM, jednak zachodzi to dla obydwoch wersji. 