alphamax Posté 8 juin 2019 Posté 8 juin 2019 Bonsoir, sur mon poste (ubuntu 18.04), j'ai toujours 2 versions de Siril; la première issue des ppa et la seconde, issue de git. Cette dernière se compile très bien mais je me rends compte qu'elle tourne que sur un seul proc alors que la version ppa utilise les 4 dispos (c'est visible sur le monitoring). Pourtant au lancement Siril (les 2 versions) dit bien "log: Calcul parallèle activé : Utilisation de 4 processeur(s).". Qu'est ce que j'ai oublié de faire ? j'ai vérifié, j'ai bien la libpthread... Merci de votre aide. Christian
vinvin Posté 8 juin 2019 Posté 8 juin 2019 SI au lancement le nombre est bon, c'est que le traitement que tu fais nécessite trop de mémoire pour tourner sur plusieurs processeurs. C'est une limitation de la nouvelle version qui sera corrigée à l'avenir, en attendant, si tu souhaites laisser siril dépasser de la RAM tu peux mettre un ratio de mémoire de 2 (ou moins, mais plus que 1) avec la commande setmem. 1
alphamax Posté 9 juin 2019 Auteur Posté 9 juin 2019 c'est ce que je pensais, mais j'ai fait le test avec exactement la même séquence et sur les 2 je lance un alignement... Et comme on peut le voir sur les graphes ci-dessous, dans ma version compilée je n'utilise pas l'ensemble des coeurs. (1ère image) tandis que avec la version ppa, c'est clairement le cas (image 2).. Pour les options de compile, je fais : export CXXFLAGS="-m64 -Ofast -flto -march=native -funroll-loops" export CFLAGS="-m64 -Ofast -flto -march=native -funroll-loops" ./autogen.sh make -j4 Merci pour ton aide.
lock042 Posté 9 juin 2019 Posté 9 juin 2019 Compares tu le même moment du traitement ? La conversion des images raw est probablement la seule étape encore monocoeur.
alphamax Posté 9 juin 2019 Auteur Posté 9 juin 2019 oui, oui vraiment le même moment que j'ai tracé => chargement d'une séquence => alignement. En effet, j'ai constaté la conversion était mono-proc.
lock042 Posté 9 juin 2019 Posté 9 juin 2019 T'as essayé une compilation sans tes flags ? Moi c'est ce que je fais.
alphamax Posté 9 juin 2019 Auteur Posté 9 juin 2019 Bon, je suis reparti de la base; pas d'option d'optimisation... nothing. Et ça ne change rien. J'ai donc regardé les libs linkées dans le binaire et toutes celles qui étaient dans mon /usr/local/lib (j'en compile pas mal moi même) je les ai dégagées une par une. Et j'ai fini par trouvé... C'était cfitsio qui ne devait pas bien être compilée et qui ne permet pas du coup le multithread. J'ai remis tout d'équerre et là, ça tourne bien sur mes 4 procs et la différence est vraiment flagrante (j'ai divisé par 3 le temps de traitement). Merci à vous deux pour votre aide et longue vie à Siril.
vinvin Posté 9 juin 2019 Posté 9 juin 2019 Si fitsio n'est pas compilé avec le support multi-thread il me semble qu'il y a un warning dans siril quelque part, perdu dans le tas de trucs affichés par contre... En tout cas on le détecte et on désactive le calcul parallèle dans ce cas.
Messages recommandés