Utilisation de fork pour produit de matrices

Jérémy -  
 fattoum -
Comment paralléliser le calcul d'un produit de 2 matices carrées avec l'utilisation de fork (en langage C). La parallélisation doit être maximale?

Merci d'avance.

1 réponse

  1. thegimp Messages postés 2 Statut Membre
     
    Bonjour,

    Pour que la parallélisation soit max, il faut N au carré processus. (N fois N est la taille de la matrice). Chaque processus (i,j) calcule le produit scalaire de la ligne i dans la première matrice et la colonne j de la deuxième matrice.

    Produit_scalaire(int i, int j){
    ...
    }

    main(){
    ..
    for (i=0; i<N;i++)
    for (j=0;j<N;j++)
    switch(fork()){
    case -1 : perror("fork"); exit(1);
    case 0 : R[i](j] = Produit_Scalaire(i,j); exit(1);
    }
    while(wait(NULL)!=-1) ;
    }
    0
    1. fattoum
       
      la solution que vous avez proposé contient des ptit problémes.
      en fait la matrice résultat ne contien que des 0 et on ne peu pa récuperer le resultat
      y a -t-il d'autre proposition svp??
      merci d'avance
      0