| 11 | 1/1 | 返回列表 |
| 查看: 4135 | 回復(fù): 10 | |||
[交流]
【求助】請問如何解決insufficient virtual memory
|
|||
|
最近寫了一個程序,里面用了一個大的三維數(shù)組p(8800,758,5000),但是在運(yùn)行時出現(xiàn)了這個錯誤insufficient virtual memory。我在網(wǎng)上查,說這個錯誤是虛擬內(nèi)存不夠,但是沒找到解決方法,請大家指點(diǎn)? program get_projection implicit none integer i,j,k integer,allocatable::p(:,:, ![]() allocate(p(8800,758,5000)) p=0 do i=1,8800 do j=1,758 do k=1,5000 if(i==j.and.j==k) then p(i,j,k)=1 write(*,*)'test',p,i,j,k endif enddo enddo enddo end |
» 搶金幣啦!回帖就可以得到:
+3/1718
+1/632
+1/84
+1/82
+1/80
+1/34
+1/34
+1/16
+1/16
+1/14
+1/7
+1/7
+1/7
+1/6
+1/5
+1/2
+1/1
+1/1
+1/1
+1/1
|
不會fortran,網(wǎng)上搜到: WinNT/9x上運(yùn)行的Visual Fortran動態(tài)內(nèi)存分配受一些因素的限制,包括交換文件的大小和其它同時運(yùn)行的應(yīng)用程序所需的內(nèi)存大小。如果動態(tài)分配的內(nèi)存太大或試圖使用其它應(yīng)用程序的保護(hù)內(nèi)存會產(chǎn)生一般內(nèi)存保護(hù)錯誤。碰到這類問題可以通過控制面板來改變虛擬內(nèi)存的大小或交換文件的大小,還有一些編程技術(shù)可以降低內(nèi)存需要。 虛擬內(nèi)存的調(diào)整: 右擊“我的電腦”,屬性->高級->“性能”設(shè)置->高級->這個時候就能看到虛擬內(nèi)存更改了 [ Last edited by sudo on 2011-3-22 at 08:48 ] |
|
我的想法是:有兩組數(shù),第一組是a1,a2----a30000,第二組b1,b2---b800分別存在數(shù)組A,B中,一共5000步的循環(huán)。假如第一步時,數(shù)組A中的數(shù)與數(shù)組B中的數(shù)是否滿足一定的條件condition,如果滿足,就檢查在之后循環(huán)中這種關(guān)系是否仍然存在,如果存在就用一個函數(shù)標(biāo)記。其實(shí)我要實(shí)現(xiàn)的就是找出這個標(biāo)記函數(shù)。我用了一個三維數(shù)組h標(biāo)記,程序如下: h=0 do istep=1,5000 do i=1,30000 do j=1,800 if(a(i)*b(j)==1) then h(j,i,istep)=1 endif enddo enddo enddo 現(xiàn)在的問題是這個三維數(shù)組h太大,應(yīng)該怎樣寫這個程序才能實(shí)現(xiàn)我的想法。 |
|
不知道fortran有沒有位運(yùn)算......你那個標(biāo)記僅僅是0和1的話,用一個整型數(shù)存儲實(shí)在是太浪費(fèi)了.... 另外,你可以預(yù)先估計(jì)一下h是不是稀疏矩陣..... 呃,其實(shí)從你程序的片段中看不出來那個step起到了什么作用,也沒看出你之后想如何處理h(h的信息有什么用?) --------------------------------------------------------- 以上都是技巧上的建議,但,在算法上改進(jìn)一小步,你的程序就進(jìn)步一大步,最終的解決之道還是得找好算法 |
|
我已經(jīng)把i,j,istep都輸出到文件了,但是我需要計(jì)算相關(guān)函數(shù),也就是說如果第一步出現(xiàn)120,,30,istep(分別對應(yīng)i,j,istep),看看在istep=2,3,4-----3000時是否依然存在,所以我就將這種存在關(guān)系寫在了三位矩陣h(i,j,istep)中,因?yàn)樵诤竺娴某绦蛑,我使用了h作為判斷條件,下面的程序就是我想要做的,應(yīng)該如何該,才能避免使用這個大的三位數(shù)組h?? h=0 open (10,file='test.out') do i=1,99999999 read(10,*,end=2,err=2) istep,ia,ib h(istep,ia,ib)=1 enddo 2 continue close(10) do ia=1,30000 do ib=1,800 do istep=1,5000 h(istep)=h(istep,ia,ib) enddo do ntel=1,nsteps if(h(ntel)/=0) then 進(jìn)行后面的程序 ----------------- endif enddo enddo enddo |

| 11 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 281求調(diào)劑 +3 | Koxui 2026-03-24 | 4/200 |
|
|---|---|---|---|---|
|
[考研] 材料學(xué)碩333求調(diào)劑 +3 | 北道巷 2026-03-24 | 3/150 |
|
|
[考研] 080500求調(diào)劑 +3 | zzzzfan 2026-03-24 | 3/150 |
|
|
[考博] 申博26年 +4 | 八6八68 2026-03-19 | 4/200 |
|
|
[基金申請] 請教下大家 2026年國家基金申請是雙盲審嗎? +3 | lishucheng1 2026-03-22 | 5/250 |
|
|
[考研] 一志愿山東大學(xué)藥學(xué)學(xué)碩求調(diào)劑 +3 | 開開心心沒煩惱 2026-03-23 | 4/200 |
|
|
[考研] 335求調(diào)劑 +4 | yuyu宇 2026-03-23 | 5/250 |
|
|
[考研] 361求調(diào)劑 +3 | Glack 2026-03-22 | 3/150 |
|
|
[論文投稿] 急發(fā)核心期刊論文 +3 | 賢達(dá)問津 2026-03-23 | 5/250 |
|
|
[考研] 352求調(diào)劑 +3 | 大米飯! 2026-03-22 | 3/150 |
|
|
[考研] 317求調(diào)劑 +12 | 申子申申 2026-03-19 | 18/900 |
|
|
[考研] 308求調(diào)劑 +3 | 墨墨漠 2026-03-21 | 3/150 |
|
|
[考研] 085700資源與環(huán)境308求調(diào)劑 +12 | 墨墨漠 2026-03-18 | 13/650 |
|
|
[考研] 22408 344分 求調(diào)劑 一志愿 華電計(jì)算機(jī)技術(shù) +4 | solanXXX 2026-03-20 | 4/200 |
|
|
[考研] 295求調(diào)劑 +4 | 一志愿京區(qū)211 2026-03-18 | 6/300 |
|
|
[考研] 330求調(diào)劑 +4 | 小材化本科 2026-03-18 | 4/200 |
|
|
[考研]
|
然11 2026-03-19 | 4/200 |
|
|
[考研] 中南大學(xué)化學(xué)學(xué)碩337求調(diào)劑 +3 | niko- 2026-03-19 | 6/300 |
|
|
[考研] 一志愿西南交通 專碩 材料355 本科雙非 求調(diào)劑 +5 | 西南交通專材355 2026-03-19 | 5/250 |
|
|
[考研] 一志愿 南京航空航天大學(xué)大學(xué) ,080500材料科學(xué)與工程學(xué)碩 +5 | @taotao 2026-03-20 | 5/250 |
|