Octave

Jun 10, 2009 6 Replies

Witam,



Mam szybkie pytanie odnosnie Octave. M-file czyta z pliku dane zebrane przez analizator stanow logicznych, laduje je do duzej, macierzy, robi jakas obrobke tego (zadne fft, itd). Nie bardzo kapuje dlaczego pracochlonnosc obliczeniowa konsekwentnie rosnie nieliniowo. Danych jest na przyklad dwa razy wiecej, a czas wykonywania programu jest 4 razy dluzszy. Moze mnie ktos oswiecic o co chodzi?


Marcin E. Hamerla schrieb:

nie wiem jak z Oktave bo pracuję z Matlabem, ale tu masz podobne zjawisko (czasami). Już samo wczytywanie ASCII nie jest całkiem liniowe. Myślę, że to sprawa buforów, które nie są w 100% trzymane w pamięci tylko wywalane na dysk. Jak duże są te twoje macierze? Ja miałem np. coś takiego, że wczytywanie i przetwarzanie w kawałkach 10MB było mniej więcej 10x szybsze od przetwarzania w całości na raz (max 2GB), choć musiałem trochę uważać na stykach (filtry potrzebowały max 100 punktów z przeszłości i przyszłości). Nie wiem czy Oktave też ma możliwość konfiguracji pamięci, jak Matlab.

Waldek

<z³osliwo¶æ>

Moja magiczna kula mówi mi, ¿e masz pêtlê w pêtli ;) </z³osliwo¶æ>

Tak naprawdê przypuszczam, ¿e masz problem wynikaj±cy z dynamicznego rozszerzania tablic. W³a¶nie niedawno na li¶cie dyskusyjnej octave stwierdzono, ¿e algorytm jest o z³o¿ono¶ci kwadratowej :(

Jedyne jak na razie (zanim poprawi±) rozwi±zanie, to prealokacja tablicy do finalnego lub nadmiarowego rozmiaru.

Powiedz dokladniej, jak laduje (najlepiej kod) i co robisz z ta macierza.

Poza tym, o czym mowil mirek moze tez n razy przesylasz do funkcji przez wartosc cala macierz. W amtalbie, jesli dobrze pamietam, dzieje sie tak wtedy, gdy modyfikujesz zmienna wewnatrz funkcji, w przeciwnym wypadku kopia nie jest tworzona.

Jeszcze raz: daj odpowiednie fragmenty kodu.

pozdrawiam

Mirek napisal(a):

Ok, to jest to. Najciekawsze jest to, ze podczas porannej dyskusji w firmie wysunalem taka hipoteze i naet chcialem na poczatku stworzyc tablice przez zeros(n,m), ale poniewaz gremialnie stwierdzilismy, ze to chyba niemozliwe by tak sie Octave zachowywal, wiec skonczylo sie na niczym.

Matlab daje warning jak tego nie robisz i pisze, ze bedzie dzialac wolniej.

Waldek

Waldemar Krzok napisal(a):

My jedziemy niskim kosztem: Open Office, Octave, itd.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required