Inverser une matrice avec plusieurs processus

Signaler
Messages postés
1
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
29 avril 2009
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
Bonjour,

Pour un projet, je dois écrire un programme en C sous Linux qui permet d'inverser une matrice partitionnée, ie décomposer ma matrice en plusieurs sous matrices plus petites et faire les traitements sur ces sous matrices en utilisant fork, wait et exec de Linux.
Pour ce faire, j'établis un graphe d'exécution pour mes traitements qui portent sur ces sous matrices que je présente ci dessous :

A = A11     A12
       A21     A22

E1 : Calcul de  H= Inverse(A11)E2 : calcul parallèle de I A21*H     &   J H*A12
E3: Calcul de K= I*A12
E3: Calcul de L = Inverse(A22-K)
E5 : calcul parallèle de X= (H+J*L*I)     &   Y= -J*L  & Z = -L*I

Alors mes questions, et j'espère que vous allez m'aider, parce que jusque là j'ai pas eu d'aide sont les suivantes:

Est-ce que je dois , pour chaque traitement, créer un processus ?
Comment je peux lancer cet ordonnancement en utilisant les fork en ayant une coopération pére fils?
Je sais que le dialogue entre les fils et le pére se faire par pipe, mais j'arrive pas à avoir une vue générale sur le programme que j'vais faire.

Je vous demande votre aide et je vous remercie d'avance.

1 réponse

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Bienvenue,

Je crois qu'il peut s'avérer intéressant de créer des processus supplémentaires si et seulement si ils peuvent réaliser des calculs en parallèle avec ceux réaliser par le processus principal. Sinon, créer un processus et attendre qu'il ait fini pour lancer le processus suivant, aucun intérêt.

Processus principal                  processus additionel
calcul 1
résultat 1
calcul 2 (Nécessite résultat 1)
calcul 3                             calcul 4
résultat 3                           résultat 4
calcul 5 (Nécessite résultat 3 et 4)

résultat 5