-
1. Data: 2010-01-18 12:15:07
Temat: matlab taki wydajny?
Od: Mariusz Marszałkowski <m...@g...com>
Witam
Od dość dawna słyszę opinie że procedury zaimplementowane w
matlabie są bardzo wydajne. Nie znam matlaba, ale wczoraj przez
przypadek miałem go pod ręką, no i tyle ile można się nauczyć
przez godzinę sprawdziłem.
Program w matlabie robił coś takiego:
for i=1:20000
v = a * m1;
a = v * m2;
end;
Gdzie v i a to wektory double po 1000 elementów, a
m1 i m2 to macierze po 1000 na 1000 elementów.
Zainicjalizowane były losowymi liczbami.
Program wykonywał się około 100 sekund.
Na tym samym sprzęcie odpaliłem podobny
program napisany w C, skompilowany gcc.
Program w C był podobny, a nie taki sam,
gdyż robił ciut więcej obliczeń. No i w C
wykonywało to 70s.
Więc to tylko plotki że matlab jest taki wydajny?
Pozdrawiam
-
2. Data: 2010-01-18 12:37:44
Temat: Re: matlab taki wydajny?
Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>
On 2010-01-18, Mariusz Marszałkowski <m...@g...com> wrote:
> Od dość dawna słyszę opinie że procedury zaimplementowane w
> matlabie są bardzo wydajne. Nie znam matlaba, ale wczoraj przez
> przypadek miałem go pod ręką, no i tyle ile można się nauczyć
> przez godzinę sprawdziłem.
>
> Program w matlabie robił coś takiego:
> for i=1:20000
> v = a * m1;
> a = v * m2;
> end;
>
> Gdzie v i a to wektory double po 1000 elementów, a
> m1 i m2 to macierze po 1000 na 1000 elementów.
>
> Zainicjalizowane były losowymi liczbami.
>
> Program wykonywał się około 100 sekund.
>
> Na tym samym sprzęcie odpaliłem podobny
> program napisany w C, skompilowany gcc.
> Program w C był podobny, a nie taki sam,
> gdyż robił ciut więcej obliczeń. No i w C
> wykonywało to 70s.
>
> Więc to tylko plotki że matlab jest taki wydajny?
Jak się nie wie do czego Matlab jest przewidziany to potem się robi
głupie testy i niepoprawnie interpretuje wyniki. Matlab dobrze sobie
radzi z operacjami na macierzach, ale źle znosi pętle (w końcu to język
interpretowany). Poza tym ile czasu spędziłeś na pisaniu programu
w C i ile mu poświęcisz przy ewentualnej zmianie obliczeń wewnątrz
pętli?
--
Secunia non olet.
Stanislaw Klekot
-
3. Data: 2010-01-18 13:52:19
Temat: Re: matlab taki wydajny?
Od: Mariusz Marszałkowski <m...@g...com>
On 18 Sty, 13:37, "Stachu 'Dozzie' K."
<d...@g...eat.some.screws.spammer.invalid> wrote:
> On 2010-01-18, Mariusz Marsza kowski <m...@g...com> wrote:
>
>
>
> > Od do dawna s ysz opinie e procedury zaimplementowane w
> > matlabie s bardzo wydajne. Nie znam matlaba, ale wczoraj przez
> > przypadek mia em go pod r k , no i tyle ile mo na si nauczy
> > przez godzin sprawdzi em.
>
> > Program w matlabie robi co takiego:
> > for i=1:20000
> > v = a * m1;
> > a = v * m2;
> > end;
>
> > Gdzie v i a to wektory double po 1000 element w, a
> > m1 i m2 to macierze po 1000 na 1000 element w.
>
> > Zainicjalizowane by y losowymi liczbami.
>
> > Program wykonywa si oko o 100 sekund.
>
> > Na tym samym sprz cie odpali em podobny
> > program napisany w C, skompilowany gcc.
> > Program w C by podobny, a nie taki sam,
> > gdy robi ciut wi cej oblicze . No i w C
> > wykonywa o to 70s.
>
> > Wi c to tylko plotki e matlab jest taki wydajny?
>
> Jak si nie wie do czego Matlab jest przewidziany to potem si robi
> g upie testy i niepoprawnie interpretuje wyniki.
Naprawdę uważasz że matlab robi 20tys pętli przez ponad 30
sekund, czy robisz sobie jaja ze mnie?
Pozdrawiam
-
4. Data: 2010-01-18 14:19:03
Temat: Re: matlab taki wydajny?
Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>
On 2010-01-18, Mariusz Marszałkowski <m...@g...com> wrote:
> On 18 Sty, 13:37, "Stachu 'Dozzie' K."
><d...@g...eat.some.screws.spammer.invalid> wrote:
>> On 2010-01-18, Mariusz Marsza kowski <m...@g...com> wrote:
>>
>>
>>
>> > Od do dawna s ysz opinie e procedury zaimplementowane w
>> > matlabie s bardzo wydajne. Nie znam matlaba, ale wczoraj przez
>> > przypadek mia em go pod r k , no i tyle ile mo na si nauczy
>> > przez godzin sprawdzi em.
>>
>> > Program w matlabie robi co takiego:
>> > for i=1:20000
>> > v = a * m1;
>> > a = v * m2;
>> > end;
>>
>> > Gdzie v i a to wektory double po 1000 element w, a
>> > m1 i m2 to macierze po 1000 na 1000 element w.
[...]
>> > Wi c to tylko plotki e matlab jest taki wydajny?
>>
>> Jak si nie wie do czego Matlab jest przewidziany to potem si robi
>> g upie testy i niepoprawnie interpretuje wyniki.
>
> Naprawdę uważasz że matlab robi 20tys pętli przez ponad 30
> sekund, czy robisz sobie jaja ze mnie?
Naprawdę testowałeś Matlaba puszczając coś krótkiego w długiej pętli czy
sobie jaja ze mnie robisz?
Użyj jakiegoś czytnika news, bo pliterki rozpieprzasz.
--
Secunia non olet.
Stanislaw Klekot
-
5. Data: 2010-01-18 14:31:04
Temat: Re: matlab taki wydajny?
Od: Mariusz Marszałkowski <m...@g...com>
On 18 Sty, 15:19, "Stachu 'Dozzie' K."
<d...@g...eat.some.screws.spammer.invalid> wrote:
> On 2010-01-18, Mariusz Marszałkowski <m...@g...com> wrote:
>
>
>
> > On 18 Sty, 13:37, "Stachu 'Dozzie' K."
> ><d...@g...eat.some.screws.spammer.invalid> wrote:
> >> On 2010-01-18, Mariusz Marsza kowski <m...@g...com> wrote:
>
> >> > Od do dawna s ysz opinie e procedury zaimplementowane w
> >> > matlabie s bardzo wydajne. Nie znam matlaba, ale wczoraj przez
> >> > przypadek mia em go pod r k , no i tyle ile mo na si nauczy
> >> > przez godzin sprawdzi em.
>
> >> > Program w matlabie robi co takiego:
> >> > for i=1:20000
> >> > v = a * m1;
> >> > a = v * m2;
> >> > end;
>
> >> > Gdzie v i a to wektory double po 1000 element w, a
> >> > m1 i m2 to macierze po 1000 na 1000 element w.
> [...]
> >> > Wi c to tylko plotki e matlab jest taki wydajny?
>
> >> Jak si nie wie do czego Matlab jest przewidziany to potem si robi
> >> g upie testy i niepoprawnie interpretuje wyniki.
>
> > Naprawdę uważasz że matlab robi 20tys pętli przez ponad 30
> > sekund, czy robisz sobie jaja ze mnie?
>
> Naprawdę testowałeś Matlaba puszczając coś krótkiego w długiej pętli czy
> sobie jaja ze mnie robisz?
Dwukrotne mnożenie macierzy [1x100] * [1000x1000] używasz za coś
krótkiego? Przecież to 2mln mnożeń, 2mln dodawań i 2mln kopiowań
liczb podwójnej precyzji. Jakie znaczenie ma jedna pętla na 6mln
innych
operacji? Uważasz że w matlabie tak schrzanili ten język
interpretowany
że jena pętla działa wolniej niż 6mln operacji, bo pętla jest
interpretowana?
Ja matlabem nigdy się nie interesowałem i go nie znam, ale Ty to
chyba
masz zupełnie błędne wyobrażenie o nim i o programowaniu w ogóle.
> Użyj jakiegoś czytnika news, bo pliterki rozpieprzasz.
W tej kwestii pretensje do ludzi z google i(lub) fire fox.
-
6. Data: 2010-01-18 14:43:34
Temat: Re: matlab taki wydajny?
Od: "Grzegorz Niemirowski" <g...@p...onet.pl>
Mariusz Marszałkowski <m...@g...com> napisał(a):
> > Użyj jakiegoś czytnika news, bo pliterki rozpieprzasz.
> W tej kwestii pretensje do ludzi z google i(lub) fire fox.
Ktoś Cię zmusza do używania Google?
--
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 17 days, 20 hours, 34 minutes and 31 seconds
-
7. Data: 2010-01-18 14:47:20
Temat: Re: matlab taki wydajny?
Od: Mariusz Marszałkowski <m...@g...com>
On 18 Sty, 15:43, "Grzegorz Niemirowski" <g...@p...onet.pl>
wrote:
> Mariusz Marszałkowski <m...@g...com> napisał(a):
>
> > > Użyj jakiegoś czytnika news, bo pliterki rozpieprzasz.
> > W tej kwestii pretensje do ludzi z google i(lub) fire fox.
>
> Ktoś Cię zmusza do używania Google?
Najwyrazniej czytnik google taki dobry jak
matlab wydajny.
-
8. Data: 2010-01-18 14:58:14
Temat: Re: matlab taki wydajny?
Od: Krzysiek Kowaliczek <k...@g...com>
Użytkownik Mariusz Marszałkowski napisał:
> Ja matlabem nigdy się nie interesowałem i go nie znam, ale Ty to
> chyba
> masz zupełnie błędne wyobrażenie o nim i o programowaniu w ogóle.
Nie pomyślałeś, że Matlab ma *uniwersalną* implementację mnożenia
macierzy? Więc nie dziw się, że twoja skrojona na miarę implementacja
jest szybsza.
Pozdrawiam
KK
-
9. Data: 2010-01-18 15:09:13
Temat: Re: matlab taki wydajny?
Od: Mariusz Marszałkowski <m...@g...com>
On 18 Sty, 15:58, Krzysiek Kowaliczek
<k...@g...com> wrote:
> U ytkownik Mariusz Marsza kowski napisa :
>
> > Ja matlabem nigdy si nie interesowa em i go nie znam, ale Ty to
> > chyba
> > masz zupe nie b dne wyobra enie o nim i o programowaniu w og le.
>
> Nie pomy la e , e Matlab ma *uniwersaln * implementacj mno enia
> macierzy? Wi c nie dziw si , e twoja skrojona na miar implementacja
> jest szybsza.
Powiedzialbym ze nie jest szybsza, ale duzo szybsza. I nie jest
skrojona na miare, bo jak juz nadmienialem, moja procedura w C
realizuje troche inny algorytm , ale mnozenie takich samych dwoch
wektorow przez dwie macierze sa w niej czescia dominujaca. Stawiam
ze czas matlaba do jezya C i gcc jest jak 10:6 w tym tescie.
Dlaczego mam sie nie dziwic? Matlab chyba jest cholernie drogi?
Za te pieniadze chlopaki od matlaba z pewnoscia mieli mozliwosc
napisania stu wersji procedur mnozenia macierzy. Kazda wersje
na inna architekture i na inne rozmiary macierzy. Srodowisko za
takie pieniadze powinno rozpoznac jaki jest procesor, ile ma pamieci
cache, jakie sa rozmiary macierzy i wskoczyc do skrojonych
na miare i zoptymalizowanych na dana platforme procedur.
Pozdrawiam serdecznie
-
10. Data: 2010-01-18 18:55:15
Temat: Re: matlab taki wydajny?
Od: bartekltg <b...@g...com>
On 18 Sty, 13:15, Mariusz Marszałkowski <m...@g...com> wrote:
> Witam
>
> Od dość dawna słyszę opinie że procedury zaimplementowane w
> matlabie są bardzo wydajne. Nie znam matlaba, ale wczoraj przez
> przypadek miałem go pod ręką, no i tyle ile można się nauczyć
> przez godzinę sprawdziłem.
>
> Program w matlabie robił coś takiego:
> for i=1:20000
> v = a * m1;
> a = v * m2;
> end;
U mnie 520 (tzn petla do 2000 zajela 52).
Natomiast rownowazne
tic;a=a*(m1*m2)^(20000-1); v = a * m1; a = v * m2; toc
zajelo 50s. Czyli 10 razy mniej:)
> gdyż robił ciut więcej obliczeń. No i w C
> wykonywało to 70s.
100 do 70? cos mierna ta roznica.
> Więc to tylko plotki że matlab jest taki wydajny?
Po pierwsze, porownaj powazne procedury. Chocby mnozenie maciezy.
Po drugie, czy matlab w tym miejscy nie korzysta z c blas/lapack?
Ze napisales ogolne procedury wydajniejsze - nie wierze;)
Sprawa zapewne rozbija sie o lepsze uzycie procesora,
programiki z c je wykorzystuje, matlab raczej nie
(czy daja wersje pod rozne procesory, nie wiem, moj jest uczelniany
i bebecham malo mnie obchodza, ale watpie).
Skontaktuj sie z nimi i zapytaj o podiane bibliotek na superprocek.
Po trzecie. Wydajnosc matlaba to sprawa drugorzedna. 70% to
niezly wynik. Procedura quad (adaptatywne calkowanie simpsonem),
gdy uzyjesz jej na niedrogiej obliczeniowo funkcji bedzie koszmarnie
wolna w porownaniu do jakiegokolwiek jezyka kompilowanego*).
Matlab to taka pierwsza linia frontu:) Mozesz sobie poeksperymentowac,
wszytko masz pod reka, a jesli dane do obliczen/symulacji/obrobki
beda duze i zalezec Ci bedzie na tym czynniku rzedu 2, posiedzisz
dwa tygodnia lub miesiace i napiszesz to w c/c++/fortranie.
pozdrawiam
bartekltg
*) kolezanka sie na to naciela. Wynika to oczywiscie ze skryptowosci,
w kazdym kroku procedura liczy wartosci funkcji w jedynie 3 (a moze
pieciu) punktach i za kazdym razem ciagnie za soba cala nadbudowe
(sprawdzanie rodzaju funkcji i poprawnosci wyrazenia..).
Na szybko napisalismy romberga (kilkanascie linijek, grubo 20 minut)
i dalo sie pracowac.