Programmation et SSD ....

Programmation et SSD .... - C++ - Programmation

Marsh Posté le 16-10-2010 à 21:30:58    

Bonjour,
 
J'utilise souvent MATLAB. Voici une petite présentation : http://fr.wikipedia.org/wiki/MATLAB
Et les calculs que j’effectue sur mon ancien PC prenaient entre 6 à 7 jours, car ce sont des calculs plutôt balaises...
 
Ma nouvelle configuration qui est très récente (>1mois) et qui a été monté par mes soins avec l'aide de personnes de ce forum ( http://www.materiel.net/panier.nt. [...] IxIjt9fQ== ) permet désormais de réaliser les calculs en 3 jours.
 
Je pense donc à l'achat d'un SSD. Mais dans mon cas, cela sera t-il vraiment utile ? Et va t-il vraiment augmenter la rapidité des calculs ? (car je ne sais pas si c'est de l'écriture/lecture)
 
Merci d'avance !
 
(P.S. : je ne sais pas si je suis dans la bonne catégorie donc excusez moi)


Message édité par duddy2 le 16-10-2010 à 21:35:54
Reply

Marsh Posté le 16-10-2010 à 21:30:58   

Reply

Marsh Posté le 17-10-2010 à 08:45:03    

Euh, ça me laisse songeur le fait que tu ne saches pas ce que fait ton programme.
 
On va dire que si tu ne fais pas d'opérations lourdes de fichiers et que tu ne swap pas, ça te sert à rien un SSD.
 
Tu as déjà épuisé toutes les possibilités d'optimisation / parallélisation de ton programme pour en être arrivé à acheter du matériel ?

Reply

Marsh Posté le 17-10-2010 à 10:32:45    

En effet c'est une question complètement débile... puisque mon programme fait des opérations lourdes et du swap...
 
Merci de ta réponse !

Reply

Marsh Posté le 17-10-2010 à 11:05:27    

Ce que tu peux aussi faire, si tu as absolument besoin de vitesse de swap de l'ordre de celle d'un SSD, sans les inconvénients de la ré-écriture des SSD modernes, c'est d'acheter un disque DRAM, et de mettre le swap et les répertoires de fichiers temporaires de calcul dessus, mais c'est une solution professionnelle, assez coûteuse.
Le ANS-9010B de ACard qui permet d'avoir un disque S-ATA II avec jusqu’à 24 Go en barettes mémoires DDR2 et coute 300$ + le prix des barettes (on peut monter 32Go (ou 2x16Go en raid) avec le ANS-9010, mais pour un coût quasi doublé: 550$ + les barettes) est plutôt ce qui a le meilleur rapport qualité/prix dans le genre
A+,


Message édité par gilou le 17-10-2010 à 11:16:13

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 17-10-2010 à 23:01:32    

@Gilou : merci de ta réponse mais 500E c'est la moitié du prix de mon nouveau PC, puis bon ce n'est pas une nécessité mais juste un confort d’accélérer la vitesse des calculs afin d'avancer plus vite sur mon travail (et je doute que l'université accepte d'investir dans un matériel pareille !)
 
@-flanker-- : j'ai la version r2009a donc pas l’accélération CUDA mais je crois que je peux l'ajouter en plug-in : ( http://developer.nvidia.com/object/matlab_cuda.html ) =) ! Mais pour ce qui est des coeurs, Matlab ne partage pas automatiquement les tâches sur tout les coeurs :O ?! Surotut que j'en ai lancé 3 en même temps ... (je vérifierai sa ce week-end pour le partage sur les coeurs, car je ne suis plus chez moi)
D'ailleurs sa devait être beau à voir le partage des tâches sur les coeurs de tous les PC en réseaux !
Puis pour l'investissement sur un nouveau processeur sa va être dure vu que celui-ci date de septembre ...

Message cité 1 fois
Message édité par duddy2 le 17-10-2010 à 23:12:47
Reply

Marsh Posté le 18-10-2010 à 09:34:57    

Salut,
Avant d'investir massivement dans du hardware, moi je contrôlerais ton code Matlab.
En effet, j'ai déjà vu souvent des codes Matlab écrits "à la C", c-a-d en utilisant des suites de petites opérations, de "if else", de boucles, alors que ça a un impact catastrophique sur les perf du code.  
Niveau parallélisation des calculs sur plusieurs cores/CPUs, ça dépend du calcul en fait. Si tu fais des boucles, point de salut, ça ne sera pas parallélisé. Si tu fais des opérations matricielles, il va tenter de le faire.
 
Fait aussi attention au cas où ton code utilise des toolbox, parce que certaines ne sont pas utilisables dans un cadre parallélisé. Par exemple, la toolbox Simulink, implémente une gestion de la parallélisation assez spéciale... et pas forcément super intuitive au début


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 19-10-2010 à 17:45:14    

duddy2 a écrit :

@Gilou : merci de ta réponse mais 500E c'est la moitié du prix de mon nouveau PC, puis bon ce n'est pas une nécessité mais juste un confort d’accélérer la vitesse des calculs afin d'avancer plus vite sur mon travail (et je doute que l'université accepte d'investir dans un matériel pareille !)
 
@-flanker-- : j'ai la version r2009a donc pas l’accélération CUDA mais je crois que je peux l'ajouter en plug-in : ( http://developer.nvidia.com/object/matlab_cuda.html ) =) ! Mais pour ce qui est des coeurs, Matlab ne partage pas automatiquement les tâches sur tout les coeurs :O ?! Surotut que j'en ai lancé 3 en même temps ... (je vérifierai sa ce week-end pour le partage sur les coeurs, car je ne suis plus chez moi)
D'ailleurs sa devait être beau à voir le partage des tâches sur les coeurs de tous les PC en réseaux !
Puis pour l'investissement sur un nouveau processeur sa va être dure vu que celui-ci date de septembre ...


Si ca bouffe pas _trop_ de RAM (ou que tu as _beaucoup_ de RAM) tu peut faire un swap disk en RAM. En tous les cas sous Linux, mais c'est peut etre possible sous windows.
 
Tu paramètres matlab pour utiliser ce swap disk (qui est en ram) et hop ca va 1000 fois plus vite  :love:  
Tout dépend bien sur, de la taille de la RAM nécessaire. Mais j'utilise des machines de 48Gig, donc bon ca existe  :jap:


---------------
Un blog qu'il est bien
Reply

Marsh Posté le 19-10-2010 à 20:36:35    

esox_ch a écrit :

Salut,
Avant d'investir massivement dans du hardware, moi je contrôlerais ton code Matlab.
En effet, j'ai déjà vu souvent des codes Matlab écrits "à la C", c-a-d en utilisant des suites de petites opérations, de "if else", de boucles, alors que ça a un impact catastrophique sur les perf du code.  
Niveau parallélisation des calculs sur plusieurs cores/CPUs, ça dépend du calcul en fait. Si tu fais des boucles, point de salut, ça ne sera pas parallélisé. Si tu fais des opérations matricielles, il va tenter de le faire.
 
Fait aussi attention au cas où ton code utilise des toolbox, parce que certaines ne sont pas utilisables dans un cadre parallélisé. Par exemple, la toolbox Simulink, implémente une gestion de la parallélisation assez spéciale... et pas forcément super intuitive au début


 
Et tant bien même, le //isme matlab reste basé sur du fork/join de process :s

Reply

Marsh Posté le 20-10-2010 à 00:12:37    

guepe a écrit :


Si ca bouffe pas _trop_ de RAM (ou que tu as _beaucoup_ de RAM) tu peut faire un swap disk en RAM. En tous les cas sous Linux, mais c'est peut etre possible sous windows.
 
Tu paramètres matlab pour utiliser ce swap disk (qui est en ram) et hop ca va 1000 fois plus vite  :love:  
Tout dépend bien sur, de la taille de la RAM nécessaire. Mais j'utilise des machines de 48Gig, donc bon ca existe  :jap:

En général, quand tu as des problèmes de swap, c'est déja que tu as besoin de toute ta mémoire nécessaire (et que comme tu n'en as pas assez, tu swappes). Alors la réduire pour créer un RAM disque n'est pas top. Par contre, un (couteux) disque DRAM dans ce cas la améliore les chose, a une vitesse limitée par le débit de l'interface, mais de toute façon plus rapide qu'un disque mécanique.
Un RAM disque, c'est utile si tu n'as pas de pbs de swap pour l’exécution de ton programme, et que celui ci a besoin de faire de nombreuses lectures/écritures dans un fichier temporaire.
 
Bon, sous Windows Vista 32 bits, comme la quantité de mémoire utilisable maximale est de 4 gigas, si on a plus sur sa machine, on est dans un cas de figure ou faire un RAM Disque avec la mémoire supplémentaire inutilisée est une bonne option.
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 20-10-2010 à 11:48:26    

gilou a écrit :

En général, quand tu as des problèmes de swap, c'est déja que tu as besoin de toute ta mémoire nécessaire (et que comme tu n'en as pas assez, tu swappes). Alors la réduire pour créer un RAM disque n'est pas top. Par contre, un (couteux) disque DRAM dans ce cas la améliore les chose, a une vitesse limitée par le débit de l'interface, mais de toute façon plus rapide qu'un disque mécanique.
Un RAM disque, c'est utile si tu n'as pas de pbs de swap pour l’exécution de ton programme, et que celui ci a besoin de faire de nombreuses lectures/écritures dans un fichier temporaire.
 
Bon, sous Windows Vista 32 bits, comme la quantité de mémoire utilisable maximale est de 4 gigas, si on a plus sur sa machine, on est dans un cas de figure ou faire un RAM Disque avec la mémoire supplémentaire inutilisée est une bonne option.
 
A+,


 
sous windows 32 bits, c'est 3 go de ram utilisable max :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 20-10-2010 à 11:48:26   

Reply

Marsh Posté le 20-10-2010 à 14:38:35    

Pas tout a fait: c'est 4Go adressable, moins ce que bouffent des zones réservées pour communiquer avec les périphériques. Ca doit plutôt tourner aux alentours de 3.4 ou 3.5 Go
En fait, il y a moyen d'adresser plus, mais il faut que le code soit écrit de manière spécifique et fasse appel aux fonctionnalités PAE (Physical Address Extension), ce qui est relativement rare.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 20-10-2010 à 16:05:22    

3Go max, et encore ... C'est avec une option de configuration à la compilation et une option dans l'OS pour permettre aux applications d'utiliser 3Go. Sinon, par défaut, c'est 2Go. Le reste est réservé.


---------------
last.fm
Reply

Marsh Posté le 20-10-2010 à 16:37:50    

Oui, mais la on ne précisait pas pour un programme. Je regardais ce qui est bouffé par l'ensemble, et donc (par soustraction) ce qui reste éventuellement pour un RAM Disk qui n'impacterait pas les perfs.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 21-10-2010 à 14:43:19    

duddy2 a écrit :

En effet c'est une question complètement débile... puisque mon programme fait des opérations lourdes et du swap...
 
Merci de ta réponse !


Rajoute de la RAM. Tant que tu swapes, c'est la mise à jour de matériel la moins chère et la plus efficace.

Reply

Marsh Posté le 21-10-2010 à 14:43:50    

guepe a écrit :

Si ca bouffe pas _trop_ de RAM (ou que tu as _beaucoup_ de RAM) tu peut faire un swap disk en RAM. En tous les cas sous Linux, mais c'est peut etre possible sous windows.


D'autres conneries de ce genre ?

Reply

Marsh Posté le 22-10-2010 à 22:57:21    

Ok, j'ai transmis tout vos conseils à mon père. Mais il m'a dit que le calcul est déjà optimisé à 100% donc à ce niveau là y'a pas de problème.
 
Et donc si j'ai bien compris ce qui a été dis au cours de cette discussion, c'est qu'un SSD ne servira à rien et qu'il suffit juste d'avoir une bonne quantité de mémoire avec de bonnes fréquences ?
 
( http://forum.hardware.fr/hfr/Hardw [...] 6732_1.htm )

Message cité 1 fois
Message édité par duddy2 le 22-10-2010 à 23:01:57
Reply

Marsh Posté le 22-10-2010 à 23:05:41    

duddy2 a écrit :

Ok, j'ai transmis tout vos conseils à mon père. Mais il m'a dit que le calcul est déjà optimisé à 100% donc à ce niveau là y'a pas de problème.
 
Mais j'ai lancé une discussion ici : http://forum.hardware.fr/hfr/Hardw [...] 6732_1.htm
(la flemme de tout redire ^^" )
Et donc si j'ai bien compris ce qui a été dis dans la discussion : un SSD ne servira à rien, et il suffit juste d'avoir de la bonne quantité de mémoire avec de bonnes fréquence ?


Comme déja dit, si pas d'operations lourdes sur des fichiers, le SSD ne sert à rien.
Tout miser sur le CPU et la ram pour avoir une puissance de calcul élevé.
Prendre le core 7 à tout prix donc, l ati 5770 pour matlab je vois pas trop ce qu elle vient faire la.
Si ca te fait encore trop cher, sacrifie un peu sur tes 8go de mémoire " bicanale" 2x4go. Apparemment Dell ne propose que le même type de mémoire DDR3 de toute façon.


Message édité par Taliesim le 22-10-2010 à 23:16:16
Reply

Marsh Posté le 23-10-2010 à 01:12:59    

Le CPU avant tout, en ce qui concerne la RAM, il suffit de regarder son état durant les calculs, si tu as 2go sur 4 d'utilisés je ne vois pas pourquoi upgrader à 8gigots

Reply

Marsh Posté le 23-10-2010 à 16:25:52    

Ok merci pour vos 2 réponses ! C'est noté...  
 
Mais mon père a découvert hier soir que l'Université à changer de partenaire et travaille desormais avec HP (la marque la plus pourrie sur le marché informatique...)
Du coup, le meilleur modèle qu'ils ont sur leur site c'est cette merde là ... http://h10010.www1.hp.com/wwpc/fr/ [...] 12928.html
Il essayera de négocier pour effectuer son achat sur Dell mais sans grand espoir...dommage
 
Je vous tiens au courant !


Message édité par duddy2 le 23-10-2010 à 16:32:46
Reply

Marsh Posté le 24-10-2010 à 17:00:07    

Il essaie de remplacer un HP par un Dell?  
C'est clair que Dell est spécialisé dans les ordi de bureau haute performane :heink:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 24-10-2010 à 17:38:50    

euh oui :€ les Precision Q7xxx sont de vrais bombes


Message édité par Joel F le 24-10-2010 à 17:38:56
Reply

Marsh Posté le 24-10-2010 à 18:40:40    

C'est quoi pour des PC? Je les trouve même pas sur le site :s


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 24-10-2010 à 21:41:39    

Mais, vous n'avez pas de cluster à votre disposition dans votre fac? C'est quelle université???
Pour faire des calculs aussi longs, tu dois être stagiaire ou doctorant dans un labo. Le labo devrait avoir une machine à te prêter, non?
Bref, je ne comprends pas pourquoi c'est toi qui doit payer une machine pour faire des calculs (chez moi, j'ai un pc "classique" pour faire les essais, ensuite je me connecte à la fac par vpn pour lancer les vrais calculs sur cluster ou sur des machines possédant plusieurs processeurs et cartes tesla).
Sinon, chez hp, il y a aussi des stations de travail avec plusieurs xéon, mais ce n'est pas le même prix et il vaut peut-être mieux les appeler directement.

Reply

Marsh Posté le 24-10-2010 à 22:57:58    

Bon je m'explique, mon père est professeur à l'IUT de Saint-Nazaire dans le Génie civil, et une de ses doctorantes efectue des calculs compliqués sur Matlab via le PC du labo.
Mais le labo va changer ce PC car il lui met un écran bleu avec pour message d'erreur "Out of memory" quand le calcul devient beaucoup trop lourd. Du coup, mon père n'ayant aucune compétence dans le choix du matériel informatique, il m'a demandé conseil. Voila tout ...
Mais l'achat se fera chez Hp, et ce ne sera pas des Xeons..... Quand à l'achat le labo ne veut pas investir au-delà de 1500E... Donc ce que je lui ai dit de prendre, c'est cela :
i7 880 en premier choix ou sinon i7 870 en deuxième choix si y'a pas.
Pour la mémoire : 2*4Go en premier choix ou 4x2 GO en deuxieme si y'a pas ou sinon 2x2 Go dans le pire des cas.
Pour ce qui est du vpn, je sais quand même ce que c'est puisque mon père l'utilise à la maison.
 
Si il y a des clusters à l'IUT se serait superbe, faudrait que je dise à mon père de se renseigner car il ne sait pas...
 
Je vous tiens au courant dès que j'ai des nouvelles....

Message cité 1 fois
Message édité par duddy2 le 25-10-2010 à 11:15:32
Reply

Marsh Posté le 25-10-2010 à 13:18:07    

duddy2 a écrit :

Bon je m'explique, mon père est professeur à l'IUT de Saint-Nazaire dans le Génie civil, et une de ses doctorantes efectue des calculs compliqués sur Matlab via le PC du labo.
Mais le labo va changer ce PC car il lui met un écran bleu avec pour message d'erreur "Out of memory" quand le calcul devient beaucoup trop lourd. Du coup, mon père n'ayant aucune compétence dans le choix du matériel informatique, il m'a demandé conseil. Voila tout ...
Mais l'achat se fera chez Hp, et ce ne sera pas des Xeons..... Quand à l'achat le labo ne veut pas investir au-delà de 1500E... Donc ce que je lui ai dit de prendre, c'est cela :
i7 880 en premier choix ou sinon i7 870 en deuxième choix si y'a pas.
Pour la mémoire : 2*4Go en premier choix ou 4x2 GO en deuxieme si y'a pas ou sinon 2x2 Go dans le pire des cas.
Pour ce qui est du vpn, je sais quand même ce que c'est puisque mon père l'utilise à la maison.
 
Si il y a des clusters à l'IUT se serait superbe, faudrait que je dise à mon père de se renseigner car il ne sait pas...
 
Je vous tiens au courant dès que j'ai des nouvelles....


 
En même temps, est-ce que matlab pour faire de gros calculs, c'est le plus efficace? La V6 était en Java et ramait comme pas permis par rapport à la V5 :/ (c'était en 2002)
S'il faut faire de gros calcul, un petit programme en C avec la lib GSL et hop, ça devrait consommer moins de ressource et être plus rapide ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 25-10-2010 à 13:44:15    

Rufo, le truc c'est qu'on a pas forcément envie de se recoder les toolbox Matlab à chaque fois :o
Et que, suivant à qui tu demandes de coder ton truc en C, ça va ramer 10x plus qu'avec Matlab :bounce:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 25-10-2010 à 13:53:44    

esox_ch a écrit :

Rufo, le truc c'est qu'on a pas forcément envie de se recoder les toolbox Matlab à chaque fois :o
Et que, suivant à qui tu demandes de coder ton truc en C, ça va ramer 10x plus qu'avec Matlab :bounce:


 
Je sais mais il a pas précisé le type de calcul. Mettons que ça soit du calcul matriciel (au hasard) sur des très grosses matrices, du coup, c'est pas très compliqué de redévelopper le bousin sous la lib GSL et ça ira sans doute plus vite ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 25-10-2010 à 15:25:31    

/me pointe négligement vers sa signature :E

Reply

Marsh Posté le 26-10-2010 à 10:36:23    

\me se demande ce que Joel veut que OP fasse avec des cartes Magic

Reply

Marsh Posté le 26-10-2010 à 12:02:02    

l'autre morceau de la signature ^^

Reply

Marsh Posté le 28-10-2010 à 12:13:24    

Dans tous les cas en 32bits, t'ira jamais bien loin si t'as besoin de mémoire.

Reply

Marsh Posté le 28-10-2010 à 14:21:26    

Citation :

En fait, il y a moyen d'adresser plus, mais il faut que le code soit écrit de manière spécifique et fasse appel aux fonctionnalités PAE (Physical Address Extension), ce qui est relativement rare.

Et sous windows, en plus de configurer son kernel, il faut utiliseer l'API AWE
A+,


Message édité par gilou le 28-10-2010 à 14:22:08

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed