Marcin E. Hamerla
Guest
Wed Jun 10, 2009 10:28 am
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?
--
Pozdrowienia, Marcin E. Hamerla
"Every day I make the world a little bit worse."
Waldemar Krzok
Guest
Wed Jun 10, 2009 11:56 am
Marcin E. Hamerla schrieb:
Quote:
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?
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
Mirek
Guest
Wed Jun 10, 2009 12:40 pm
On śro, 10 cze 2009 11:28:27 in article news:<buuu259oihh0d82m3n99qeilv7c0b6d04q@4ax.com>
Marcin E. Hamerla wrote:
Quote:
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?
<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.
bartekLTG
Guest
Wed Jun 10, 2009 2:30 pm
Marcin E. Hamerla wrote:
Quote:
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
Powiedz dokladniej, jak laduje (najlepiej kod)
i co robisz z ta macierza.
Quote:
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?
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
--
bartekltg
....aby UseNet rósl w sile a trolle siedzialy cicho
Marcin E. Hamerla
Guest
Wed Jun 10, 2009 5:34 pm
Mirek napisal(a):
Quote:
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.
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.
--
Pozdrowienia, Marcin E. Hamerla
"Every day I make the world a little bit worse."
Waldemar Krzok
Guest
Wed Jun 10, 2009 9:50 pm
Marcin E. Hamerla wrote:
Quote:
Mirek napisal(a):
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.
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
Marcin E. Hamerla
Guest
Thu Jun 11, 2009 12:53 am
Waldemar Krzok napisal(a):
Quote:
Jedyne jak na razie (zanim poprawią) rozwiązanie, to prealokacja
tablicy do finalnego lub nadmiarowego rozmiaru.
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.
My jedziemy niskim kosztem: Open Office, Octave, itd.
--
Pozdrowienia, Marcin E. Hamerla
"Every day I make the world a little bit worse."