IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Temps de calcul


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Par défaut Temps de calcul
    Bonjour,

    je viens tout juste d'acquérir un nouvel ordi au boulot et je viens donc de transférer l'ensemble des scripts que j'ai déja écrit sur mon vieil ordi portable.
    Petit hic : ce nouvel ordinateur, beaucoup plus performant "sur le papier", à tous les niveaux (RAM, cadence du processeur, accessibilité du disque dur, etc, etc...) met beaucoup plus de temps à effectuer certains calculs. J'ai passé la journée à tester le temps d'exécution de différentes procédures et je pense avoir identifié une partie du problème. Il est beaucoup plus performant lorsqu'il s'agit par exemple de rechercher des expressions régulières, mais beaucoup plus lent pour lire les fichiers.
    Ainsi, lorsque je place mes séquences au format fasta (un format très utilisé en bioinformatique) dans un hachage, il met beaucoup plus de temps que mon ancien ordinateur. J'ai le même problème lorsque je dois gérer des tableaux. J'imagine que cela implique une gestion de la mémoire vive. J'ai essayé quelques manips, comme changer la priorité allouée à l'application perl.exe, mais cela ne semble pas changer grand chose.
    Si l'un d'entre vous a une idée lumineuse sur le sujet...
    Merci !

    Ci-joint le détail des deux configurations (je ne suis pas un specialiste des configs materielles, alors je donne les informations qui me paraissent importantes)

    1) "Brouette"
    AMD Athlon 64 X2 dual Core @ 2GHz
    2 Go memoire vive DDR2
    windows Vista SP1

    2) "New one"
    Intel core 2 due E 6750 @2.66 GHz
    4 Go memoire vive DDR2
    Windows XP SP2

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    optimisation rime aussi avec le code. Donc tu es peux être sur une machine très performante, mais si le script est mal écrit, bah ça changera rien.

    As tu des bouts de codes où tu estimes que c'est lent ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Par défaut
    Ce petit écueil m'a permit effectivement d'optimiser mes scripts et de ne plus recourir à l'utilisation à outrance des tableaux mais lire directement mes fichiers et les associer à des hachages. Mais tout cela ne m'explique pourquoi la gestion des tableaux est si lente sur cette nouvelle configuration. Et même si ça ne me gêne pas tellement sur mes scripts actuels, cela pourrait devenir gênant à terme pour des programmes plus exigeants.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Par défaut
    typiquement, voilà le genre de tâche sur laquelle la nouvelle machine prend approximativement quatre fois plus de temps à s'exécuter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    while (<IN>)
    	{
    		if ($_ =~ /^>/)
    		{
    			chomp($name = $_);
    			next;
    		}
    		else
    		{
    			chomp ($_);
    			$seqs{$name} .= $_;
    		}
    	}
    	close IN;
    Les fichiers traités sont des fichiers de sequence de la forme :

    >100_9980
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    >45678_89808789
    TTTTTTTTTTTTTTTTTTTTTT
    TTTTTTTTTTTT
    TTTTTTTTTTTTTTTTTTTTT

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    En parsant ainsi ton fichier fasta, tu le mets entièrement en mémoire au final.
    Sachant que tu peux te retrouver avec des séquences très très grande, je ne pense pas que ce soit une bonne façon de procéder.

    1- Est ce vraiment nécessaire d'avoir tout le fichier en mémoire ?
    2- Quel est le but de ton script ?

    Après ces réponses, on pourra l'optimiser

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Par défaut
    Cette procédure n'était qu'un exemple du problème posé. J'ai par ailleurs largement optimisé cette procédure. Désolé de revenir avec insistance sur les fondements du problème mais, pour être clair :

    Pourquoi cette tâche précise s'exécute-t-elle plus lentement sur cette nouvelle machine (même si je n'utilise PLUS ce genre de procédure !) ?

    J'aimerai comprendre...

Discussions similaires

  1. temps de calcul RSA
    Par othland dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 13/03/2006, 11h16
  2. Temps de calcul d'un algo
    Par Rémiz dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 23/12/2005, 13h52
  3. temps de calcul sius VC++ !!
    Par Axiome dans le forum MFC
    Réponses: 16
    Dernier message: 13/12/2005, 09h57
  4. Temps de calcul avec deux écrans
    Par Shaga dans le forum OpenGL
    Réponses: 2
    Dernier message: 14/11/2005, 09h24
  5. temps de calculs extremement long !!
    Par salseropom dans le forum C++
    Réponses: 9
    Dernier message: 19/01/2005, 20h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo