-
Path: news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!
news.nask.org.pl!newsfeed00.sul.t-online.de!t-online.de!border2.nntp.dca.gigane
ws.com!nntp.giganews.com!postnews.google.com!f12g2000yqn.googlegroups.com!not-f
or-mail
From: bartekltg <b...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: matlab taki wydajny?
Date: Thu, 21 Jan 2010 00:18:00 -0800 (PST)
Organization: http://groups.google.com
Lines: 146
Message-ID: <3...@f...googlegroups.com>
References: <5...@a...googlegroups.com>
<8...@r...googlegroups.com>
<9...@k...googlegroups.com>
<4...@u...googlegroups.com>
<c...@s...googlegroups.com>
NNTP-Posting-Host: 82.210.189.188
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1264061881 8466 127.0.0.1 (21 Jan 2010 08:18:01 GMT)
X-Complaints-To: g...@g...com
NNTP-Posting-Date: Thu, 21 Jan 2010 08:18:01 +0000 (UTC)
Complaints-To: g...@g...com
Injection-Info: f12g2000yqn.googlegroups.com; posting-host=82.210.189.188;
posting-account=CvUQzQoAAABvVQmR58QmR6N4Cev1qhAS
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.7)
Gecko/20091221 Firefox/3.5.7 (.NET CLR
3.5.30729),gzip(gfe),gzip(gfe)
Xref: news-archive.icm.edu.pl pl.comp.programming:184521
[ ukryj nagłówki ]On 19 Sty, 07:15, Mariusz Marszałkowski <m...@g...com> wrote:
> On 19 Sty, 02:52, bartekltg <b...@g...com> wrote:
>
> > On 18 Sty, 20:26, Mariusz Marszałkowski <m...@g...com> wrote:
>
> > > Nie rozumie, a co ja porównałem jak nie mnożenie macierzy?
>
> > Porownales wektor * macierz. Ja zastanawialem sie nad porownaniem
> > mnozenia 2 macierzy kwadratowych (i nieco wiekszych niz 1000).
>
> Nie wiem czy się skuszę (mam masę innych rzeczy do testowana) na
> taki test, ale może... Nie znam tego algorytmu który ma mniejszą
> złożoność niż N^3. Obecnie jakie jest dokładne teoretyczne
> ograniczenie?
Coppersmitha-Winograda daje n^2.376, ale stala jest tak duza,
za na razie komputery nie bawia sie takimi macierzami pelnymi.
Niby mozna uzywac algorytmu Strassena (n^log_2 7 = log^2.807),
ale ma on klopoty z numeryczna stabilnoscia. Blas uzywa n^3
(jeszcze do tego wroce).
> Może jakbym miał przystępnie opisany ten algorytm to bym napisał w
> gołym C.
> Zapodajcie linka do dobrego algorytmu, może spróbuję.
http://en.wikipedia.org/wiki/Strassen_algorithm
ale IHMO nie ma sensu n^3 starczy.
> > > Napisałem wydajniej to co opisałem: mnożenie macierzy o
> > > rozmiarze Nx1 przez macierz MxN. Super wydajny pakiet powinien
> > > mieć specjalną implementację do takich macierzy.
>
> > A nie jest to wydajne? Masz czas tego samego rzedu co w jezyku
> > kompilowalnym (i to skompilowanem pod swoj system i procek!).
>
> Zależy jak oceniać. Słyszałem opinie z których wynikało że
> matlab to wszystko robi z 50 razy szybciej. W świetle tamtych
http://ubuntuforums.org/archive/index.php/t-1295370.
html
:)
> opinii wypadł śmiesznie, i głównie to chciałem sprawdzić. A
> czy jest 2 razy szybszy czy 2 razy wolniejszy to osobiście
> zgadzam się że nie powód do oceniania pakietu. Chciałem się
> tylko upewnić czy nie jest 50 razy lepszy :)
50 na dzien dobry brzmi smiesznie.
Ale nadal bede mowic, ze sprawdziles to dla
danych nieso spoza zakresu w ktorym matlab jest dobry.
> Przy jednym z moich projektów miesięczny rachunek za energię
> na komputery liczące to około 1000zł. Dużo nie brakuje aby
> starczyło na wypłatę dla nastepnego programisty...
Teraz polowe zaoszczedzisz.. Student na pol etatu na to pojdzie?
> Właśnie od różnych ludzi i z różnych środowisk, w
> końcu mnie sprowokowali.
Skoro sprowokowali, to zrob uczciwy test na duzych
maciezach a nie pitu-pitu wektorkami po 1000 elementow:)
> > Moze rzeczywiscie pisali mnozenie macierzy w javie;)
>
> Sadze ze w ogole nie pisali i w ogole nie porownywali czasow,
> tylko ulegli marketingowi matlaba.
:)
> Ale mogil sie postarac a wrecz powinni. Wystarczy rozpoznac
> ze mnozymy wektor przez macierz i dac goto do wyspecjalizowanej
> procedurki. Tak samo jesli mnozymy macierz [NxK] przez [KxM] dla
> M i N znacznie wiekszych niz K, to jakas wyspecjalizowana procedura
> wymnozylaby duzo szybciej niz ogolna.
Dla bardzo malych K mozna by sie bawic w rozwijanie petli.
Dla wiekszych - nie ma znaczenia przy algorytmie n^3.
> > Ja nadal uwazam, ze jesli pakiet numeryczny daje ten sam rzad
> > wielkosci, to jest przyzwoity wynik.
>
> Ja tez tak podejrzewam, ale teraz tez wiem ze nie ma
> implementacji 50 razy wydajniejszych.
Za to sa 50razy mniej wydajne;)
> > W miare mozliwosci (trzeba napisac) zrob to porownanie przy mnozeniu
> > dwuch macierzy 1000x1000. Roznica powinna sie znacznie zmniejszyc.
>
> Nie obiecuje, ale sprobuje, tylko zapodajcie dobry opis algorytmu,
> nigdy
> nie implementowalem lepszego algorytmu mnozenia macierzy.
> Może mieć algorytm o lepszej zlozonosci niż N^3 i
> jego moc się nie ujawnia gdy mnozymy macierze
> podobne do wierszowych.
Nie. Matlab, (mimo mojego natkniecia sie na informacje,
ze jednak) nie korzysta z szybszych algorytmow
(przynajmniej dla macierzy rzedu 1000-2000).
Dowod literaturowy. Matlab korzysta z BLASa jako
silnika do operacji na macierzach:
http://www.mathworks.com/access/helpdesk/help/techdo
c/ref/mtimes.html
[*]
Wiki gdzies wsponilala, ze BLAS uzywa dla duzych macierzy jakios
modyfikacji
Strassena, jadnak w kodzie tego nie widac:
http://www.netlib.org/blas/dgemm.f (macierz macierz).
Dowod statystyczny (12 macierzy o wielkosciach ciut ponizej 1000 do
ok2000):
wyn=[];for j=95:110; n=floor(2^(j/10)); a=rand(n); b=rand(n);
tic;a*b;wyn=[wyn;n,toc], end;
plot(log(wyn(:,1)),log(wyn(:,2)),'*' ) %poogladajmy sobie
[s,serr]=lscov([x,ones(size(x))],y)
Czas algorytmu to n^k hdzie k= 2.99 +- 0.06
Wiec n^3. Przynajmniej nie bede sie bac o stabilnosc numeryczna.
Jednak polecam napisanie tego n^3 i porownaine z matlabem.
Moze ci 'z roznych srodowisk' nie mylili sie tak bardzo
i kombajn bedize szybszy od napredce zmajstrowanego
programiku (pomijajac wspolczynnik 50 wziety z sufitu;)
pozdrawiam
bartekltg
[*] z tego linku wynika tez, ze jednak uzywa dgemv, czyli
specjalizowanej procedury macierz-wektor.
Czyzby 1000 bylo nadl tam mala liczba.
Moze porwnajmy monzenie M_kxn * wektor_n
gdzie n rzedu 10^6 a k rzedu kilkadziesiat.
Następne wpisy z tego wątku
- 21.01.10 08:22 thrunduil
- 21.01.10 08:28 Wit Jakuczun
- 21.01.10 08:30 Wit Jakuczun
- 21.01.10 08:41 bartekltg
- 21.01.10 08:54 bartekltg
- 21.01.10 09:03 Wit Jakuczun
- 21.01.10 09:07 bartekltg
- 21.01.10 09:08 thrunduil
- 21.01.10 09:57 thrunduil
- 21.01.10 10:01 Wit Jakuczun
- 21.01.10 10:40 Mariusz Kruk
- 21.01.10 11:33 Stachu 'Dozzie' K.
- 21.01.10 13:23 thrunduil
- 21.01.10 13:29 Mariusz Kruk
- 21.01.10 13:34 thrunduil
Najnowsze wątki z tej grupy
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-05-09 lutownica na węgiel
- 2024-05-09 Dla Kfiata i Olina tzw. prawo międzynarodowe
- 2024-05-08 Osoby które znają informacje tajne
- 2024-05-08 doprowadzenie przymusowe świadka
- 2024-05-08 Opel? Ale jaki Opel?? A może nie Opel?
- 2024-05-08 Znów czary (albo niewiedza) - tym razem fotowoltaika
- 2024-05-08 Chess
- 2024-05-08 Gruby pasożyt nasyła tajną policję na aktywistę z Rzeszy działającego w SZAP!
- 2024-05-08 Chess
- 2024-05-08 IZERA - A może jedna Tusk nie ZDOŁA tego ZAORAĆ
- 2024-05-08 Vitruvian Man - parts 7-11a
- 2024-05-08 Vitruvian Man - parts 7-11a
- 2024-05-08 Warszawa => Interactive/Experience Designer <=
- 2024-05-08 Koniecznie potrzebuję kampera...
- 2024-05-08 Gorzów Wielkopolski => Consultant/Implementer Comarch ERP XL <=