Bonjour Sarah, Sigrid et Benjamin C'est une super nouvelle. Merci à toi et Benjamin d'avoir exploré le problème du temps de simulation. Pour ce qui est des erreurs d'arrondis à 10^-15, il me semble que les paramètres qui pourraient etre concernés sont ceux décrits par une fonction continue avec des queues de distribution (par ex. la sélectivité) qui pourraient avoir des valeurs très proches de 0 pour certaines longueurs. Certaines variables peuvent aussi approcher 0 dans certaines config défavorables (par ex Captures en poids, Biomasses quand les stocks s'effondrent) mais bon 10^-15 ou 10^-10 c'est du même acabits. Mais je me pose plus la question de l'incidence de l'arrondi dans les équations de calcul de l'effort et de F où y'a plein de somme sur les metiers de valeurs proches de 0 (propstr, select, target,...)... On verra ce que cela donne en testant. Je teste avec la base macco (apres avoir sauvegardé mon isis-fish-4 ;) ) a+ Steph Le 04/03/2024 à 13:52, Sigrid LEHUTA a écrit :
Bonjour Sarah,
merci beaucoup pour cette proposition et ces explications très claires. Ca me parait très prometteur. Et en effet, je doute qu'une précision à 10^-15 soit nécessaire. Il faudra tout de même réfléchir aux grandeurs pour lesquelles cela pourrait l'être (Steph ? à première vue tant que l'effort est en jours/heures et les captures en kg (même ne tonnes), on ne devrait jamais avoir besoin de ce niveau de précision). Mais en effet ça se teste.
Je serais volontaire pour essayer et cela tombe à pic car nous évaluons en ce moment la faisabilité d'une région très "grosse" pour voir jusqu'où il est raisonnable de pousser les développements. Cela pourra faire un bon test.
Sigrid
Le 04/03/2024 à 11:25, Sarah Bordage a écrit :
Bonjour à toutes et tous,
Suite aux retours de la dernière journée utilisateurs, nous travaillons sur l'optimisation des temps de simulation sur ISIS-Fish et nous avons un développement qui mériterait validation.
Nous somme partis d'une simulation de 12 mois sur Defipel pour analyser les temps de calculs. Sur cette simulation test, il s'est avéré que 80% du temps de calcul était dédié au calcul de la matrice de mortalité par pêche par la méthode 'SiMatrix.totalFishingMortality()'. Cette méthode prend un tableau de (stratégie, métier, classe, zone) et retourne une matrice de taille #classes x #zones, obtenue en faisant la somme sur les stratégies et sur les métiers des données d'entrée.
Avec Benjamin, nous avons amélioré l'algorithme en charge de sommer un tableau le long d'un axe, ce qui a divisé par ~2.8 le temps de calcul de la simulation test.
Souhaiteriez-vous tester cette nouvelle version ? Nous aimerions en particulier vérifier que les résultats sont toujours les mêmes, à epsilon près.
En effet, nous sommes ici sur un problème d'arithmétique sur des nombres à virgules flottantes (en double précision dans le cas d'ISIS). Pour rappel, les nombres flottants sont des représentations de nombres réels, équivalentes à une notation scientifique en base 2. Ces nombres ont un nombre limité de chiffres significatifs (environ 16 sur des type "double"). Il s'en suit qu'un nombre réel pour lequel il n'existe pas de représentation à virgule flottante est approximé. Cette approximation ne peut être égale à la valeur réelle qu'"à un certain epsilon près".
Lorsque des opérations arithmétiques sont effectuées sur des flottants, des erreurs d'approximations peuvent s'accumuler. De plus, contrairement au corps des réels, l'addition sur les flottants n'est pas associative : (a + b) + c n'est pas nécessairement égal à a + (b + c). Le nouvel algorithme n'effectuant pas les additions dans les même ordre qu'avant, et les résultats obtenus peuvent varier.
Sur mes tests, la différence *relative* entre la précédente et la nouvelle implantation sont de l'ordre de 10^(-15), ce qui me semble acceptable, étant donnée la précision limitée des flottants de type `double`. Il est impossible de dire que l'une des deux implantations donne des résultats plus corrects que l'autre, étant donnée la précision limitée des flottants de type `double`. Cependant, je souhaiterais savoir si sur de vraies simulations, les différences d'approximation sont également raisonnables.
Si certain(e)s sont intéressé(e)s pour tester ce développement, nous mettrons à disposition une pré-release de cette nouvelle version d'ISIS.
En vous souhaitant une belle semaine,
Sarah Bordage
_______________________________________________ Isis-fish-devel mailing list Isis-fish-devel@list.isis-fish.org https://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-devel
-- Sigrid LEHUTA ~ ><> ~ Fisheries modeller IFREMER unit HALGO, Ecology and modeling for fisheries science lab (EMH) Member of the Mixed Research Unit DECOD: Dynamics and sustainability of ecosystems: from source to sea Member of l'Association Française d'Halieutique
IFREMER, Centre Atlantique Rue de l'Ile d'Yeu - BP 21105 44311 Nantes Cedex 03, France Tél : 02 40 37 42 38 (N° interne : 8238)
https://halgo.ifremer.fr/en https://www.umr-decod.fr/en https://www.association-francaise-halieutique.fr/
_______________________________________________ Isis-fish-devel mailing list Isis-fish-devel@list.isis-fish.org https://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-devel
-- ...................................................................... Stephanie MAHEVAS UMR MARBEC - site de Sète IFREMER/HM https://annuaire.ifremer.fr/cv/16343/ Tel: (33) 04 99 57 32 39 (8239) - 06 75 83 59 33 o \ o / _ o __| \ / |__ o _ \ o / o /|\ | /\ ___\o \o | o/ o/__ /\ | /|\ / \ / \ | \ /) | ( \ /o\ / ) | (\ / | / \ / \ ......................................................................