begin process at 2012 05 28 07:19:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Autre

 > 

Allocation contigue


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Allocation contigue

lundi 3 décembre 2007 à 17:34:21 | Allocation contigue

forest123

Bonjour tous le monde,

En faite j'ai un code qui utilse un tableau de 4 dimesions (12*x*y*z), j'alloue ce tableau avec (un seul pointeur) un tableau physique d'une seule dimension et utilise un offset pour accedez comme un tableaux à quatre dimesion

define OFF4(a,i,j,k,A,I,J,K) ((((a)*(I)+(i))*(J)+(j))*(K)+(k)). bon rien de spécial


à partir d'une certaine taille  : (592,712,492, 12) de float environ 5.5 Giga ,  l'allocation echoue pourtant j'ai 64 giga de ram, et si je utilise douze tableau de (592,712,492)  ça marche , qlq peut m'expliquez pourquoi.

apparement il a pas un blocage dans l'allocation contigue à allouer  ? je me trompe.

de plus j'ai une architecture à 64 bit

je suis sous linux redhat 64bit,  avec gcc optin -mcpu=x86-64 est activé.

Merci d'avance






Ps : etre le meilleur oblige à croire qu'il y'a quelqu'un de meilleur.
lundi 3 décembre 2007 à 22:38:50 | Re : Allocation contigue

nickydaquick

Membre Club
        Salut , je viens de lire que tu alloues un bloc memoire de 5.5 Giga. Seulement a moins que je ne me trompe , malloc et calloc utilise des long, donc codes sur 4octets soit 32 bits. les longs etant signes ceci te laisse environ 32 bits non signes utilisables == environ 2Giga max d'allouables d'un seul coup.
 
                   J'espere avoir aider , Bonne chance

je suis heureux de faire partie d'une grande famille ...!
lundi 3 décembre 2007 à 22:43:36 | Re : Allocation contigue

gamemonde

Membre Club
environ 5.5 gig plutot que 2 mais que veux tu faire car allouer 5.5 gig c'est gros d'un coup et ta machine a couté combien avec 64 gig de ram
lundi 3 décembre 2007 à 23:55:25 | Re : Allocation contigue

SAKingdom

Membre Club
malloc calloc etc. utilise size_t
Sous Windows:
Si tu es en 32 bit, size_t sera l'équivalent de unsigned int
Si tu es en 64 bit, size_t sera l'équivalent de unsigned __int64

devrait être équivalent sous linux.

C++ (@++)

mardi 4 décembre 2007 à 00:11:57 | Re : Allocation contigue

gamemonde

Membre Club
In Visual C++ 2005, malloc sets errno to ENOMEM if a memory allocation fails or if the amount of memory requested exceeds _HEAP_MAXREQ. For information on this and other error codes, see errno, _doserrno, _sys_errlist, and _sys_nerr.

donc verifie il a des fonctions pour agrandir la memoire possiblement utilisable
mardi 4 décembre 2007 à 11:40:06 | Re : Allocation contigue

forest123

Bonjour,


Merci pour vos réponses, le cout de la machine j'en  pas la moindre idée mais je vous répoderais cette apres midi (t'es sur que tu veux le savoir ;-) ),

je suis entrain de chercher qlq equivalenet à _HEAP_MAXREQ pour agradir la memoire max alloué ,(merci gamemonde)

la réponse nickydaquick est intéressante, mais c'est le cas dans tous les systémes (ou presque ) ça serais impossible d'allouer plus de deux Giga  avec malloc  et calloc, non ?

ah, j'ai essayé aussi l'option -mcmodel=medium    pour activer l'allocation plus de 2 Giga, je l'ai deja fait auparavant avec un autre programme et ça a marché. mais pas maintenant.

en faite je fait la partie du code  concernée  (divsion du tableau), mais ça me derrange qu'on sache pas pourquoi 

A.Saad





Ps : etre le meilleur oblige à  croire qu'il y'a quelqu'un de meilleur.
mardi 4 décembre 2007 à 12:03:12 | Re : Allocation contigue

forest123

re

assiez vous , voila le pris

20000 euros avec 8 processeur

Ps : etre le meilleur oblige à  croire qu'il y'a quelqu'un de meilleur.


Cette discussion est classée dans : tableau, utilise, allocation, contigue, giga


Répondre à ce message

Sujets en rapport avec ce message

allocation dynamique [ par none77 ] Bonjour,j'ai un petit prog dans lequel j'utilise deux tablo dynamiques (j'utilise malloc() )A la fin je dois donc faire des free().Mon pb est ke lorsq allocation dynamique d'un tableau à trois dimensions [ par yo62 ] Bonjour,J'ai un bête pointeur dans une structure :int *Tableau;et je voudrais que ce pointeur pointe sur une allocation dynamique de type tableau mais Allocation dynamique d'un tableau a deux dimensions [ par Kurul1 ] Bonjour à tousJe voudrais allouer dynamiquement un tableau a deux dimensions d'entiersEst-t-il possible de le faire avec des new au lieu d'utiliser ma [c++] allocation dynamique de tableau [ par anne-lise ] Re bonjour, j'ai encore un probleme avec les tableaux.J'ai une classe Image et je veux construire un tableau d'objet de la classe Image dynamiquement. Tableau d'objets [ par gaat ] Bonjour, J'ai une question probablement toute simple : J'utilise une shape (TShape) et j'aimerais en avoir huit avec la même propriété. Comme je Allocation dynamique dans une fonction [ par Veovis ] Salut,Toujours dans mon projet de TP, j'ai un petit soucis avec l'allocation dynamique dans une fonction. Ce que je voudrais faire c'est quand le tabl ALLOCATION TABLEAU DEUX DIMENSIONS [ par tomsawyerbelgique ] Bonjour ,j'aimerais bien allouer dynamiquement de la mémoire pour un tableau a deux dimensions. Je demanderais le nombre de ligne et de colonne puis j compter les cases d'un tableau [ par MorpheusFan ] Salut, Je voudrais compter les cases d'un tableau, pour cela j'utilise la macro _countof() mais  le compilateur répond : error C2065: '_countof' : und Allocation dynamique, tableau à 2 dimensions [ par seb013 ] SalutMon problème est simple (la solution je ne sais pas). Je veux faire une allocation dynamique pour un tableau à deux dimensions. Alors pour un ta allocation dynamique de tableau. [ par moumouteb ] Bonjours. J'ai vu qu'avec une allocation dynamique on peut créer un tableau d'une taille varible comme ceci :long nombreDAmis = 15;long* ag


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales