Portál AbcLinuxu, 26. dubna 2024 21:25


Dotaz: Intel vs AMD64 alokace pameti

menphis avatar 10.2.2009 03:18 menphis | skóre: 22 | blog: menphis_blog
Intel vs AMD64 alokace pameti
Přečteno: 307×
Odpovědět | Admin
Ahoj, mohl by jste mi nekdo vysvetlit nasledujici "ukaz", protoze sam architekture cpu ani pogramovani moc nerozumim.

K diplomce jsem dostal program ve Fortranu 77, ktery vyviji "moje" katedra a mam k nemu za ukol neco dopsat. Nejdriv jsem program skompiloval na kompu na koleji -- AMD Athlon 64, linux 32bit. Program funguje korektne.

Ted o vikendu jsem si chtel program skompilovat doma --Intel P3, linux 32bit. Jenze volani programu konci nasledujici chybou (vypis strace):
-1 ENOMEM (Cannot allocate memory)+++ killed by SIGKILL +++
Zkusil jsem zvetsit velikost zasobniku na unlimited (defaultne bylo 8 MB) nicmene to nepomohlo. Pro zajimavost jsem zkusil program skompilovat pres ssh na pc ve skole. Vysledek - program kompilovany na Intelu ( Core2 Duo, linux 32) se chvilku po startu shroutil se SIGKILLem. Na AMD Phenon X4, linux 32, jel program ok. Na 64 bitovem linuxu jsem zatim nemel moznost program skompilovat. Jeste dodam, ze pri kompilaci nebyl pouzit zadny extra prepinac, nicmene jsem si vsimnul ze v Makefilu je pro 64 bitovy system prepinac -mcmodel=medium.

Mohl by jste mi nekdo vysvetlit, proc se tak deje a zda existuje nejaky prepinanc, se kterym by slo program kompilovat i na Intelu, dik ?

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.2.2009 06:59 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Intel vs AMD64 alokace pameti
Odpovědět | | Sbalit | Link | Blokovat | Admin
To je zas věštecká koule. Proč sem nehodíte nějaký obsáhlejší výpis, případně i kus toho zdrojáku, co to dělá?
In Ada the typical infinite loop would normally be terminated by detonation.
10.2.2009 11:11 Ivan
Rozbalit Rozbalit vše Re: Intel vs AMD64 alokace pameti
Odpovědět | | Sbalit | Link | Blokovat | Admin

tohle asi nesouvisi s tim jestli je CPU intel nebo amd. spis bych hledal problem v limitech(ulimit) verzi kompilatoru nebo ve verzi glibc.

 

menphis avatar 10.2.2009 12:30 menphis | skóre: 22 | blog: menphis_blog
Rozbalit Rozbalit vše Re: Intel vs AMD64 alokace pameti
- ulimit jsem kontroloval i zkousel menit velikost stacku. no vtip je v tom, ze ten system na skolnich pc je ideticky. stejny glibc, stejna verze kompilatoru, stejne jadro, stejna distribuce..

- vic nez jsem uvedel v prvnim prispevku mi strace nevrati

Problem je mozna v tom, ze fortran 77 neumi dynamicky alokovat promene. A jelikoz program je docela rozsahly ( vesmes reseni pde), bude problem asi zde.

Pro zajimavost jsem zkusil kompilaci na Quad-Core AMD Opteron(tm) 8384 a program opet funguje spravne, takze bych doopravdy videl na souvislost s cpu.
10.2.2009 17:56 Ivan
Rozbalit Rozbalit vše Re: Intel vs AMD64 alokace pameti

jeste bych zkusil spustit tu binarku ve valgrindu popr. s env. promennou "export MALLOC_CHECK_=2". Vygeneruji vam kompilatory na obou systemech stejnou binarku?

 

11.2.2009 10:38 graviton
Rozbalit Rozbalit vše Re: Intel vs AMD64 alokace pameti
Odpovědět | | Sbalit | Link | Blokovat | Admin
A kolik maji ty dva stroje pameti (+swap)? On linux defaultne nedovoli alokovat o moc vic, nez je k dispozici. Kontrola se da vypnout: echo -n 1 > /proc/sys/vm/overcommit_memory

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.