NEURON on ARM M1, Big Sur and Rosetta

Post Reply
watersun
Posts: 5
Joined: Wed Nov 25, 2020 5:29 am

NEURON on ARM M1, Big Sur and Rosetta

Post by watersun »

Hello together,

did anybody already try NEURON with XQuartz on M1 and is it working?

Thanks for your response in advance!
pkumbhar
Posts: 10
Joined: Fri Mar 11, 2016 5:57 am

Re: NEURON on ARM M1, Big Sur and Rosetta

Post by pkumbhar »

Hello @watersun,

We don't have access to M1 system yet. But one of our colleague tested NEURON python wheel under Rosetta and it worked fine.

If you try something and see any issues, please let us know!

Thanks!
pkumbhar
Posts: 10
Joined: Fri Mar 11, 2016 5:57 am

Re: NEURON on ARM M1, Big Sur and Rosetta

Post by pkumbhar »

Hello watersun,

We have recently fixed the issue with ARM M1 installation. We don't have a binary installer yet but should be available in coming week or two.
In case you are familiar with building from source and CMake, you can clone latest master of neuron repository and build as documented in: https://github.com/neuronsimulator/nrn/ ... tributions
wst
Posts: 1
Joined: Thu Feb 25, 2021 6:25 pm

Re: NEURON on ARM M1, Big Sur and Rosetta

Post by wst »

Hi all. Long time listener, first time caller... I have NEURON running lovely on two macs and a linux system, but am now trying to set it up on an M1 mac. Building with cmake: nrngui works, mknrndll works etc. Importing in python 3.8.2 (with python3 command) however gives:
>>> import neuron
Traceback (most recent call last):
File "/usr/local/lib/python/neuron/__init__.py", line 131, in <module>
import hoc
ModuleNotFoundError: No module named 'hoc'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python/neuron/__init__.py", line 135, in <module>
import neuron.hoc
ImportError: dlopen(/usr/local/lib/python/neuron/hoc.cpython-38-darwin.so, 2): Symbol not found: _nrn_global_argv
Referenced from: /usr/local/lib/python/neuron/hoc.cpython-38-darwin.so
Expected in: flat namespace
in /usr/local/lib/python/neuron/hoc.cpython-38-darwin.so

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python/neuron/__init__.py", line 137, in <module>
exec("import neuron.hoc%d%d as hoc" % (sys.version_info[0], sys.version_info[1]))
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'neuron.hoc38'


Following a previous thread on this forum I have copied hoc.cpython-38-darwin.so as both hoc.so, and hoc38.so . Doing that yields the following:

File "/usr/local/lib/python/neuron/__init__.py", line 131, in <module>
import hoc
ImportError: dlopen(/usr/local/lib/python/neuron/hoc.cpython-38-darwin.so, 2): Symbol not found: _nrn_global_argv
Referenced from: /usr/local/lib/python/neuron/hoc.cpython-38-darwin.so
Expected in: flat namespace
in /usr/local/lib/python/neuron/hoc.cpython-38-darwin.so

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/local/lib/python/neuron/__init__.py", line 135, in <module>
import neuron.hoc
ImportError: dlopen(/usr/local/lib/python/neuron/hoc.cpython-38-darwin.so, 2): Symbol not found: _nrn_global_argv
Referenced from: /usr/local/lib/python/neuron/hoc.cpython-38-darwin.so
Expected in: flat namespace
in /usr/local/lib/python/neuron/hoc.cpython-38-darwin.so

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python/neuron/__init__.py", line 137, in <module>
exec("import neuron.hoc%d%d as hoc" % (sys.version_info[0], sys.version_info[1]))
File "<string>", line 1, in <module>
ImportError: dlopen(/usr/local/lib/python/neuron/hoc38.so, 2): Symbol not found: _nrn_global_argv
Referenced from: /usr/local/lib/python/neuron/hoc38.so
Expected in: flat namespace
in /usr/local/lib/python/neuron/hoc38.so
Have had the same issue with both NEURON 7.8.2 & 8.0a. Have tried installing a few times now. Installing with pip works, but my mech files won't play ball with arm64 in that case.

Any advice? Cheers!
watersun
Posts: 5
Joined: Wed Nov 25, 2020 5:29 am

Re: NEURON on ARM M1, Big Sur and Rosetta

Post by watersun »

Hello again,

thanks for all of your responses. This sounds great. I hesitated with my decision to buy a M1 Mac and I will buy one with the next Macbook upgrade this fall. If I notice any problems or helpful advice, I will come back and share :)
Post Reply