Lucrul cu mese uriașe în programarea Fortran


Unele dintre noțiunile dvs. depășite de "gigant"


Înțeleg că cercetătorii de astăzi lucrează cu terabytes de informații :), dar pur și simplu vorbesc despre "gama matură" pentru Fortran fără a folosi metode speciale.







Independent de întrebările începătorului am reușit să definim următoarele:
1) Eroarea care a apărut în timpul compilării a apărut tocmai pentru că memoria a fost alocată atunci când programul a fost pornit "static". Dacă îl selectați dinamic, programul începe să funcționeze.
2) În Windows XP 32bit există limitări privind alocarea memoriei pentru un program: 2 GB. Aceasta poate fi ocolită dacă folosiți LARGEADDRESSAWARE la compilare (sau după integrarea acestei opțiuni în fișierul EXE). De asemenea, trebuie să cereți Windows XP să ofere programe de 3 GB prin adăugarea opțiunii / 3GB în boot.ini.

Prin utilizarea soluțiilor de la punctele 1 și 2, a fost posibilă rularea algoritmilor care au fost necesari.

3) În Windows XP 32 bit și orice alt sistem de operare pe 32 de biți, nu puteți utiliza mai mult de 4 GB de memorie pentru un program. Adică, se pare că dacă lucrați cu memorie și încercați să alocați mai mult de 3 GB, atunci trebuie să treceți la OS și compilatoare pe 64 de biți.

Re: Lucrul cu mese uriașe în Fortran


Am încercat să pun în aplicare array-uri bazate pe fișiere, în care fiecare element al matricei este un fișier separat, dar nimic nu a venit din ea.

Nevoia de cache poate afecta și alegerea algoritmilor. De exemplu, metodele de gradient pentru rezolvarea SLE pentru matricile obișnuite sunt considerate mai lent decât extinderile triunghiulare. Dar pentru matricile mari ele sunt mai ușor de implementat și pot fi mai rapide, deoarece aveți nevoie de mai puține swap-uri.

Re: Lucrul cu mese uriașe în Fortran


Am implementat aceste funcții, bineînțeles, în algoritmul meu de "monster-like" de astăzi pentru selectarea unui element pentru fiecare element :). Spuneți-mi, vă rog, v-ați întâlnit cu bibliotecile, modulele sau funcțiile deja pregătite, care implementează acest lucru pe Fortran?







Re: Lucrul cu mese uriașe în Fortran

Te-ai intalnit cu biblioteci, module sau functii gata realizate pe Fortran?

Nu, nu am făcut-o. Și nu sunt sigur că există astfel de biblioteci universale. De obicei, programele pentru procesarea matricelor care nu se încadrează în memorie sunt foarte specifice. Operațiile de citire de pe matrice și scrierea în matrice sunt întotdeauna un obstacol și sunt optimizate pentru o anumită aplicație.

Re: Lucrul cu mese uriașe în Fortran

Re: Lucrul cu mese uriașe în Fortran

Spuneți-mi, vă rog, v-ați întâlnit cu bibliotecile, modulele sau funcțiile deja pregătite, care implementează acest lucru pe Fortran?

Ei bine, există o astfel de bibliotecă HDF. Este, în general, universal, scris pentru lucrul cu fișiere cu seturi de date mari. Este relativ ușor (deși este necesar să se obișnuiască, bineînțeles) tot felul de accesuri sunt făcute pe rânduri, coloane, blocuri.

Re: Lucrul cu mese uriașe în Fortran

Vă mulțumim pentru informații despre HDF!

Spuneți-mi, vă rog, înțeleg corect că dacă executați o aplicație compilată în Compaq Visual Fortran în Windows XP 64bit, va porni ca o aplicație pe 32 de biți? Compaq Visual Fortran nu poate compila o aplicație pe 64 de biți, așa cum o înțeleg?

Dacă da, spune-mi, vă rog, ce compilator poate face asta?

Re: Lucrul cu mese uriașe în Fortran

Dacă da, spune-mi, vă rog, ce compilator poate face asta?

Nu știu nimic despre Compaq, bănuiesc că nu suportă 64 de biți. Da, 64 de biți ar trebui să fie susținute atât de sistem, cât și de compilator.
Intel Fortran este cel mai bun. Sub Windows costă bani. Dacă nu utilizați metode ilegale.
Puteți încerca gcc (în care există gfortran) de exemplu de aici. Suporta 64 de biți.

Re: Lucrul cu mese uriașe în Fortran

Verificat pe Windows XP pe 64 de biți, totul sa dovedit a gfortran: acum este posibil până la 8 terabytes de memorie pentru a utiliza :) (desigur, este mai mult ca o glumă, pentru că PC-ul obișnuit, această memorie va fi virtuală, iar calculele vor merge un timp foarte lung, dar în teoria deciziei găsită și, în parte, poate fi utilizată în practică).

Cine este online

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat

Nu puteți posta subiecte noi în acest forum
Nu puteți răspunde la subiectele din acest forum
Nu puteți edita postările dvs.
Nu puteți șterge postările
Nu puteți adăuga atașamente







Articole similare

Trimiteți-le prietenilor: