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 PHP Discussion :

comment faire 4 traitements en multi-core / parralélisme? [Fait]


Sujet :

Langage PHP

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 347
    Points : 136
    Points
    136
    Par défaut comment faire 4 traitements en multi-core / parralélisme?
    bonjour,

    j'ai 4 boucles dans mon script, chacun bidouille des données indépendantes et sont relativement longues (tableaux associés n dimensions) à s'exécuter.

    comment faire (quelle syntaxe PHP) pour que PHP utilise les 4 coeurs de mon CPU pour faire ça en parrallele plutôt que les 4 à la suite ?

    Une fois que c'est 4 boucles sont terminées, je souhaite reprendre l'exécution normale de mon script.

    comment faire ?

    y-a-t-il une syntaxe particulier genre :

    use cpu(1){
    foreach....
    }
    use cpu(2)
    {..}
    use cpu(3)
    {..}
    use cpu(4)
    {..}
    on finish_cpu (1,2,3,4)

    {
    echo "a yé c'est fini";
    }

  2. #2
    Membre averti
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Points : 344
    Points
    344
    Par défaut
    Salut,

    Euh, il ne me semble pas que ce soit possible, dans le cadre d'un seul script. Ton script va utiliser une instance de PHP. C'est donc un seul core qui sera utilisé.

    Si tu veux pouvoir séparer cela, il va te falloir créer 4 scripts, et les lancer avec 4 instances différentes de php. Et dans ce cas, tu as des chances qu'il utilise les 4 cores.

    Mais je doute fortement que tu puisse spécifier dans le cadre d'un script quel core utilisé...

    Onet

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 347
    Points : 136
    Points
    136
    Par défaut ok
    mouaisss...pas réjouissant ça !

    le problème c'est que je vais devoir ruser pour transmettre les variables/résultats entre les script !

    encore un truc que Visual Studio peut faire et pas PHP

  4. #4
    Membre averti
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Points : 344
    Points
    344
    Par défaut
    Citation Envoyé par USA Mike Voir le message
    mouaisss...pas réjouissant ça !

    le problème c'est que je vais devoir ruser pour transmettre les variables/résultats entre les script !

    encore un truc que Visual Studio peut faire et pas PHP
    Euh...

    Visual studio, c'est bien un IDE ? Et PHP un langage de programmation? Quel est le rapport entre les 2 ???

    Onet

  5. #5
    Membre averti Avatar de Neroptik
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2005
    Messages
    337
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2005
    Messages : 337
    Points : 402
    Points
    402
    Par défaut
    +1 je ne vois pas le rapport ...

    PHP gère le multithread (apparemment seulement sous Unix/Linux a mois d'utiliser Ajax et de lancer plusieurs scripts simultanément) :
    http://www.chrogeek.com/2008/08/mult...es-techniques/
    et
    http://www.noisette.ch/wiki/index.php/PHP/Multithread

    Bonne lecture

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Un peu obscure pour moi mais :


    Pourquoi ne doit-on pas utiliser Apache 2 dans un environnement threadé multiprocesseur de production ?

    PHP est un mortier. C'est un mortier utilisé pour construire de belles applications web en utilisant beaucoup de bibliothèques ensemble, apparaissant comme une seule entité à travers un langage intuitif et facile à apprendre. La flexibilité et la puissance de PHP se fondent sur la stabilité et la robustesse de la plate-forme fondamentale. Il a besoin d'un OS qui fonctionne, d'un serveur web qui fonctionne et de bibliothèques externes pour coller le tout. Lorsqu'un seul de ces éléments arrêtent subitement de fonctionner, PHP doit identifier le problème et le réparer au plus vite. En rendant le cadre fondamental plus complexe en ne séparant pas les exécutions des threads, ni les segments mémoires, ni un endroit clos pour traiter chaque requête entrante, des pieds d'argile sont introduits dans le système PHP.

    Si vous pensez que vous devez utiliser un MPM threadé, regardez du côté d'une configuration FastCGI dans lequel PHP s'exécute dans son propre espace mémoire.

    Et finalement, cette mise en garde contre les environnements MPM threadés n'est pas aussi forte pour les environnements Windows, où les bibliothèques sont mieux threadées.
    http://uk2.php.net/manual/fr/faq.installation.php

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/10/2011, 12h05
  2. [Débutant] comment faire un traitement en sequence
    Par hardman dans le forum Images
    Réponses: 4
    Dernier message: 23/08/2009, 11h49
  3. Comment faire du traitement d'image avec C?
    Par The-msx dans le forum Débuter
    Réponses: 12
    Dernier message: 29/07/2008, 14h41
  4. Comment faire du traitement d'images avec C?
    Par The-msx dans le forum C
    Réponses: 5
    Dernier message: 07/07/2008, 10h05
  5. Comment faire une requête "AJOUT" multi-tables ?
    Par jinnk dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/01/2008, 09h26

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