Achetez et vendez votre matériel multimédia d'occasion sur notre service de petites annonces informatiques gratuites

Matériel annexe ou nouveau PC? Solution pour faire tourner plusieurs programmes (4 ou 8) de calcul (executable fait en c++) en même temps avec évidement des performances de rapidité.

Forum informatique > L'ordinateur ( Hardware ) > Matériel annexe ou nouveau PC? Solution pour faire tourner plusieurs programmes (4 ou 8) de calcul (executable fait en c++) en même temps avec évidement des performances de rapidité.

<<<1>>>

[Page 1 sur 1 - 4 messages]
Informations Messages

Tarfio

Avatar de Tarfio
2 messages
Neurone isolé
Neurone isolé

Lien direct Le 16 Juin 2011 à 11h06

Je dois réaliser un nombre important de calcul.
Pour moi, un calcul est l'exécution d'un programme (fait en C++ : et qui à mon avis tourne seulement sous windows) qui lit des fichiers bloc-note (quelques méga) et qui en écrit d'autre (quelque méga aussi). La durée d'un calcul varie d'une semaine à 3 mois, selon les conditions que j'impose et la machine utilisée (détails sur demande : caractéristique moyen de gamme d'aujourd'hui). Je pense avoir besoin de plusieurs processeur performants, d'un peu de ram et de capacité de stockage (quelque giga pour chaque total de résultats).

La question est : Est ce qu'il existe un matériel que l'on peu ajouter à un PC moins performant qui ne ferais que du calcul machine ? Quel serait le budget (en gros à une ou deux centaines d'euro pret) pour faire 4 ou 8 (ou 16) calculs en même temps ? Faut-il forcement un autre PC complet de compète ?
La question est peut être trop précise mais un début de réponse m'aiderai à savoir par ou commencer à réfléchir....

La rapidité du calcul n'étant pas prioritaire, l'idée serait surtout de pouvoir faire plein de calcul en même temps.

Merci,

 

Baal-Zebub

Avatar de Baal-Zebub
618 messages
Carte Mère
Carte Mère

Lien direct Le 16 Juin 2011 à 11h23

Bonjour et bienvenue a toi (un petit bonjour ça fait toujours plaisir =D)

Si j'ai bien compris ce que tu veux dire (mais j'en suis pas tout a fait sur) ce que tu appel un calcul serait a mes yeux un bloc d'instruction d'un "thread". En gros une liste de données a traiter par le processeur en un certain temps. Par conséquent pour répondre a ta question il faut de plus amples renseignements sur le fonctionnement du dit programme.
Lorsqu'il fait les calculs, les fait t'il sur un seul processeur (j'entend un seul coeur (ou thread en cas d'hyperthreading)) ou les fait t'il sur la totalité e du processeur.

Dans le premier cas, la solution pour lancer plusieurs calculs en parallèle serait (si le programme le permet) de lancer plusieurs taches en lui demandant d'utiliser un coeur différent a chaque fois.

Dans le second cas, tout ce que tu pourra faire c'est lancer plusieurs instance du programme (encore une fois si ce dernier le permet) afin que les calculs se répartissent la charge processeur. Cependant cela résultera par une augmentation remarquable des temps de calculs.

En clair il est très difficile de te donner une réponse complète sans savoir de quel logiciel il retourne, ou même sans savoir ce qu'il fait exactement a part lire des fichiers bloc note et en écrire d'autres :/

Le principal a savoir est que le multi-threading est plus souvent un problème d'écriture de programme que de machine en elle même (dès lors que cette dernière est multi-core (2/4/6 ou plus).

Voila donne moi le plus d'infos possibles et je verrai si je peut t'apporter une réponse plus précise.

Un problème informatique => www.No-Panique.com
 

Tarfio

Avatar de Tarfio
2 messages
Neurone isolé
Neurone isolé

Lien direct Le 16 Juin 2011 à 13h45

Bonjour (c'est vrai ;D ) et merci de la rapidité,

Pour commencer, je ne sais pas ce qu'est un tread et le threading. Ce .exe que j'exécute occupe complètement un cœur, par exemple si je lance trois calculs donc trois fois double clique sur trois .exe (compilé en C++), trois cœurs ( sur quatre par exemple) sont complètement au boulot et il me reste un cœur pour faire autre chose. La durée du calcul ne dépend pas du nombre de calcul en cours sauf si je lance plus de calcul que de cœur du PC. Je ne sais pas gérer l'utilisation des cœurs, sur tout les PC que j'ai utilisé (du commerce paramétré par défaut) cela se passe comme ça.

le dit programme est maison et n'est pas un "logiciel" : à part dire qu'il fait plein d'addition/multiplication... , qu'il teste les valeurs des résultats et que parfois il écrit plein de joli tableau de valeur dans un .txt, je ne sais pas trop quoi ajouter, ça doit être un programme plus que bateau pour des informaticiens débutant.

Je penche pour le premier cas et espère t'amener assez de bille pour la suite.

 

Baal-Zebub

Avatar de Baal-Zebub
618 messages
Carte Mère
Carte Mère

Lien direct Le 17 Juin 2011 à 14h29

Citation de Wikipédia

Un thread ou fil (d'exécution) ou tâche (terme et définition normalisés par ISO/IEC 2382-7:2000 ; autres appellations connues : processus léger, unité de traitement, unité d'exécution, fil d'instruction, processus allégé, exétron1), est similaire à un processus car tous deux représentent l'exécution d'un ensemble d'instructions du langage machine d'un processeur. Du point de vue de l'utilisateur, ces exécutions semblent se dérouler en parallèle. Toutefois, là où chaque processus possède sa propre mémoire virtuelle, les threads d'un même processus se partagent sa mémoire virtuelle. Par contre, tous les threads possèdent leur propre pile d’appel.



Voila pour la définition de chez Wiki et [url=http://fr.wikipedia.org/wiki/Thread_(informatique)]un petit lien pour plus d'infos[/url]

Donc en clair, d'après la description que tu as faite un peu plus haut tu as plusieurs options :
-> Changer ton processeur pour avoir plus de coeur si possible en hyperthreading (a l'heure actuelle les plus "gros" sont les hexacores d'Intel avec 6 coeur hyperthreadé entrainant donc 12 thread => soit 12 calculs possibles. Mais dans des prix plus abordables la série I7 930 ou I7 950 permet déjà d'avoir 8 thread ce qui est déjà un bon début.

-> Ajouter une deuxieme machine, mais ca tu l'avais compris toi même

-> Modifier le programme pour permettre les calculs parallèles sur un coeur mais en théorie cela se traduirait par une augmentation du temps de traitement

-> Certaines cartes mère serveur acceptent plusieurs processeurs, donc par exemple une carte acceptant 2 processeurs avec 6 coeurs hyperthreadé te donnent un total de 24 thread actif. Bon le prix d'une telle solution est assez conséquent tu t'en doute.

Voila donc comme ca je n'ai pas de solution miracle a te donner, la solution la moins couteuse étant la modification du programme, et la solution la plus puissante étant le serveur multi processeur (quoi que ne connaissant pas vraiment ce monde je ne saurait trop te dire comment cela fonctionne).

N'hésite pas si tu as d'autres question.

Un problème informatique => www.No-Panique.com
 

<<<1>>>

[Page 1 sur 1 - 4 messages]

Forum informatique > L'ordinateur ( Hardware ) > Matériel annexe ou nouveau PC? Solution pour faire tourner plusieurs programmes (4 ou 8) de calcul (executable fait en c++) en même temps avec évidement des performances de rapidité.