🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #308810

Re: Działania na wielkich liczbach

#308810
From: bartekltg
Date: Wed, 05 Oct 2016 10:22
51 lines
3299 bytes
On Wednesday, October 5, 2016 at 3:58:26 AM UTC+2, Borneq wrote:
> W dniu 30.09.2016 o 23:49, bartekltg pisze:
> > 3 7 197 402529 3448409664461 0.0529229s  //wrersja cpp
> > 3 7 197 402529 3448409664461 0.0805347s  //wersja gmp
> 
> Dlaczego wersja GMP jest wolniejsza: gdy sprawdzałem mnożenie w liczeniu 
> silni, cpp i gmp były identyczne, tu mamy operacje modulo i dzielenie, 
> przy czym biblioteka cpp wywołuje raz i gmp chyba dwa razy. Może wołać 
> raz, jeśli te dwa operatory zamieniane są na jedną funkcję.
> 
> > kompiluję  prosto z QTcreatrora lub przez
> > g++  main.cpp -std=c++11  -O2 -lgmp -lgmpxx
> >
> > Procesor mocno nienajnowszy AMD Phenom(tm) II X4 955.
> >
> > Nie zapomniałęś o optymalizacji?  ;>
> 
> Pod Linuxem działa bardzo szybko a pod Windows (MinGw): sprawdzałem 
> programem CodeXL i okazuje się że funkcja dzielenia tylko ma 13.3 % 
> czasu a około 60% mają funkcje pthread_XXX wołane z 
> _Unwind_SjLj_Register, czyli obsługa przerwań wołane z funkcji dzielenia.



On Wednesday, October 5, 2016 at 3:58:26 AM UTC+2, Borneq wrote:
> W dniu 30.09.2016 o 23:49, bartekltg pisze:
> > 3 7 197 402529 3448409664461 0.0529229s  //wrersja cpp
> > 3 7 197 402529 3448409664461 0.0805347s  //wersja gmp
> 
> Dlaczego wersja GMP jest wolniejsza:

Z pełnym poczuciem znawstwa mogę powiedzieć:
cholera wie ;-)


> gdy sprawdzałem mnożenie w liczeniu 
> silni, cpp i gmp były identyczne, tu mamy operacje modulo i dzielenie, 
> przy czym biblioteka cpp wywołuje raz i gmp chyba dwa razy. Może wołać 
> raz, jeśli te dwa operatory zamieniane są na jedną funkcję.

Podejrzewam raczej drobiazgi jak nieszczęsne dodawanie +2
czy inicjalizacja. 

Jak zbadasz dokałdniej problem, może warto napsiać do GMP.
Pewnie trzeba byłoby sprawdzioc, czy robią na pewno to samo. 
Wydaje mi się, że oba typy to liczby dowolnej (rosnącej w razei
potrzeby) długości zbudowane ze stałego kawałka i dynamicznie 
alokowanej papięci. 

pzdr
bartekltg
Technical Details
Message-ID: <dd0d07ca-bbe4-4edf-9fed-d701cbfd9b02@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!f6no106121qtd.0!news-out.google.com!203ni556itk.0!nntp.google.com!o19no161582ito.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <nsmfdj$hki$1@node1.news.atman.pl> <nsmmki$q6o$1@node1.news.atman.pl> <nt1mo1$sc5$1@node1.news.atman.pl>

Show Full Headers
Complete Article Headers
X-Received: by 10.129.167.65 with SMTP id e62mr1937408ywh.3.1475662955142;        Wed, 05 Oct 2016 03:22:35 -0700 (PDT)
X-Received: by 10.36.111.147 with SMTP id x141mr556581itb.6.1475662955106; Wed, 05 Oct 2016 03:22:35 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.glorb.com!f6no106121qtd.0!news-out.google.com!203ni556itk.0!nntp.google.com!o19no161582ito.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.c
Date: Wed, 5 Oct 2016 03:22:34 -0700 (PDT)
In-Reply-To: <nt1mo1$sc5$1@node1.news.atman.pl>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=212.87.7.105; posting-account=CvUQzQoAAABvVQmR58QmR6N4Cev1qhAS
NNTP-Posting-Host: 212.87.7.105
References: <nsmfdj$hki$1@node1.news.atman.pl> <nsmmki$q6o$1@node1.news.atman.pl> <nt1mo1$sc5$1@node1.news.atman.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <dd0d07ca-bbe4-4edf-9fed-d701cbfd9b02@googlegroups.com>
Subject: Re: Działania na wielkich liczbach
From: bartekltg <bartekltg@gmail.com>
Injection-Date: Wed, 05 Oct 2016 10:22:35 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit