• [^] # Re: Multicoeur ?

    Posté par . En réponse à la dépêche Intel libère TBB. Évalué à 2.

    « hum et tu fait comment pour modifier ton entier de maniere atomique (sans que plusieurs process quitte la boucle en meme temps) ? »

    En fait je ne vois pas trop où est le problème de threads quittant la boucle en même temps, étant donné que c'est ce qu'on veut. Plus exactement : si j'ai X threads à synchroniser, et que chacun a un boulot prenant grosso-modo le même nombre de cycles, alors je peux tenter une attente active pour réduire au maximum le temps de synchro. Ensuite, je n'ai plus qu'à avoir un pseudo code du genre


    volatile int n = NB_THREADS_TOTAL;
    /* début du thread : « fork » */
    /* boulot ... */
    n--; /* s'effectue atomiquement, sans risque de cafouillage car c'est un volatile int (on suppose un mécanisme de cohérence de cache) */
    while (n > 0);
    /* join(), ou bien suite du boulot à faire pour le thread */


    Évidemment, je ne donne que l'idée principale.