njoy / NJOY21

NJOY for the 21st Century
https://www.njoy21.io/NJOY21
Other
72 stars 38 forks source link

Memory consumption at 94% #161

Closed ParticleTruthSeeker closed 2 years ago

ParticleTruthSeeker commented 2 years ago

I tried building several versions of njoy21 1.2.1 1.2.2 1.3.0 and at around 94% the memory usage increases by 15GB before i cancel the compilation to prevent the system from hanging. I am using debian and GCC10. No errors are listed other than this.

Any clues as to what may be causing this and how to fix it?

whaeck commented 2 years ago

NJOY21 uses some internal dependencies with some very high memory requirements during compilation. Part of the problem is the use of a relatively old version of ranges-v3 (an external library used in many of the NJOY21 libraries). We have updated this dependency in the NJOY21 components that are under active development and this has resulted in significantly lower memory requirements and compilation times. However, we have not yet released a version of NJOY21 that uses these updated components.

At the moment, NJOY21 does not offer any extra features compared to NJOY2016, which is used under the hood in NJOY21. We are still actively maintaining NJOY2016 and it is still used at LANL as the main production tool for our data libraries. You may want to switch to that version of NJOY instead of NJOY21.

NJOY21 will be the future, but we've changed our approach to the modernisation effort. Initially, NJOY21 was supposed to be a module by module modernisation (i.e. modernise RECONR, etc.) but we've now decided to go for a component based approach. With the component based approach, we're developing C++ based libraries that have specific tasks (e.g. resonance reconstruction, ENDF data reading and formatting, ACE data reading and formatting, etc.) with a python interface on top. These components provide features that the modernised modules will need but they also provide other functionality of interest to our users that a modernised module cannot provide (e.g. easy access to data inside an ACE file). These components can also be deployed to users more easily and more quickly compared to a full module - which allows us to show off the progress we make more easily.

Eventually, we'll use the components to develop the modernised modules themselves, which will then make it into NJOY21.

ParticleTruthSeeker commented 2 years ago

Thank you for the detailed response. I will clear some background tasks and give it another go, failing that I will try njoy2016 which I have built successfully in the past. Good luck with your development effort.

whaeck commented 2 years ago

You're welcome ;-)