LabVIEW: memory is full

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Awatar użytkownika
progor
Posty: 197
Rejestracja: 01 kwie 2005 00:00
Lokalizacja: Kraków

LabVIEW: memory is full

Post autor: progor »

Witam. środowisko pracy: LabVIEW 7.1, system Windows XP
robie sobie w LabVIEW symulacje sieci komputerowej i przy zwiększeniu parametrów (ilość iteracji=100000 i ilość stacji=1000 [dla 100 jest OK]) pojawia mi się błąd: LabVIEW: Memory is full. VI "..." was stopped at Loop Tunnel 0xC38 of subVI "..."
pamięć wirtualna: rozmiar pliku stronicowania 4096 - 4096 (czyli max jaki udało mi sie ustawić).
wiem, że nie jako pierwszy zetknąłem się z problemem przydzielania pamięci przez LabVIEW, gdzieś kiedyś usłyszałem podpowiedź: referencje. starałem się rozwiązać problem przez zastosowanie reference ale bez większych rezultatów (może nieumiejętnie zastosowałem...)
Czy ma ktoś na to jakiś patent? bardzo bym prosił o pomoc.
Wcześniej pracowałem w Matlabie, którego zajechałem. LabVIEW pracuje znacznie szybciej a przede wszytkim jaśniej (nie gubię się w miecierzach) ale potrzeba obejść problem z przydzielaniem pamięci.
W załączniku mój podstawowy program.
Pozdrawiam.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: LabVIEW: memory is full

Post autor: Mikrobi »

1. Czy komunikat jest już na starcie? Mam 54obroty głównej pętli FOR i kręci sie nadal przy parametrach: 1000 stacji 100000 losowań 0,7 alfa
Trop 1szy: mam 640MB RAMu, może problem z pamięcią operacyjną...?
2.
Trop drugi dana DBL zapisywana jest przez LabVIEW na 64 bitach. Proponuję sprawdzić gdzie LV alokuje pamięć dla danych:
Tools>>Advanced>>Show Buffer Allocations i przeliczyć ile alokuje. ...na pierwszy rzut oka dużo tego wyjdzie...
Podejrzewam że środowisko już siedzi na krawędzi
wydajności twojego komputera.
Zajętość zasobów sprzętu przy uruchomionej aplikacji procesora oczywiście 100%
Pamięci 715MB
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
progor
Posty: 197
Rejestracja: 01 kwie 2005 00:00
Lokalizacja: Kraków

Re: LabVIEW: memory is full

Post autor: progor »

nie, z początku jest OK, tylko jak przychodze rano (aplikacja sie wykonuje w nocy) to widze ten niemiły komunikat.
pamięci RAM owszem, mam tylko 256MB.
skoro "środowiko siedzi na krawędzi" jak piszesz, to co proponujesz zrobić? będzie jakieś rozwiązanie? zawsze moge rozbić symulacje i potem składać macierze wyników - ale do tego łatwo się można przyczepić merytorycznie, a tego właśnie musze uniknąć.
pozdrawiam
p.s. za drugim Tropem nie nadążam... :) czy jest możliwość jakiegoś dynamicznego przypisywania pamięci? czy tego nie powinny właśnie załatwiać owe references?
Awatar użytkownika
progor
Posty: 197
Rejestracja: 01 kwie 2005 00:00
Lokalizacja: Kraków

Re: LabVIEW: memory is full

Post autor: progor »

poradziłem sobie (LAVA) - zamiast pamiętać array, która nie jest mi potrzebna do kolejnych iteracji i która robi się po kilku pętlach ogromna, zapisuje ją do pliku i po problemie.
przed zapisem i wizualizacją odczytuje z pliku i mam to co chciałem.
tzn. zapuściłem dla 1000000iteracji i na rano zrobił do 122 :)
chyba trzeba będzie zatrudnić kompa na weekend :D
ODPOWIEDZ