-
Data: 2013-04-18 11:04:18
Temat: Re: Podpis cyfrowy większej ilości podmiotów
Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Zmieniłem zarządzanie wątkami, gdy się używa do wątków OpenMP
ma się praktycznie bez wysiłku kilka użytecznych opcji. Tak
więc po zastosowaniu dynamicznego przydziału zadań do wątków z
rozmiarem chunk=1 czas spadł do 14-15s.
Tu efekt:
https://thumbs.rapidshare.com/thumbs/1024/D0F/83731B
B65DA783F6EA92AB7576B7B.jpg
A tu kod rysujący/obliczający:
http://pastebin.com/rvsBJpir
On Thursday, April 18, 2013 10:42:37 AM UTC+2, firr kenobi wrote:
> jesli zrezygnowac z testu z kwadratem
> to tutaj ten kernel z trzema mnozeniami
> mozna zamianic na wersje tylko z dowma
> mnozeniami
> for(n=0; n<=max_iter; n++)
> {
> reim2 = (re + re) * im;
> re = (re - im) * (re + im) + cRe;
> im = reim2 + cIm;
> // if( fabs(re) > 2.0 ) break;
> // if( fabs(im) > 2.0 ) break;
> if( re > 2.0 || re < -2.0
> && im > 2.0 || im < -2.0 ) break;
> }
> to zauwazylem ze szkoly a*a - b*b = (a+b)*(a-b) u mnie w wersji c to akurat
> przyspiesza
U mnie czas wykonania poniższej wersji wzrósł z 14.22s do 14.61s:
static unsigned int computeColor( const double _x, const double _y, const unsigned
int inf ) {
double x=0, y=0;
unsigned int i;
for( i=0 ; i<inf ; i++ ) {
const double tmp = (x+x)*y;
x = (x-y)*(x+y)+_x;
y = tmp + _y;
if( std::fabs(y) > 2.0 || std::fabs(tmp) > 2.0 ) break;
}
if( i==inf )
return 0;
return i * 255 / (inf-1);
}
Kolejna wersja też minimalnie dłużej 14.55s:
static unsigned int computeColor( const double _x, const double _y, const unsigned
int inf ) { double x=0, y=0;
unsigned int i;
for( i=0 ; i<inf ; i++ ) {
const double tmp = x*x - y*y + _x;
y = 2.0 * x * y + _y;
if( tmp < -2 || tmp > +2 || y < -2 || y > +2 ) break;
x = tmp;
}
if( i==inf )
return 0;
return i * 255 / (inf-1);
}
> nie wiadomo jednak czy wersja z dwoma
> mul i czterema cmp (statystycznie szczesliwie mniej ) bylaby szybsza
> niz kernel z 3 mul i 1 cmp
> nalezaloby sprawdzic ale to musialbym
> znowu pogrzebac w asmie
Ja raczej nie napiszę w ASM, większość dawno temu zapomniałem :) Czy
mógłbyś podrzuć mi wersję tej procedury w asmie, tak żebym mógł ją
skompilować GCC64 bity? Czyli musiałby to być jakiś asembler osadzony.
Na razie u mnie najszybciej działa ta wersja:
static unsigned int computeColor( const double _x, const double _y, const unsigned
int inf ) {
double x=0, y=0;
unsigned int i;
for( i=0 ; i<inf ; i++ ) {
const double tmp = x*x - y*y + _x;
y = 2.0 * x * y + _y;
if( std::fabs(y) > 2.0 || std::fabs(tmp) > 2.0 ) break;
x = tmp;
}
if( i==inf )
return 0;
return i * 255 / (inf-1);
}
Z 61s udało się zejść do 14s, ale głównie przez zastosowanie OpenMP.
Pozdrawiam
Następne wpisy z tego wątku
- 18.04.13 11:12 firr kenobi
- 18.04.13 11:19 firr kenobi
- 18.04.13 11:24 firr kenobi
- 18.04.13 11:27 M.M.
- 18.04.13 11:47 firr kenobi
- 18.04.13 11:53 M.M.
- 18.04.13 11:55 M.M.
- 18.04.13 12:00 firr kenobi
- 18.04.13 12:05 firr kenobi
- 18.04.13 12:31 Edek
- 18.04.13 12:43 Edek
- 18.04.13 12:45 firr kenobi
- 18.04.13 13:13 Edek
- 18.04.13 13:17 firr kenobi
- 18.04.13 13:35 Edek
Najnowsze wątki z tej grupy
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
Najnowsze wątki
- 2026-01-26 #Motodziennik 365 Powrót spalinowych Renault Megane i Scenica, Volvo EX60 oraz ID.Tiguan
- 2026-01-26 Ciekawe fikoły
- 2026-01-26 Toruń => Preseles Inżynier (background baz danych) <=
- 2026-01-26 sznurowadła kwestia prawna
- 2026-01-26 Białystok => Senior Frontend Developer React <=
- 2026-01-26 Warszawa => Consultant Microsoft Dynamics 365 Finance (F&O) <=
- 2026-01-25 Organizacja religijna i nielegalna sprzedaż
- 2026-01-25 Tego "księdza" powinni wywalić z kościołai z pracy w kościele
- 2026-01-25 Zbudowany przez studentów z Holandii samochód koncepcyjny ARIA
- 2026-01-25 Zbudowany przez studentów z Holandii samochód koncepcyjny ARIA
- 2026-01-25 "Teleportacja" polskich statków na pd. Bałtyku - rosyjska zabawa w zakłócanie GPS, Galileo, Beidou i GLONASS
- 2026-01-25 W trakcie porwania prez. Maduro wojsko USONA użyło tajnej broni masowego rażenia: Discombobulator
- 2026-01-25 rozmiar skrzyżowania
- 2026-01-24 Do czego prowadzą REGULACJE opiekuńczego państwa
- 2026-01-23 Stop na zielonym




Sprzedaż nowych mieszkań wyższa niż prognozy. Dokąd zmierza rynek?