Forum Clubic

Station de calcul - Quel Linux ?

Salut,

Je suis biologiste et je programme sous WinDev des algorithmes d’analyse de séquences ADN…
Mon probleme c’est que ces calculs demandent énormément de puissance (j’ai grillé mon processeur au boulot, un P4@2.6Ghtz)… et prennent des plombes à se faire…
Je vais me monter un nouveau PC perso, a la fois pour utilisation normale (web, MP3, DVD, mule etc…) et aussi pour ces calculs…
On m’a conseillé un FX-62, Cm MSI, et d’installer deux HD, l’un pour booter XP, l’autre pour booter un Linux, ce qui permet “de tirer profit du double core, et d’utiliser les 64 bits completement, car XP ca il sait pas faire”…
Alors les questions :

  1. Avez-vous une autre lumineuse idée au point de vue matos (budget pas infini non plus)
  2. Quel Linux me conseillez-vous ?
  3. Avez-vous de bons liens qui permettraient à un débutant de tout comprendre sur Linux (les liens des FAQ ne marchent pas)…
  4. A-t-on besoin de deux HD ou y a-t-il une astuce pour avoir deux OS sur un seul HD ?
  5. au fait mon appli WinDev ca tournera sous Linux ?

Désolés, Oh vous grands qui savez tout sur les OS et ls Bios, d’avoir à vous quémander quelques réponses faciles (et en meme temps le jour ou vous aurez une maladie génétique vous serez content que mes trucs tournent…)

Merci beaucoup
A+

L’appli windev ne tournera pas sous linux, mais normalement si tu as tes sources, tu devrais arriver rapidement à la faire tourner.

Linux -> n’importe quelle version fera l’affaire.
On peut tout mettre sur un seul HD, et c’est proposé à l’installation de linux.

Mon budget est de 1500-2000€ pour la tour…

windev, c’est une appli de dev de quoi ? parce qu’a mon avis, si c’est du dev de logiciels, tu as kdevelop ou anjunta sous linux qui peuvent faire l’affaire :wink:

pour le disque dur, un seul suffit, mais il faut installer windoze en premier (et pas sur toute la place disponible bien sur :D), car en bon autiste, il se voit personne d’autre que lui et effacera ce qui permet de démarrer linux du disque dur.
alors qu’à l’installation de linux, s’il détecte un windows, il te proposera le choix au démarrage du PC (via un petit menu)

la plupars feront l’affaire, ce que je te conseille c’est de trouver une personne “qui s’y connait” dans ton entourage et de choisir le même que lui, comme ça en cas de problèmes, il pourra plus facilement t’aider !
sinon, les plus connus et les plus siimples sont :

(k)ubuntu, mandriva, suse , fedora

Le choix le plus important est celui de l’environement de bureau (gnome et kde pour les deux principaux/plus utilisés/plus simples) le mieux est de tester un LiveCD avec gnome et un avec kde et de choisir celui qui te plait le plus.

pour ton matos, rien de spécial, prends autant de ram que tu en as besoin (à priori, pour de la génétique, quand même un peu… je dirais 1 go au minimum) et surtout cherche dans les tests de carte mère une qui as une bande passante mémoire importante, car vu que tu travailleras sur des données volumineuses, les taux de transferts mémoire (en particulier la lecture) sont important !

Tu n’as pas besoin de 64 bits pour faire de la génétique sauf si

  • Tu as besoin de beaucoup de mémoire (plus de 2GB par application)
    *Tu es arrivé à optimiser ton code pour du 64 bits (tjrs possible)

Est ce que ton application est multithreadée ? Si oui, prend du multicore, sinon ça ne sert à rien. Dans tous les cas mieux vaux paralléliser ton appli.

mwarf, gnome pour du calcul, je suis pas trop pour, ça te bouffera inutilement des ressources :wink:
Vaut mieux un wm plus léger comme Xfce ou Icewm, sinon, un ami au CNRS me dit qu’il utilise Fedora (il fait à peu près le même truc que toi, sauf que lui il analyse les molécules en gros pour voir quelle molécule pour soigner quelle maladie :wink: ) avec Postgre comme BDD

faut arretez de déconner les enfanrts !

  1. un programme bouffe du cpu quand il s’en sert ! or jusqu’à preuve du contraire, gnome comme kde ne font rien si l’utilisateur ne fait rien !
  2. un programme bouffe de la mémoire ud moment qu’il est lancé ! je ne sais pas pour gnome, mais moi avec kde je suis à environ 150 mo, navigateur internet (firefox) et plusieurs applis importantes dans la barre des taches et la systray (kmail, amarok, kopete, kate, konsole, kpresenter actuellement pour une conso de 166 mo) or, avec 1go de mémoire, je pense qu’il lui en restera assez pour faire ce qu’il souhaite, ou alors c’est qu’il lui en fallait vraiment plus !
  3. le disque dur, n’en parlons même pas, de toute façon je ne pense pas que ce soit ça qui pose problème…(2 Go sur /usr avec une install debian assez complète, pas mal de logiciels supplémentaires et le lib de dev, pas mal de doc, les images et son qui vont avec le desktop, …)

Donc vos histoires de consomation et de wm legé, gardez les pour des k6-2 ou de celerons 300 !
Pour un PC actuel (proc >= 2ghz, memoire >= 1go, DD >= 100 go), kde et gnome font parfaitement l’affaire en terme de performances, quelle que soit l’utilisation !

Oui, d’accord, mais c’est pour du calcul partagé, donc un peu de ressource en plus, c’est beaucoup de temps de calcul en moins :wink:

OK merci…

Encore une précision : ca se fait comment, de multithreader une appli (WinDev c’est du développement d’applis, comme VB6)…
J’ai entendu parler de prog qui optimisent l’utilisation des deux cores (pour pas que l’un s’emmerde pendant que l’autre rame). Ca existe sous Linux ?

PS : avec un P4@2.6 et 1Go, ca a tourné tout le w-e à 100% (au moins pendant 36h) et le lundi rien ne marchait plus… grillé et la Cm avec.
C’est un peu comme si vous demandez a votre PC de faire tourner 1 jeu récent, plus internet pendant que vous convertissez du MP3, downloadez, et gravez un DVD…

PS : Sur le serveur au boulot, qui est un quadricore (ai pas les details ici) camarche bien mais ca prend qques heures quand meme (et ne pensez meme pas a envoyer un mail en meme temps)

A+

Le 64bits pour le 64bits ne sert effectivement pas a grand chose pour le moment, mais c’est surtout que les amd64 sont très performant, même en 32bits et ne chauffent pas tant que ca (donc tu as peut de chance de le griller).

Pour le multi-core, je ne m’y connais pas assez pour te conseiller. Mais ca marche grossierement de la même facon sous windows et linux grace aux multithreads (là ca depend de comment l’appli a été developpé, mais il y a des chances que, pour des appli specifiques à ce genre de taches, l’optimisation multi-cores soit presente).

Windev, c’est une plateforme de developpement pour faire des appli uniquement sous windows ? Parce que si c’est pour faire du C/C++ ou tout autre langages portables, tu peux aussi traveiller sous linux.

Pour installer windows et linux sur le même disque dur, ce nest pas compliqué: installe d’abord windows, puis linux.

C’est pas vraiment le compilo ou la plateforme de dev qui va faire grand chose dans ton cas… il faut que tu codes en multithreade or Windev n’est vraiment pas fait pour ca…
Je connais un peu windev, c’est plus fait pour des applis de gestion (du moins, des trucs un peu bateaux qui doivent etre faits tres vite) et pas vraiment pour du calcul et des applis reclamant de la performance.
A mon avis, si tu veux vraiment gagner en temps de calcul pour tes algo, il faut que tu passes a un autre langage plus “serieux” (enfin, plus “bas niveau” - note les guillemets) comme le C, C++, etc. Rien que ca te ferais gagner vraiment beaucoup de temps de calcul (de quel ordre ? 2, 3, 10, plus ??) mais tu y perdras indeniablement en facilite de developpement.
Ensuite, pour tirer parti d’un proc bi core ou hyperthreadé, il faut optimiser le code pour. C’est un vrai travail en soi et c’est pas facile…

je pense que c’est plutot le ventilo qui etait bien trop leger voire mal positionne…
Un proc ne crame pas comme ca quand meme…
Investit dans un bon radiateur (cuivre massif) et plusieurs tres gros ventilos (120mm) dont un sur le proc bien sur et les autres dans la tour. Ca fera du bruit mais bon… :neutre:

Windev est une espece d’enorme machin pour faire du dev a vitesse mega grand V. Ca fait des applis en 4 coups de cuillere a pots en langage maison windev (un pascal derive ?) ou dans d’autres langages de tres haut niveau.
Les dernieres versions peuvent produire des applis en Java donc multiplateformes.
Mais la contrepartie est qu’il faut oublier les notions de tuning ou d’optimisation.
C’est fait pour coder vite et pour ne coder que le strict minimum (autrement dit, juste les aspects metier… le reste est genere tout seul) et ca le fait tres tres tres bien.
C’est comme utiliser Dreamweaver pour faire un site tout en HTML : c’est fait vite, a la souris et c’est choli mais vive la soupe de balises…

Pour une fois que je trouve qlqn qui fait du calcul numérique intensif sur ce forum, je n’ai pas de chance : tout a été dit :frowning:

En résumé :

  1. N’importe quelle distribution fera l’affaire.
  2. Dans le monde du “gros calcul”, le C et le fortran reigne en maîtres. Le C++ arrive lentement avec des lib comme Blitz++. Bref, si tu as vraiment besoin de puissance pure de calcul, il va falloir coder dans l’un de ses langages. Ocaml peut aussi s’envisager car il produit du code très efficace quand il s’agit de “reconnaitre une séquence dans une autre”.

Bref, on ne peut pas tirer des perrformances honnètes de nos machines actuelles sans mettre les mains dans des langages et des ruses d’un niveau déjà assez haut.

Windev n’est absoluement pas fait pour écrire des codes de calculs intensif.

Je te conseille de donc de demander à des “numériciens” de t’aiguiller en fonction du type de calculs que tu fais (je serais intéressé. en pv si tu veux).

Pour tout le monde : Python est aussi apprécié dans un nombre croissant de labos. des modules comme scipy/numpy sont vraiment excellent : on accède très facilement à des fonctions codées en C/fortran (donc c’est très rapide) et on gagne un temps de développement énorme en écrivant le reste (le I/O par exemple) en python.
Le plus beau c’est quand maxima produit un résultat symbolique, que le ‘eval’ de python le transforme en une fonction et que les wrapper C/Fortran font le reste : On code en 1/2 journée ce qui avait pris plus d’un semaine à faire en C pur…et les perfs sont les même. Vive python.

Fakbill: le hic de python c’est que l’interpréteur n’est pas multithreadé, donc pour une appli multithreadée, il re-sérialise les opérations.

Je ne sais pas si c’est toujours d’actualité - quelqu’un confirme ?

seb_dl:
Faire un thread ou un fork c’est créer plusieurs “sous programmes” à ton programme. Et ces programmes vont s’exécuter de manière parallèle (et donc non séquentielle)
Tu peux donc accélerer les choses avec plusieurs processeurs :

Exemple bateau; tu dois calculer la somme des nombres 0 à 10

En monoprocess/monothread tu fais
1+2+3+4+5+6+7+8+9+10
Temps en O(n)

Avec 2 threads/2 process tu fais
Thread1 : r1=1+2+3+4+5
Thread2: r2=6+7+8+9+10
Et ensuite tu fais
résultat=r1+r2
Temps en O(n/2)

Si tu as 2 CPU/2cores les deux threads vont s’éxécuter réellement en parrallèle, et donc tu vas diviser le temps de calcul par 2.
Si au contraire tu n’as qu’un CPU, le meilleur algorithme est le premier (légèrement meilleur -> baisse de la charge système)

Sinon il y a une formule mathématique toute prête pour calculer le résultat en 1 opération (temps en O(1) :wink:

Sur des calculs plus différents tu peux gagner encore plus de temps (temps divisé par le nombre de thread au carré/au cube … )

moarf ! ils se font plaisir les matheux !! :paf:

en même temps je le comprend le seb… moi qui suis pas matheu ni dev je code des brutes force en perl :paf:

le premier qui insinue que perl c’est lent se prend un happy slapping par un lapin-garou rabique :grrr:

:ane:

spa perl qu’est lent… c’est brute forcer 7 caractéres alphanumérique pour trouver un md5 en perl sous windows qu’est lent :paf: :ane: