Sign in to follow this  
Fred_76

Pour CH. Buil : recompilation Iris en multiprocesseur

Recommended Posts

Bonjour Christian,

J'utilise Iris depuis quelques années et votre logiciel nous apporte énormément de satisfaction. Les ordinateurs ont beaucoup progressé et ils sont tous désormais multiprocesseurs et multithreads. Mais Iris est un logiciel qui ne tourne que sur un seul coeur et un seul thread. C'est donc dommage sur un Core i7 quad-core, par exemple, de n'exploiter que 1/8 (12.5%) de sa capacité.

Serait-il envisageable et possible de le recompiler de façon à ce qu'il puisse exploiter pleinement toute la puissance des nouveaux processeurs ?

Cordialement

Frédéric

Share this post


Link to post
Share on other sites
Publicité
En vous inscrivant sur Astrosurf,
ce type d'annonce ne sera plus affiché.
Photographier la Lune
Guide complet pour la photographier de la Lune.
Information et commande sur www.photographierlalune.com

Faire une application multithreadée n'est pas juste une option de compilation : il faut lancer les threads, prévoir les conditions de sortie, gérer les conflits interthread sur l'accès aux ressources... Bref beaucoup de travail

Share this post


Link to post
Share on other sites

Bonjour,
oui ce n'est pas qu'une banale recompilation, en amont il faut architecturer tout cela.

Je pense que C Buil, maintenant travaille uniquement sur son nouveau et dernier produit ISIS, qui prétraite aussi les images.

A+

Share this post


Link to post
Share on other sites

j'ai un pote (que je ne dénoncerai pas) qui a decompilé le code puis recompilé pour du 64bit multi
il parait que ça marche d'enfer
il l'a même proposé a C Buil , qui n'as jamais répondu, as usual

Share this post


Link to post
Share on other sites

Comme l'expliquait chonum plus haut, le multi-threading ça ne s'invente pas à la compilation (et il ne suffit pas de cocher la case multi-thread à coté de la case 64 bits en compilant pour que le logiciel se retrouve multi-thread comme par magie). Ca se programme, et sur un logiciel comme IRIS c'est un gros boulot vu le nombre de fonctions de traitement qu'il faudra reprendre.
Ce que tu demandes sympathiquement représente je pense au bas mot une bonne centaine d'heures de boulot, voir probablement plus.

Ceci dit, en rajoutant a IRIS le multi-threading et une interface graphique ergonomique et moderne, il n'aurait plus grand chose a envier a nombre de logiciels commerciaux.

Share this post


Link to post
Share on other sites

chuis pas un expert. je te crois sur parole, tout fois mon pote -qui n'est pas un branque- avait l'air sur de lui. c'est surtout au niveau de la gestion ram que la différence doit se faire sentir

Share this post


Link to post
Share on other sites

chuis pas un expert. je te crois sur parole, tout fois mon pote -qui n'est pas un branque- avait l'air sur de lui. c'est surtout au niveau de la gestion ram que la différence doit se faire sentir

Share this post


Link to post
Share on other sites

Oui, si tu veux que le logiciel soit parfaitement optimisé en multithread, il faut reprendre toute la programmation. Mais les compilateurs peuvent d'eux même déterminer des processus classiques de programmation (boucles, fonctions récursives...) et les compiler automatiquement en multithread sans qu'on ait rien à programmer spécifiquement. Rien que ça permet de booster un logiciel monothread. Sans parler des librairies récentes qui elles peuvent être programmées en multi par leurs auteurs.

D'où ma question initiale.

Share this post


Link to post
Share on other sites

Comme les copains ... ça serait bien s'il s'agissait juste d'une option de compilation à cocher, ça économiserait pas mal de coût ingénieur ;-)
Sinon, le gain ne sera pas côté RAM (Iris n'est pas très gourmand de ce côté là) mais côté temps de calcul (si on est en multi-core ou multi-processeur bien sûr).


Share this post


Link to post
Share on other sites

Oh oui alors, VIVE IRIS, GLOIRE à IRIS, je l'utilise toujours perso, pour ne pas dire que j'utilise QUE Iris mais pas loin, et ça me manque les petites annonces de nouveautés qu'on avait fut un temps

peut être, sans que ce soit C.Buil qui fasse tout, y a t'il moyen qu'il y ait une entente, si certains veulent développer des choses pour Iris avec l'accord et la validation de C.Buil avant mise en ligne de la nouveautés.

Je me doute que ça représente du temps tout ça mais il semble que certains aient les connaissances requises et la volonté pour faire avancer la chose donc pourquoi ne pas en profiter? Perso j'ai des connaissances en encouragement et soutien moral ^^

Share this post


Link to post
Share on other sites

Re,
suffit que les experts installent et testent son dernier développement ISIS, voir s'il est multi-x et/ou multi-y.

Il faut installer le .NET Framework 4 pour l'utiliser et tester ISIS sur des images classiques CCD (pas uniquement des spectres).

A suivre.

Share this post


Link to post
Share on other sites

C'est avec Pixinsith que tu traites les Dark Vador ???

[Ce message a été modifié par Fred_76 (Édité le 23-12-2013).]

Share this post


Link to post
Share on other sites

Le C++ Intel le fait : http://software.intel.com/en-us/articles/automatic-parallelization-with-intel-compilers

Merci pour le lien. Je n'avais pas encore eu l'occasion de rencontrer de compilateur avec ce type d'optimisation automatique.

Ceci dit il le fait, mais pour les boucles qui n'ont pas de dépendance sur des données externes à la boucle. Ca ne marchera donc ça ne devrait pas marcher sur un tableau de pixels (une image). Mais sans doute que ça doit bien accélérer quelques boucles du programme d'ou le ressenti d'amélioration de performances.

[Ce message a été modifié par albanc (Édité le 24-12-2013).]

Share this post


Link to post
Share on other sites
quote:
C'est avec Pixinsith que tu traites les Dark Vador ???

Avec pixinsith les darks ne sont pas traites: l'offset reste dans le master dark. Un truc d'Obi-Wan.
Ce ne sont pas les droides que vous recherchez...

[Ce message a été modifié par zviezda (Édité le 23-12-2013).]

Share this post


Link to post
Share on other sites

C'est Pix Insight, pas Pix in Sith... Les Siths sont de Starwars... D'où mon allusion

Share this post


Link to post
Share on other sites
quote:
Serait-il envisageable et possible de le recompiler de façon à ce qu'il puisse exploiter pleinement toute la puissance des nouveaux processeurs ?

Les fonctions que tu utilises sont dans des DLL et peuvent donc être appelées par un programme extérieur qui lui peut gérer ton architecture multi-coeurs.
L'idéal serait de pouvoir accéder à l'interface de programmation (API) d'IRIS mais je ne crois pas que cela existe.
La décompilation du code c'est puni par la loi.

Share this post


Link to post
Share on other sites

c'est faux
c'est un peu compliqué, c'est légal dans le cadre de la loi

Article L122-6-1
(inséré par Loi nº 94-361 du 10 mai 1994 art. 5 I Journal Officiel du 11 mai 1994)
I. Les actes prévus aux 1º et 2º de l'article L. 122-6 ne sont pas soumis à l'autorisation de l'auteur lorsqu'ils sont nécessaires pour permettre l'utilisation du logiciel, conformément à sa destination, par la personne ayant le droit de l'utiliser, y compris pour corriger des erreurs.
Toutefois, l'auteur est habilité à se réserver par contrat le droit de corriger les erreurs et de déterminer les modalités particulières auxquelles seront soumis les actes prévus aux 1º et 2º de l'article L. 122-6, nécessaires pour permettre l'utilisation du logiciel, conformément à sa destination, par la personne ayant le droit de l'utiliser.
II. La personne ayant le droit d'utiliser le logiciel peut faire une copie de sauvegarde lorsque celle-ci est nécessaire pour préserver l'utilisation du logiciel.
III. La personne ayant le droit d'utiliser le logiciel peut sans l'autorisation de l'auteur observer, étudier ou tester le fonctionnement de ce logiciel afin de déterminer les idées et principes qui sont à la base de n'importe quel élément du logiciel lorsqu'elle effectue toute opération de chargement, d'affichage, d'exécution, de transmission ou de stockage du logiciel qu'elle est en droit d'effectuer.
IV. La reproduction du code du logiciel ou la traduction de la forme de ce code n'est pas soumise à l'autorisation de l'auteur lorsque la reproduction ou la traduction au sens du 1º ou du 2º de l'article L. 122-6 est indispensable pour obtenir les informations nécessaires à l'interopérabilité d'un logiciel créé de façon indépendante avec d'autres logiciels, sous réserve que soient réunies les conditions suivantes :
1º Ces actes sont accomplis par la personne ayant le droit d'utiliser un exemplaire du logiciel ou pour son compte par une personne habilitée à cette fin ;
2º Les informations nécessaires à l'interopérabilité n'ont pas déjà été rendues facilement et rapidement accessibles aux personnes mentionnées au 1º ci-dessus ;
3º Et ces actes sont limités aux parties du logiciel d'origine nécessaires à cette interopérabilité.
Les informations ainsi obtenues ne peuvent être :
1º Ni utilisées à des fins autres que la réalisation de l'interopérabilité du logiciel créé de façon indépendante ;
2º Ni communiquées à des tiers sauf si cela est nécessaire à l'interopérabilité du logiciel créé de façon indépendante ;
3º Ni utilisées pour la mise au point, la production ou la commercialisation d'un logiciel dont l'expression est substantiellement similaire ou pour tout autre acte portant atteinte au droit d'auteur.
V. Le présent article ne saurait être interprété comme permettant de porter atteinte à l'exploitation normale du logiciel ou de causer un préjudice injustifié aux intérêts légitimes de l'auteur.
Toute stipulation contraire aux dispositions prévues aux II, III et IV du présent article est nulle et non avenue.

Share this post


Link to post
Share on other sites
quote:
c'est faux
c'est un peu compliqué, c'est légal dans le cadre de la loi

C'est un peu plus compliqué que cela frédo ... si un juriste passe par là.

Share this post


Link to post
Share on other sites

On peut faire une liste de souhaits! c'est noel

Moi je pense que le plus utile serait de définir un "Pipe" (ou le rendre public) pour injecter des commandes dans cette '*%++(#' de fenêtre de commandes.
On pourrait ainsi scripter en externe!

Share this post


Link to post
Share on other sites

Oui on peut faire des scripts mais il faut les lancer à la main. On ne peut pas lancer Iris qui démarre automatiquement sur un script. Donc on ne peut pas batcher des commandes. C'est bien dommage car on aurait alors pu faire des GUi pour chaque usage et demultiplier la puissance d'Iris dans plein de domaines.

Ça avec le traitement multicore, ça serait génial.

Mais si Isis permet à terme toutes ces avancées, alors Iris sera obsolète. Voir notamment ici :
http://www.astrosurf.com/buil/isis/deepsky/deepsky_fr.htm

[Ce message a été modifié par Fred_76 (Édité le 25-12-2013).]

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this