2011-03-13 19 views
0

J'essaie de multiplier 2 matrices ensemble en utilisant 1 thread pour chaque cellule de sortie.
J'utilise C++/g ++ sur unix.
Comment ferais-je cela? Puis-je le faire en boucle?
Multiplication matricielle utilisant des threads

+1

Sonne comme un devoir. –

+0

Ouais, c'est ma première mission avec des threads. – ohlegend

+1

Qu'avez-vous fait sur ce problème jusqu'à présent? –

Répondre

1

Voilà ma suggestion:

  1. Ecrire une fonction qui calcule une cellule de sortie. Donnez-lui des paramètres indiquant la cellule à calculer.
  2. Écrivez un programme monothread qui utilise une boucle pour calculer chaque cellule (appelant la fonction de "1"). Stockez tous les résultats et ne les écrivez pas tant que vous n'avez pas fini de calculer toutes les cellules.
  3. Modifiez le programme afin qu'au lieu de chaque boucle appelant la fonction, chaque boucle crée un thread pour exécuter la fonction.
  4. Déterminez comment faire en sorte que le programme "principal" attende que tous les threads soient terminés avant d'écrire tous les résultats.

Je pense que cela vous donnera une stratégie pour élaborer une solution, sans que je fasse vos devoirs pour vous.

Si cela vous tente et que cela ne fonctionne pas, postez votre code ici et les gens vous aideront à le déboguer. L'important n'est pas que vous ayez une bonne réponse, c'est à vous d'apprendre comment résoudre ce type de problème - donc cela ne vous aidera pas vraiment si quelqu'un vous donne la réponse.

Questions connexes