Feature #2336

Make reflectometry computation as fast as in Refnx

Added by juan over 1 year ago. Updated 4 months ago.

Status:ResolvedStart date:04 Apr 2019
Priority:LowDue date:
Assignee:-% Done:

0%

Category:Reflectometry
Target version:-

Description

During our last group meeting, we decided to carry out several performance tests:

  • Time scaling with the number of layers
  • Time taken to run a simple simulation
  • Time scaling with the simulation resolution

The results are not satisfactory as can be seen from the following notebook:

https://nbviewer.jupyter.org/github/juanmcloaiza/BornAgainReflectometryComparison/blob/master/PerformanceTests/BornAgain_Performance_Analysis.ipynb

As this issue is not a priority for the moment (is it?), I suggest to keep further investigations and possible fixes on the backlog.
However, looking ahead for a possible fix, I did some experimenting on reusing an already performing piece of code and embedding it inside a python API --which could also be a GUI for that matter:

https://nbviewer.jupyter.org/github/juanmcloaiza/BornAgainReflectometryComparison/blob/master/PerformanceTests/Reusing_an_already_performing_engine.ipynb


Related issues

Related to BornAgain - Refactoring #2343: Improve performance in reflectometry engine Rejected 30 Apr 2019
Related to BornAgain - Refactoring #2410: Core: beam propagation: Speeding up computations on samples with a large number of layers Backlog 21 Oct 2019

History

#1 Updated by wuttke over 1 year ago

  • Tracker changed from Testing to Feature
  • Subject changed from BornAgain performance is not optimal to Make reflectometry computation as fast as in Refnx
  • Status changed from New to Backlog
  • Priority changed from Normal to Low

#2 Updated by dmitry 11 months ago

  • Category set to Reflectometry

#3 Updated by dmitry 11 months ago

#4 Updated by dmitry 11 months ago

  • Related to Refactoring #2410: Core: beam propagation: Speeding up computations on samples with a large number of layers added

#5 Updated by wuttke 4 months ago

  • Status changed from Backlog to Sprint

#6 Updated by wuttke 4 months ago

  • Status changed from Sprint to Resolved

The fundamental problem with n log n from the bijection is solved by Randolf's new algorithm. Everything else will be reinvestigated as need arises.

Also available in: Atom PDF