Hatalmas tömbök használata hatalmas programozásban


Néhány elavult fogalma az "óriás"


Megértem, hogy a kutatók jelenleg terabájt információkkal dolgoznak, de csak a Fortran "óriási tömbjéről" beszéltem speciális módszerek alkalmazása nélkül.

Függetlenül a kezdők kérdéseivel a következőket határoztam meg:
1) A fordítás során bekövetkezett hiba éppen azért következett be, mert a memória ki lett osztva, amikor a program "statikusan" indult. Ha dinamikusan választja ki, a program elkezdi működését.
2) A Windows XP 32 bites verziójában korlátozások vannak egy adott program memóriájának lekérésére: 2 GB. Ez elkerülhető, ha használjuk összeállításakor LARGEADDRESSAWARE (vagy amikor össze kell építeni ezt a lehetőséget EXE-fájl). Azt is fel kell kérnie a Windows XP-t, hogy adjon 3 GB-s programokat a / 3GB opció hozzáadásával a boot.ini fájlban.

Az 1. és 2. pontban található megoldások használatával lehetõvé tette a szükséges algoritmusok futtatását.

3) A Windows XP 32 bites és bármely más 32 bites operációs rendszer esetén egyetlen programhoz nem használhat 4 GB-nál több memóriát. Vagyis kiderül, hogy ha a memóriával dolgozik és több mint 3 GB-ot szeretne elosztani, akkor 64 bites operációs rendszerekre és fordítókra kell váltania.

Re: Hatalmas tömbök használata Fortranban


File-alapú tömböket próbáltam végrehajtani, ahol a tömb minden egyes eleme különálló fájl, de semmi sem jött rá.

A gyorsítótár szükségessége befolyásolhatja az algoritmusok kiválasztását is. Például az SLE rendezésének szokásos mátrixokra vonatkozó gradiens módszereit lassabbnak tekintik, mint a háromszögek. De a nagy mátrixoknál könnyebben megvalósíthatók és gyorsabbak lehetnek, mert kevesebb swapra van szüksége.

Re: Hatalmas tömbök használata Fortranban


Természetesen ezeket a funkciókat a mai "szörnyetegszerű" algoritmusomban választottam egy elem elem kiválasztásához :). Mondja meg, hogy találkozott-e olyan kész könyvtárakkal, modulokkal vagy funkciókkal, amelyek végrehajtják ezt Fortran-on?

Re: Hatalmas tömbök használata Fortranban

Találkoztál már olyan kész könyvtárakkal, modulokkal vagy funkciókkal, amelyek ugyanazt a Fortran-ban hajtják végre?

Nem, nem. És nem vagyok biztos benne, hogy léteznek ilyen univerzális könyvtárak. Általában a mátrixok feldolgozására szolgáló programok, amelyek nem illeszkednek a memóriába, nagyon egyediek. A mátrixból származó olvasási műveletek és a mátrixba írás mindig szűk keresztmetszet, és egy adott alkalmazáshoz optimalizálva vannak.

Re: Hatalmas tömbök használata Fortranban

Re: Hatalmas tömbök használata Fortranban

Mondja meg, hogy találkozott-e olyan kész könyvtárakkal, modulokkal vagy funkciókkal, amelyek végrehajtják ezt Fortran-on?

Nos, van ilyen HDF könyvtár. Általánosan univerzális, nagy fájlkészletekkel rendelkező fájlok kezelésére. Ez viszonylag könnyű (bár természetesen szükség van rá), mindenféle hozzáférést sorokhoz, oszlopokhoz, blokkokhoz készítenek.

Re: Hatalmas tömbök használata Fortranban

Köszönjük a HDF információit!

Azt mondja meg, kérem, helyesen megértem, hogy ha fut egy alkalmazás-ban összeállított Compaq Visual Fortran, Windows XP 64bit, hogy fog futni, mint egy 32-bites alkalmazás? A Compaq Visual Fortran nem tudja összeállítani a 64 bites alkalmazást, ahogy ezt megértem?

Ha igen, mondja meg, kérlek, milyen fordítót csinálhat ez?

Re: Hatalmas tömbök használata Fortranban

Ha igen, kérlek, kérlek, milyen fordítót csinálhatsz?

Nem tudok semmit a Compaq-ról, gyanítom, hogy nem támogatja a 64 bitet. Igen, mind a rendszer, mind a fordító támogatja a 64 bitet.
Az Intel Fortran a legjobb. A Windows alatt pénz kerül. Ha nem használ illegális módszereket.
Megpróbálhatod például a gcc-et (ahol van gfortran) innen. Támogatja a 64 bitet.

Re: Hatalmas tömbök használata Fortranban

Ellenőrizni a Windows XP 64bit, minden kiderült, hogy gfortran: most már lehet akár 8 terabájt memória használata :) (persze, ez több, mint egy vicc, mert a normál PC, ez a memória lesz a virtuális és a számítások fog menni egy nagyon hosszú idő, de a döntés elmélet megtalálható, részben pedig a gyakorlatban is használható).

Ki van online

Jelenlévő fórumozók: nincs regisztrált felhasználó

Nem hozhatsz új témákat ebben a fórumban
Nem válaszolhat a fórum témáira
A bejegyzéseid nem szerkeszthetők
Nem tudja törölni a bejegyzéseidet
Nem csatolhat mellékleteket

Kapcsolódó cikkek