Article View: pl.comp.programming
Article #216584Re: Ile zajmie komputerowi mnożenie liczb rzędu 2^128
From: osobliwy nick
Date: Sat, 14 Dec 2019 00:59
Date: Sat, 14 Dec 2019 00:59
22 lines
3784 bytes
3784 bytes
W dniu piątek, 13 grudnia 2019 08:34:44 UTC+1 użytkownik Piotr Chamera napisał: > W dniu 2019-12-13 o 06:42, osobliwy nick pisze: > > 166 mikrosekund wziąłem z wyliczeń Piotra Chamera. Z tego co Ty napisałeś wynika zaś, że można to zrobić 50 razy szybciej. 10 nanosekund dla 64-bitowych liczb na iterację, dla 128-bitowych - 3 razy wolniej, czyli 30 nanosekund. To daje 128*30=3840 nanosekund na 128 iteracji (czyli 3,84 mikrosekund). Wówczas wychodzi: > > > > 1000000/3,84*128/20*1/2^20 = 1,59 MB/s > > > > Nie rozumiem w takim razie tylko skąd taka rozbieżność pomiędzy tym co piszesz Ty, a tym co policzył Piotra Chamera. > > Muszę się odezwać, bo tu jakieś absurdy wychodzą. Napisałem na szybko > zupełnie niezoptymalizowany program, który policzył przykładowy algorytm > w 166 ms. O czym to świadczy? Tylko o tym, że bez wysiłku można taki > czas uzyskać. Trzeba też wziąć pod uwagę, że jest to program zupełnie > bez ograniczeń na to jak duże są liczby, czy są całkowite itp. > > Kolega fir oszacował, że ten sam algorytm można policzyć wielokrotnie > szybciej i to też prawda. Szczególnie jeśli da się ustalić, że wszystko > da się np. policzyć na 128 bitowych liczbach całkowitych bez znaku :) > O ile to będzie szybciej okaże się kiedy ktoś to napisze w konkretnym > języku, skompiluje i uruchomi na konkretnym procesorze (50 razy szybciej > względem mojego przykładu jest jak najbardziej realne :). Ok, rozumiem. Nie sądziłem, że rozbieżności w zależności od tego jak napiszemy program mogą być aż tak duże. Dobrze jednak, że istnieje potencjał na usprawnienie tego aż o powiedzmy 2 rzędy wielkości. Reszta jest, jak rozumiem, kwestią konkretnych testów. Będę myślał zatem o takich testach, na razie jednak takie wstępne szacunki mi wystarczą. Wcześniej mam do rozwiązania jeszcze kilka innych problemów związanych z algorytmem.
Technical Details
Message-ID:
<5326635d-64fb-484e-ba32-fd5adffde5e0@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin1!goblin.stu.neva.ru!g89no803614qtd.0!news-out.google.com!w29ni1296qtc.0!nntp.google.com!g89no803612qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mailReferences:
<b7426ee8-be56-48fc-9657-da5a18e0729b@googlegroups.com> <qs878c$luk$1@dont-email.me> <5b01b3a8-9042-4203-871a-13f166f671dd@googlegroups.com> <deb8cf44-96c2-4bfa-8b78-a1c4a28440ec@googlegroups.com> <862ac5c6-5ac5-4915-a8dc-77669b7b1cfd@googlegroups.com> <8db2ea36-8d5e-4eec-8fb2-819658614d57@googlegroups.com> <624af684-7168-4de7-a37b-fe77566845b0@googlegroups.com> <2833b474-3c9c-4562-8138-2812fd55a70a@googlegroups.com> <e4e5ba4b-11cd-4d3e-a7a9-84d858d96f9b@googlegroups.com> <0fc59400-31f6-4b9d-9253-da0a06bbe203@googlegroups.com> <a8322dc9-9879-4a6d-b0e8-1a47cdef5408@googlegroups.com> <qsveui$eop$1@dont-email.me>Show Full Headers
Complete Article Headers
X-Received: by 2002:a0c:acc2:: with SMTP id n2mr16056121qvc.225.1576285195033; Fri, 13 Dec 2019 16:59:55 -0800 (PST) X-Received: by 2002:ac8:5155:: with SMTP id h21mr14938097qtn.174.1576285194903; Fri, 13 Dec 2019 16:59:54 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!goblin1!goblin.stu.neva.ru!g89no803614qtd.0!news-out.google.com!w29ni1296qtc.0!nntp.google.com!g89no803612qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: pl.comp.programming Date: Fri, 13 Dec 2019 16:59:54 -0800 (PST) In-Reply-To: <qsveui$eop$1@dont-email.me> Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=212.61.146.170; posting-account=5sNFBgoAAAAxlae8lv99mPyGsDs6ynwB NNTP-Posting-Host: 212.61.146.170 References: <b7426ee8-be56-48fc-9657-da5a18e0729b@googlegroups.com> <qs878c$luk$1@dont-email.me> <5b01b3a8-9042-4203-871a-13f166f671dd@googlegroups.com> <deb8cf44-96c2-4bfa-8b78-a1c4a28440ec@googlegroups.com> <862ac5c6-5ac5-4915-a8dc-77669b7b1cfd@googlegroups.com> <8db2ea36-8d5e-4eec-8fb2-819658614d57@googlegroups.com> <624af684-7168-4de7-a37b-fe77566845b0@googlegroups.com> <2833b474-3c9c-4562-8138-2812fd55a70a@googlegroups.com> <e4e5ba4b-11cd-4d3e-a7a9-84d858d96f9b@googlegroups.com> <0fc59400-31f6-4b9d-9253-da0a06bbe203@googlegroups.com> <a8322dc9-9879-4a6d-b0e8-1a47cdef5408@googlegroups.com> <qsveui$eop$1@dont-email.me> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <5326635d-64fb-484e-ba32-fd5adffde5e0@googlegroups.com> Subject: Re: Ile zajmie komputerowi mnożenie liczb rzędu 2^128 From: osobliwy nick <osobliwy.nick@gmail.com> Injection-Date: Sat, 14 Dec 2019 00:59:55 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit