From sgougeon at free.fr Fri Mar 1 00:41:51 2013 From: sgougeon at free.fr (Samuel Gougeon) Date: Fri, 01 Mar 2013 00:41:51 +0100 Subject: [Users-fr] Afficher une image de 2048 par 2048 In-Reply-To: <20130228225505.83676us1w82cthgk@entmail1.univ-lemans.fr> References: <20130228225505.83676us1w82cthgk@entmail1.univ-lemans.fr> Message-ID: <512FEB3F.3020301@free.fr> Le 28/02/2013 22:55, Laurent Berger a écrit : > .../... > Donc comment faire? - Eviter la multiplication des variables intermédiaires très encombrantes - Se souvenir que le contenu de Matplot est interprété comme des indices de couleurs dans la palette de la fenêtre graphique. : stacksize(4e7); gstacksize(4e7); n = 10; n=11 // que des problèmes nbl = 2^n; nbc = 2^n; yc = nbl/2; xc = nbc/2; x = zeros(nbl,nbc); x = meshgrid(1:nbl,1:nbc); x = abs(x-yc)+abs(x'-xc); clf f = gcf(); f.color_map=rand(256,3); Matplot(pmodulo(x,256)) Samuel -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: -------------- section suivante -------------- Une pièce jointe autre que texte a été nettoyée... Nom: ffgifdgf.png Type: image/png Taille: 306841 octets Desc: non disponible URL: From laurent.berger at univ-lemans.fr Fri Mar 1 09:45:34 2013 From: laurent.berger at univ-lemans.fr (laurent berger) Date: Fri, 1 Mar 2013 00:45:34 -0800 (PST) Subject: [Users-fr] Afficher une image de 2048 par 2048 In-Reply-To: <512FEB3F.3020301@free.fr> References: <20130228225505.83676us1w82cthgk@entmail1.univ-lemans.fr> <512FEB3F.3020301@free.fr> Message-ID: <1362127534494-4026095.post@n3.nabble.com> Merci de ta réponse mais je suis un peu sceptique. "- Eviter la multiplication des variables intermédiaires très encombrantes" à mon avis pmodulo génère une varaible intermédiaire de la taille de x " Se souvenir que le contenu de Matplot est interprété comme des indices de couleurs dans la palette de la fenêtre graphique." Il me semble que les fonctions grayplot et showimage utilisent aussi la notion de palette. Pour en revenir au programme pour n=10 l'espace mémoire occupé par x est 2^10*2^10*8=8388624octets soit à peu près 8Mo et de même pour i,j,d soit environ 32Mo pour les variables Si on passe à n=12 2^12*2^12*8=1.342D+08octets soit environ pour les variables x,i,j, d soit environ 512Mo Donc sauf erreur dans les calculs précédents avec un ordinateur avec 8Go et un système 64 bits et scilab 64 bits (La machine virtuelle java est elle en 64 bits?), il reste encore 6Go pour afficher l'image. Il y a quelque chose qui m'échappe. -- View this message in context: http://mailinglists.scilab.org/Users-fr-Afficher-une-image-de-2048-par-2048-tp4026092p4026095.html Sent from the Liste utilisateur (en français) mailing list archive at Nabble.com. From sgougeon at free.fr Fri Mar 1 10:50:38 2013 From: sgougeon at free.fr (sgougeon at free.fr) Date: Fri, 1 Mar 2013 10:50:38 +0100 (CET) Subject: [Users-fr] Afficher une image de 2048 par 2048 In-Reply-To: <1362127534494-4026095.post@n3.nabble.com> Message-ID: <1950481605.1994732.1362131438137.JavaMail.root@zimbra75-e12.priv.proxad.net> Bonjour Laurent, >>- Eviter la multiplication des variables intermédiaires très encombrantes" >à mon avis pmodulo génère une varaible intermédiaire de la taille de x Probablement, mais la mémoire est libérée à sa sortie. Dans ton exemple initial, i, j, d et x sont toutes (n,n) et en session. >>" Se souvenir que le contenu de Matplot est interprété comme des indices >> de couleurs dans la palette de la fenêtre graphique." >Il me semble que les fonctions grayplot et showimage utilisent aussi la >notion de palette.* oui, mais sans le modulo, on obtient la couleur de saturation, car ~tous les éléments de la matrice sont >>256. >Pour en revenir au programme pour n=10 l'espace mémoire occupé par x est >2^10*2^10*8=8388624octets soit à peu près 8Mo et de même pour i,j,d soit >environ 32Mo pour les variables >Si on passe à n=12 2^12*2^12*8=1.342D+08octets soit environ pour les >variables x,i,j, d soit environ 512Mo >Donc sauf erreur dans les calculs précédents avec un ordinateur avec 8Go et >un système 64 bits et scilab 64 bits (La machine virtuelle java est elle en >64 bits?), il reste encore 6Go pour afficher l'image. >Il y a quelque chose qui m'échappe. oui, même avec toute l'attention requise pour utiliser stacksize() et gstacksize() qui prennent des arguments en nombres de "mots longs" (j'ai cru comprendre qu'il s'agit de nombres en double précision, ie des multiples de 8 octets, unité très peu pratique...), le résultat de ces calculs de mémoire laisse perplexe... Du reste, peut-être est-ce ce facteur 8 très peu lisible qui pose problème dans la routine stacksize()... Mais tu demandais à afficher une image 2048x2048. C'est possible ! ;) Samuel From sgougeon at free.fr Fri Mar 1 11:04:01 2013 From: sgougeon at free.fr (sgougeon at free.fr) Date: Fri, 1 Mar 2013 11:04:01 +0100 (CET) Subject: [Users-fr] Afficher une image de 2048 par 2048 In-Reply-To: <1362127534494-4026095.post@n3.nabble.com> Message-ID: <1440095794.2032595.1362132241448.JavaMail.root@zimbra75-e12.priv.proxad.net> >Si on passe à n=12 2^12*2^12*8=1.342D+08octets soit environ pour les >variables x,i,j, d soit environ 512Mo Je crois me souvenir que Scilab < 6 est limité à 100 ou 200Mo... Et que la gestion de la mémoire vive utilisable est complètement mise à plat dans Scilab 6, en étant seulement limitée par l'ordinateur. Une occasion d'essayer Scilab 6 (dit YAS), si Matplot y est déjà branché. Samuel From sgougeon at free.fr Fri Mar 1 11:16:22 2013 From: sgougeon at free.fr (sgougeon at free.fr) Date: Fri, 1 Mar 2013 11:16:22 +0100 (CET) Subject: [Users-fr] Afficher une image de 2048 par 2048 In-Reply-To: <1950481605.1994732.1362131438137.JavaMail.root@zimbra75-e12.priv.proxad.net> Message-ID: <1820508312.2075526.1362132982320.JavaMail.root@zimbra75-e12.priv.proxad.net> >>LB: .../... >>Si on passe à n=12 2^12*2^12*8=1.342D+08octets soit environ pour les >>variables x,i,j, d soit environ 512Mo >>Donc sauf erreur dans les calculs précédents avec un ordinateur avec 8Go et >>un système 64 bits et scilab 64 bits (La machine virtuelle java est elle en >>64 bits?), il reste encore 6Go pour afficher l'image. >>Il y a quelque chose qui m'échappe. >SG: .../... >Du reste, peut-être est-ce ce facteur 8 très peu lisible qui pose problème >dans la routine stacksize()... Par ailleurs, Matplot, et la grayplot family souffr(ai)ent d'importantes fuites de mémoires. Divers correctifs y ont été apportés depuis la publication de 5.4.0 à la rentrée dernière (voir CodeReview). Essayer avec la version en cours de développement (il y en a 3: 5.4.x, 5.5, et master ! => laquelle choisir ?) améliorerait peut-être la situation. From laurent.berger at univ-lemans.fr Fri Mar 1 12:09:14 2013 From: laurent.berger at univ-lemans.fr (laurent berger) Date: Fri, 1 Mar 2013 03:09:14 -0800 (PST) Subject: [Users-fr] Afficher une image de 2048 par 2048 In-Reply-To: <1820508312.2075526.1362132982320.JavaMail.root@zimbra75-e12.priv.proxad.net> References: <20130228225505.83676us1w82cthgk@entmail1.univ-lemans.fr> <512FEB3F.3020301@free.fr> <1362127534494-4026095.post@n3.nabble.com> <1950481605.1994732.1362131438137.JavaMail.root@zimbra75-e12.priv.proxad.net> <1820508312.2075526.1362132982320.JavaMail.root@zimbra75-e12.priv.proxad.net> Message-ID: <1362136154977-4026103.post@n3.nabble.com> Bon j'ai lu la doc! Dans la doc de stacksize il y a : "Pour les plateformes 64 bit, la taille maximale de la pile est limitée à 268 435 454." Soit 2Gb en multipliant par 8 (taille des réels de type double). Pour l'exemple avec une image de 4096x4096 les variables seuls occupent 512Mo selon mes calculs et confirmer par la variable whos. Avec le gestionnaire de windows je constate que scilab passe à 2Go après stacksize('max'). c'est la limitation mémoire de la JVM 32 bits je crois bien. Ma conclusion c'est que la fonction whos indique que les variables occupent 512 Mo donc il manque 1.5Go La plus grande matrice que je peux utiliser est de 14900*14900*8 soit environ 1.7Go. En résumé il vaut mieux avoir deux programmes un pour le calcul et un pour l'affichage lorsqu'on doit manipuler des matrices de taille supérieure à 1000x1000 -- View this message in context: http://mailinglists.scilab.org/Users-fr-Afficher-une-image-de-2048-par-2048-tp4026092p4026103.html Sent from the Liste utilisateur (en français) mailing list archive at Nabble.com. From sylvestre.ledru at scilab-enterprises.com Fri Mar 1 13:21:20 2013 From: sylvestre.ledru at scilab-enterprises.com (Sylvestre Ledru) Date: Fri, 01 Mar 2013 13:21:20 +0100 Subject: [Users-fr] Afficher une image de 2048 par 2048 In-Reply-To: <1820508312.2075526.1362132982320.JavaMail.root@zimbra75-e12.priv.proxad.net> References: <1820508312.2075526.1362132982320.JavaMail.root@zimbra75-e12.priv.proxad.net> Message-ID: <51309D40.6090201@scilab-enterprises.com> On 01/03/2013 11:16, sgougeon at free.fr wrote: >>> LB: .../... >>> Si on passe à n=12 2^12*2^12*8=1.342D+08octets soit environ pour les >>> variables x,i,j, d soit environ 512Mo >>> Donc sauf erreur dans les calculs précédents avec un ordinateur avec 8Go et >>> un système 64 bits et scilab 64 bits (La machine virtuelle java est elle en >>> 64 bits?), il reste encore 6Go pour afficher l'image. >>> Il y a quelque chose qui m'échappe. > >> SG: .../... >> Du reste, peut-être est-ce ce facteur 8 très peu lisible qui pose problème >> dans la routine stacksize()... > > Par ailleurs, Matplot, et la grayplot family souffr(ai)ent d'importantes > fuites de mémoires. Divers correctifs y ont été apportés depuis la > publication de 5.4.0 à la rentrée dernière (voir CodeReview). > Essayer avec la version en cours de développement (il y en a 3: 5.4.x, 5.5, > et master ! => laquelle choisir ?) améliorerait peut-être la situation. Ces travaux ont été fait dans la branche 5.4. Ils seront donc disponibles en 5.4.1 et testable ici: http://www.scilab.org/development/nightly_builds/5.4 Sylvestre From sgougeon at free.fr Sat Mar 2 21:24:27 2013 From: sgougeon at free.fr (Samuel Gougeon) Date: Sat, 02 Mar 2013 21:24:27 +0100 Subject: [Users-fr] Dimensionner la pile Java <= Re: Afficher une image de 2048 par 2048 In-Reply-To: <1362136154977-4026103.post@n3.nabble.com> References: <20130228225505.83676us1w82cthgk@entmail1.univ-lemans.fr> <512FEB3F.3020301@free.fr> <1362127534494-4026095.post@n3.nabble.com> <1950481605.1994732.1362131438137.JavaMail.root@zimbra75-e12.priv.proxad.net> <1820508312.2075526.1362132982320.JavaMail.root@zimbra75-e12.priv.proxad.net> <1362136154977-4026103.post@n3.nabble.com> Message-ID: <51325FFB.3000504@free.fr> Le 01/03/2013 12:09, laurent berger a écrit : > .../... > c'est la limitation mémoire de la JVM 32 bits je crois bien. La pile utilisable par Java est dimensionnée dans le fichier SCI\etc\jvm_options.xml :