paralléliser un traitement

Le
programmation
Bonjour,
J'ai une demande et j'ai besoin de vos aides. En réalité, J'ai fichier
XML "input.xml" de taille volumineux. Pour lire ce fichier, j'ai
utilisé la fonction 'lire_fichier(nom de fichier)'.
Dans mon cas, je dois décomposer ce fichier xml en plusieurs fichiers
XML selon des critères bien définis.
Supposons que N est le nombre de ces fichiers décomposés.

Je vais faire le même traitement X pour chacun de ces N fichiers

Voici une partie de code:

for(i=1;i <= N;i++)
{

sprintf(tmp,"input%d",i);
lire_fichier(tmp);
//le même traitement X
.

}



J'ai testé ce code sur ma machine alors ceci prendre beaucoup de
temps.

Mon but est d'avoir le temps d'exécution le moins possible.

Est ce que c'est possible d'avoir un temps plus longue si on a
travaille sur les N fichiers au lieu de travailler sur un seul fichier
ou bien ceci dépend d'autres facteurs?

Dans mon cas, est ce que le mécanisme de parallélisme est possible ?
c'est à dire on exécute chaque traitement sur une machine portant un
fichier et donc on va utiliser N machines ?
C'est à dire on lance le traitement en même temps. Mais, ceci garantie
que on va obtenir le résultat en un temps le moins possible ?

Que proposez vous ?

Merci.
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
marc
Le #20456261
On 30 oct, 11:34, programmation
....
Dans mon cas, est ce que le mécanisme de parallélisme est possible ?
c'est à dire on exécute chaque traitement sur une machine portant un
fichier et donc on va utiliser N machines ?
C'est à dire on lance le traitement en même temps. Mais, ceci garanti e
que on va obtenir le résultat en un temps le moins possible ?



Pourquoi "N machines" ?
Fais du multi-threading (n threads)
programmation
Le #20461081
> Pourquoi "N machines" ?
Fais du multi-threading (n threads)




Bonjour,

J'ai un fichier bien défini X et N fichiers Y de même format.

A chaque fois je compare le fichier X avec un de N fichiers. Donc j'ai
N comparaisons.

le but de comparaison est chercher les lignes qui existent dans X et
qui n'existent pas dans Y

Le principe de comparaison entre les deux fichiers X et Y:
on lit ligne par ligne de fichier X et on parcoure tout le fichier Y
s'il n'existe pas cette ligne dans Y alors on affiche cette ligne
etc ...

Voici un pseudo code :

<code type="c">
for(i=1;i<=N;i++)
while(fgets(s,100,X))
while(fgets(s,100,Y[i]))
//chercher les lignes qui existent dans X et qui n'existent pas dans Y

</code>

On a ici le même traitement :
chercher les lignes qui existent dans X et qui n'existent pas dans Y

Que proposez vous ?

C'est quoi le multi-threading (n threads) et comment adapter ceci à
mon cas ?

Merci.
Christian ASTOR
Le #20465471
On 31 oct, 17:39, programmation
C'est quoi le  multi-threading



1er lien :
http://msdn.microsoft.com/en-us/library/ms810438.aspx
Publicité
Poster une réponse
Anonyme