eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJak zrobić test za pomocą PractRand?Re: Jak zrobić test za pomocą PractRand?
  • Data: 2021-08-20 20:45:22
    Temat: Re: Jak zrobić test za pomocą PractRand?
    Od: "o...@g...com" <o...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    > Jeśli dane są w pliku binarnym to tak:
    > cat dane_binarne.bin | ./PractRand stdin [tu wpisz opcje PractRand]

    Jakie są te opcje PractRand? Ja uruchamiam to w ten sposób:

    cat plik.data | ./RNG_test stdin

    Niestety zwiększenie rozmiaru pliku do 230 GB nie pomogło, a więcej nie zmieści mi
    się na dysku. Wciąż dziwią mnie te oblane testy, podczas, gdy wszystkie testy
    Dieharder ten generator zdawał. Albo PractRand jest o tyle bardziej wymagający, albo
    nadal coś jest nie tak.

    > > Wydaje mi się, że prędzej, niż ogarnę C++ zrobię odpowiedni plik.
    > Można ,ale dobre testowanie wymaga dużo danych. Osobiście testowałem generatory
    minimum
    > godzinę, maksimum (o ile pamiętam) dwa tygodnie na jednym wątku. Przez ten czas,
    szczególnie
    > przez dwa tygodnie, generator jest w stanie wygenerować sporo liczb i program
    testowy sporo skonsumować.
    > Liczby z dwóch tygodni nie wiem czy zmieszczą się na dysku.

    Na pewno się nie zmieszczą. Już osiągnąłem limit. Z jakichś powodów zresztą bardzo
    szybko udało mi się to wygenerować i zapisać do pliku (godzina z hakiem), tak jakby
    liczby w formacie binarnym zapisywały się szybciej. 50 GB liczb 32-bitowych w
    formacie dziesiętnym zapisywało mi się kilka godzin.

    Ile GB w takim przetestowałeś, skoro robiłeś testy nawet 2 tygodnie?

    > > Przepisanie kodu z Pythona do C++ musiałbym raczej komuś zlecić.
    > Co tam konkretnie jest do napisania? Może coś podobnego jest to gotowe pod linkami
    które podałem?

    Przykładowy program:

    https://pastebin.com/K164URZQ

    Liczby 128-bitowe są tam ładowanie po prostu do listy allstream, ale oczywiście można
    to zaaranżować inaczej.

    > > Pytanie, czy będę w stanie wygenerować odpowiedni plik w odpowiednim czasie (bo
    pomimo, że generatory, które testuję są
    > > jednymi z najszybszych na świecie, co do zasady są podobne do PCG generators, to
    Python nie dość, że bywa 50-100 razy
    > > wolniejszy niż C++, to jeszcze do tego sam zapis do pliku trwa długo i jak szybki
    nie byłby generator - nie da się tego procesu
    > > przyspieszyć). Ile PractRand potrzebuje danych?
    > Zapis całego dużego dysku to np. jedna doba, ale zależy jaki szybki/duży dysk, może
    być godzina, może być tydzień. Trudno
    > bez testów powiedzieć czy wolniejszy będzie zapis czy powolne generowanie
    najszybszym generatorem na świecie. PractRand
    > tym lepiej testuje im więcej danych otrzyma.

    Ja zapisałem cały dysk w godzinę z hakiem.

    > > żeby generator nie oblewał testów (gdy danych było za mało plik był zawijany i do
    testów był brane w kółko te same liczby, do
    > > powodowało oblewanie testów). A i tak zawijał niektóre próbki, tzw. " rewounds".
    > Temat jest trudniejszy, może generator na małych zapętlonych danych przechodzić
    test, na na długich oblewać.

    W każdym razie wszystkie testy przy odpowiedniej ilości danych zdawał. Wystarczyło 50
    GB danych, zapisanych w formacie dziesiętnym jako liczby 32-bitowe.

    > Chyba najlepiej odtworzyć te same dane losowe co były użyte w programie, aby mieć
    pewność że program
    > pracował na losowych danych które przechodzą testy statystyczne.

    Używam tych samych danych. A mimo to w PractRand pełno testów jest niezdanych.

    > Zadziała, ale jeśli tester nie wspomaga plików tekstowych, to trzeba samemu napisać
    program który zamieni dane tekstowe na binarne.
    > Potem dam przykładowy kod w C++, może dziś wieczorem, to kilka linijek.

    Wygenerowałem plik .data. Zapisałem tam liczby w formacie binarnym. Wszystko wskazuje
    na to, że to powinno działać. Może po prostu generator nie zdaje testów. Z drugiej
    jednak strony, jeśli Ty piszesz, że testowałeś generator nawet kilka dni, to jest nic
    w porównaniu z danymi, które ja dostarczyłem do testów, wygenerowanymi zaledwie w
    godzinę. Może po prostu jest ich za mało. Ale, czy 230 GB to za mało?

    > Teraz nie mogę, potem dam kod program który przekonwertuje plik tekstowy do
    binarnego. Proszę, pokaż ( i jeśli trzeba to opisz )
    > jak wygląda oryginalny plik tekstowy.

    Jeżeli zapisuję dane to pliku .txt, to wygląda to tak:

    "010101010101000101111010101010101110100101111101011
    0111110...010101010101010100101010101010010101010101
    00101010101011111"

    Po prostu pseudolosowy ciąg zer i jedynek, nic więcej.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: