Temps de calcul / Benchmarks

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Temps de calcul / Benchmarks

renaud
Bonjour

Je souhaiterais savoir si vous avez des benchmark disponibles pour avoir une idée des temps de calcul sur une machine données en fonctions des paramètres de BR_TriGrid() ? Notemment concernant l'impact (apparemment assez important) de l'ordre de réflection / difraction ?

J'ai effectué un test pour une surface de 4km² avec les paramètres suivants :

BR_TriGrid( 'buildings', -- buildings table
            'sources',   -- sources table
            'DB_M',      -- prefix identifier of the emission level column for sources
            '',          -- ground type table
            500,         -- max propagation distance
            30,          -- max wall seeking distance
            1.0,         -- roads width
            2.8,         -- receivers densification
            75,          -- max area of triangle
            0,           -- sound reflection order
            0,           -- sound diffraction order
            0.23);       -- wall alpha

D'après le maillage, j'ai ~ 300 000 récepteurs.

Le calcul sur une machine 4 coeurs (8 threads) prends environ 3 heures (calcul lancé via un script groovy, j'utilise openjdk version "1.8.0_121").

J'ai ensuite voulu pousser les paramètres avec :

max propagation distance = 1000
sound reflection order = 2
sound difraction order = 1

J'en suis à 20h+ de calcul et ça mouline toujours, je me demande donc si quelqu'un aurait une idée de comment scalent les temps de calcul ? Je peux faire des tests systématiques en faisant varier les paramètres mais j'aimerais dans un premier temps savoir si les ordres de grandeur semblent corrects ...

Merci !
Renaud
Reply | Threaded
Open this post in threaded view
|

Re: Temps de calcul / Benchmarks

Nicolas F.
Administrator
Bonjour,

Le temps de calcul dépend principalement de la complexité du domaine (polygones bâtiments), du nombre de couple récepteur/sources, de la distance maximum de propagation et de l'ordre de réflexion/diffraction.

Afin de réduire le temps de calcul il est préférable de simplifier les bâtiments.

Je crois que 750m est suffisant pour la distance max de propagation. ( 68 dB d'affaiblissement juste avec la dispersion géométrique)

On n'a pas mis en place de comparaisons de temps de calculs.

Cordialement,

Nicolas FORTIN

Développeur d’applications - AI
Laboratoire d’Acoustique Environnementale (LAE)
Ifsttar Nantes, Route de Bouaye, CS 4, 44344 Bouguenais Cedex

Activités du Laboratoire d’Acoustique Environnementale : www.lae.ifsttar.fr
Un logiciel open-source pour l'acoustique des salles : I-Simpa : i-simpa.ifsttar.fr
Retrouvez NoiseCapture (Android App pour la mesure du bruit) et NoiseModelling (cartographie du bruit SIG) sur : http://noise-planet.org
Reply | Threaded
Open this post in threaded view
|

Re: Temps de calcul / Benchmarks

renaud
Bonjour Nicolas et merci pour cette réponse rapide.

Actuellement chaque bâtiment est représenté par son propre polygone, donc en effet si je les dissous / simplifie cela devrait accélérer le calcul ! Je vais essayer ça et faire tourner en faisant varier un peu les paramètres voir ce que ça donne.

Merci
Reply | Threaded
Open this post in threaded view
|

Re: Temps de calcul / Benchmarks

renaud
This post was updated on .
Bonjour, pour faire suite à ce post voici quelques tests que j'ai effectués pour me faire une idée du temps de calcul à prévoir.

Configuration

Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
4 coeurs / 8 threads
RAM : 32 Gb
java : openjdk 1.8.0_121
+ noisemap exécuté via un script groovy.

Données (source OSM)

Zone de calcul :  2km*2km (milieu urbain)
Sources sonores : routes (niveaux sonore basé sur le tag 'highway' d'osm)



Test 1 : simplification des batiments

J'ai d'abord regardé l'impact de la complexité des géométries en effectuant le calcul avec les batiments originaux (= 1 polygone par batiment) et en simplifiant les géométries (dissolution / simplification des géométries) :

batiments originaux ====>> batiments dissous

Les paramètres de calculs utilisés :

- maximumPropagationDistance: 500
- maximumWallSeekingDistance: 30
- soundReflectionOrder: 0
- soundDiffractionOrder: 0
 
Résultats :

Batiments originaux : 2h55
Batiments 'dissous' : 2h05
Batiments 'dissous' + simplifiés (tolérance 1m) : 1h25

Donc comme indiqué par Nicolas, un gain de temps de plus de 30% facile à obtenir de ce coté.

Test 2 : temps de calcul vs ordre de réflection / diffraction


J'ai ensuite fait tourner le même calcul, avec les Batiments 'dissous', en faisant varier l'ordre de réflection / diffraction.

Les autres paramètres sont maintenus constants :

- maximumPropagationDistance: 500
- maximumWallSeekingDistance: 30
- roadWidth : 1.0
- receiversDensification : 2.8
- maxAreaOfTriangle : 75
- wallAlpha : 0.23

Résultats :

soundReflectionOrder,soundDiffractionOrder,time
0,0,2.0
0,1,41.6
0,2,93.2
1,0,2.8
1,1,40.8
1,2,96.9
2,0,30.2
2,1,65.3
2,2,116.7

temps de calcul vs reflection
temps de calcul vs diffraction

Voilà, donc en gros pour mon utilisation, c'est gérable de monter l'ordre de réflection à 1, par contre au delà ça devient problématique car on atteint les 30h de calcul pour 4 km². Pour la diffraction pas la peine d'y penser ! (même pour une petite ville on atteint vite > 1-2 semaines de calcul). Est ce que ces timings semblent cohérent avec ce que vous avez pu tester ? (au cas où quelque chose dans ma config / script ferait que ce soit anormalement lent ...)

Je suis aussi conscient que d'autres paramètres ont également un fort impact sur le temps de calcul (je pense notemment à maxAreaOfTriangle qui fixe +/- la résolution), mais c'est un peu long de tout tester !

Renaud
Reply | Threaded
Open this post in threaded view
|

Re: Temps de calcul / Benchmarks

Nicolas F.
Administrator
Intéressent, merci pour le retour.

Le temps de calcul à l'air assez long. Je ne sais pas si on est beaucoup plus long par rapport aux autres logiciels de calculs de carte de bruit.

Je ne pense pas qu'il y ai d'autres modifications possible sur les données d'entrée afin de réduire les temps de calculs. Le plus important pour minimiser les effets de bord des optimisations (incertitude numérique)  est de conserver ce qui est conseillé pour le calcul soit 2 ordres de réflexion et 1 ordre de diffraction.