eGospodarka.pl

eGospodarka.plGrupypl.comp.programmingJak zrobić test za pomocą PractRand? › Re: Jak zrobić test za pomocą PractRand?
  • X-Received: by 2002:a05:622a:84:: with SMTP id o4mr18849454qtw.174.1629485122891;
    Fri, 20 Aug 2021 11:45:22 -0700 (PDT)
    X-Received: by 2002:a05:622a:84:: with SMTP id o4mr18849454qtw.174.1629485122891;
    Fri, 20 Aug 2021 11:45:22 -0700 (PDT)
    Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
    e.net!feeder.erje.net!news.uzoreto.com!newsfeed.xs4all.nl!newsfeed9.news.xs4all
    .nl!feeder1.cambriumusenet.nl!feed.tweak.nl!209.85.160.216.MISMATCH!news-out.go
    ogle.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not
    -for-mail
    Newsgroups: pl.comp.programming
    Date: Fri, 20 Aug 2021 11:45:22 -0700 (PDT)
    In-Reply-To: <2...@g...com>
    Injection-Info: google-groups.googlegroups.com; posting-host=77.169.12.87;
    posting-account=5sNFBgoAAAAxlae8lv99mPyGsDs6ynwB
    NNTP-Posting-Host: 77.169.12.87
    References: <6...@g...com>
    <0...@g...com>
    <1...@g...com>
    <f...@g...com>
    <5...@g...com>
    <2...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <f...@g...com>
    Subject: Re: Jak zrobić test za pomocą PractRand?
    From: "o...@g...com" <o...@g...com>
    Injection-Date: Fri, 20 Aug 2021 18:45:23 +0000
    Content-Type: text/plain; charset="UTF-8"
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:215502
    [ ukryj 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: