GalacticDynamics-Oxford / Agama

Action-based galaxy modeling framework
Other
74 stars 37 forks source link

Automatic Install not functioning correctly on remote machine #49

Open JMcCabe03 opened 1 week ago

JMcCabe03 commented 1 week ago

(Quick apology for the formatting, but couldn't copy over text from my command line for whatever reason so unfortunately the evidence is a screenshot).

I have been using Agama to work on my Senior Honours project, and it seems to function fine when installed locally, but when using a cluster computer (Cuillin at the University of Edinburgh) I am running into a small problem with installation. After running pip install agama from the command line the package appears to successfully install itself, but when attempting to import and use it in a python program (jupyter notebook in this case), the kernel crashes. Attempting to troubleshoot, I deleted and reinstalled, then attempted to run import agama directly into a python instance, but recieve the following error: Working Agama

If you have any suggestions to help me resolve this issue that would be greatly appreciated.

Thanks,

Jack

eugvas commented 1 week ago

hmm this looks weird! although I have seen this when the library was compiled on one machine, and then loaded on another one with an older processor (for example, if you work with a network file system and use different computers to install and then run it). When the code gets recompiled on the same machine as it is used, this should not happen. Just to confirm, is this also happening when you run any of the executable programs in the "exe" subfolder within the main Agama folder? (not from python, obviously, but from terminal)

eugvas commented 1 week ago

another option is to replace the -march=native flag in Makefile.local by something more conservative, e.g. -march=core-avx2 (a ~10 year old architecture) or something else from the endless list of "lakes" in https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html then recompile the code by running make. This could be done directly in the same folder where it is already installed (i.e. ***/site-packages/agama/ or something similar).

JMcCabe03 commented 1 week ago

I can confirm that the exe files appear to work fine, at least example_self_consistent_model.exe successfully ran and produced a model

JMcCabe03 commented 1 week ago

The problem seems to only occur when running in a different node on the computer, in the login node everything seems to run fine

eugvas commented 1 week ago

then, as I suggested, it is likely that the login node has a more recent processor version, so you need to recompile the code on the target machine (of course, it will still be usable on more recent processors). in this case you don't need to modify anything in Makefile.local, i.e. keep -march=native, just run make clean and then make in the Agama folder on the target machine.