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

Delphi Discussion :

Delphi et multi processeur


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Par défaut Delphi et multi processeur
    Bonjour,

    je fais tourner une application Delphi - Access sur un ordinateur multi processeurs, et je m'apercois que les processeurs ne sont pas pleinement utilisés (20 % chacun).
    Peut-on, depuis Delphi, gérer ces processeurs pour qu'ils soient utilisé plus efficacement?

    Merci pour vos réponses.

  2. #2
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    Salut!

    Je ne comprends pas le problème (je suis plutôt naïf de nature ).

    Si les cpu sont utilisés à 20% chacun, qu'est-ce qui n'est pas optimisé ? Quel serait le scénario optimal selon toi ?

    Je ne suis pas expert en la matière, mais je crois que c'est à l'OS de gérer l'utilisation des cpu dont il a la responsabilité. Je sais que si ton appli est multi thread, c'est plus facile pour lui de décider de faire rouler un des thread dans un cpu particulier par exemple.

    Peut-être qu'en fouillant dans la classe TThread on y trouverait une manière de spécifier le cpu à utiliser mais j'en doute...


  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Par défaut
    Le probleme c'est que mon traitement tourne pendant 35 heures. Et qu'on s'est aperçu que les processeurs n'étaient utilisé qu'a 20% chacun. Donc peut etre qu'en étant utilisés à 80% le traitement irait plus vite.

    Cela dit je doute que ce soit possible à réaliser.
    Et peut etre que ce sont les temps d'acces à la base (le traitement consiste en un chargement de données dans une base) qui sont longs.

  4. #4
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    Salut!

    Est-ce que c'est ton appli qui ne prend que 20% du cpu ou est-ce que c'est la somme de tous les process qui ne prennent que 20% ? En d'autres mots, est-ce que tu vois un autre process ralentir ton appli ? Si c'est le cas tu pourrais peut-être augmenter la priorité du process de ton appli.

    Mais à mon avis, le problème est dans quelque chose d'autre que le travail cpu comme l'accès aux disques ou aux autre ressources. Exemple : fais une appli qui calcule des factoriels à l'infini. Je te garantis que le cpu va taper dans le fond pendant 35 heures!


  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Par défaut
    C'est la somme des processus qui prend 20 %.
    Sur chacun des graphique (dans l'onglet performance du gestionnaire des taches) de performance, je vois que chacun des proc est utilisé a 20 %.

    Donc je me demandais si Delphi pouvait demander au proc d'utiliser un peu plus de CPU pour le traitement.

  6. #6
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    Quel est le taux de l'occupation CPU sur un système mono-processeur ?

    Je pense comme slimjoe que le peu d'utilisation des CPU est lié plus aux accès disque ou réseau, pendant lesquels la(les) CPU est(sont) en attente, qu'à l'aspect multi-processeur.

  7. #7
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Je ne suis pas un spécialiste en la matière, alors je vais peut-être dire une bétise, mais selon moi, le multiproc (ou multi-core) sert à partager les ressources (multithread) et non pas doubler ou quadrupler la puissance de calcul...

  8. #8
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Comme l'on dit certain, si tes processeurs ne sont pas utilisés à 100% c'est qu'il y a un endroit de ton programme qui bloque/ralenti ton traitement.
    Donc le problème peut venir :
    • Des données sources de la mise à jour
    • De la destination des données de mise à jour
    • Du code qui est pas correct, qui pourrait être simplifié et optimisé


    Pour ma part, base de données ACCESS trop grosse = ralentissement
    Et plus elle va grossir et plus ca va encore ralentir, jusqu'à sa limite de taille de 2go.

    Mais j'aimerai quand même savoir ce que tu fais pour que le traitement dure 35h.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  9. #9
    Membre éclairé

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Par défaut
    Citation Envoyé par Malatar
    Comme l'on dit certain, si tes processeurs ne sont pas utilisés à 100% c'est qu'il y a un endroit de ton programme qui bloque/ralenti ton traitement.
    Donc le problème peut venir :
    • Des données sources de la mise à jour
    • De la destination des données de mise à jour
    • Du code qui est pas correct, qui pourrait être simplifié et optimisé


    Pour ma part, base de données ACCESS trop grosse = ralentissement
    Et plus elle va grossir et plus ca va encore ralentir, jusqu'à sa limite de taille de 2go.

    Mais j'aimerai quand même savoir ce que tu fais pour que le traitement dure 35h.
    Ma base compactée atteint deja 1.7 Go, donc ca vous donne une idée de la taille des données importées.
    Et en amont de cet import, il y a toute une série de controles effectués sur les données. Et on ne peut pas passer outre ces controles. Donc le temps est partagé entre l'accès à la base Access et les contrôles.
    Dans la future refonte de l'application il est bien sur prévu de changer de SGBD.

Discussions similaires

  1. Réponses: 9
    Dernier message: 27/04/2011, 14h54
  2. Simulateur d'une architecture multi-processeur
    Par moustafa kurdi dans le forum Administration système
    Réponses: 1
    Dernier message: 30/01/2008, 07h37
  3. Réponses: 4
    Dernier message: 04/12/2007, 15h28
  4. Requête bloquée sur un poste multi processeur
    Par cfeltz dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/06/2007, 15h14
  5. [SYBASE]multi-processeur
    Par 6rose dans le forum Sybase
    Réponses: 7
    Dernier message: 05/07/2003, 21h01

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