[chimerax-users] Apple silicon (M1 chip) native version?
Jeffrey D. Hartgerink
jdh at rice.edu
Mon Mar 22 11:09:55 PDT 2021
Hi Tom,
Thank you for this detailed response! It illustrated the challenges well and was very useful. In particular, I was unaware of the all-or-nothing nature of Rosetta.
I’ve recently acquired an arm based Mac mini and would be happy to test any early builds if that would be useful.
-Jeff
--------------------------------------
Jeffrey D. Hartgerink, Ph.D.
Prof. of Chemistry and Bioengineering
Rice University, MS 602
6100 Main Street
Houston, TX 77005
jdh at rice.edu / 713-348-4142
hartgerink.rice.edu
> On Mar 22, 2021, at 12:58 PM, Tom Goddard <goddard at sonic.net> wrote:
>
> One more detail. Our lab is getting an Apple Silicon machine so we can attempt to make a native ChimeraX version.
>
> Tom
>
>
>> On Mar 22, 2021, at 10:57 AM, Tom Goddard <goddard at sonic.net <mailto:goddard at sonic.net>> wrote:
>>
>> In the future we would like to provide a native Apple Silicon (ARM CPU) version of ChimeraX. We have not tried it yet. It would be easy to compile the C++ code we develop for the new CPU. But the trouble is that ChimeraX depends on over 50 third party Python modules, some of them including compiled code. I believe all of those compiled python modules will have to be available compiled for ARM in order for us to make a native ChimeraX app. According to Apple's developer documentation you cannot mix ARM compiled code with Intel compiled dynamically loaded modules in the same process:
>>
>> From https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment <https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment>
>> Important
>> The system prevents you from mixing arm64 code and x86_64 code in the same process. Rosetta translation applies to an entire process, including all code modules that the process loads dynamically.
>>
>>
>> Major packages we use like the Qt window toolkit and numpy array module provide native ARM versions. But less well maintained modules like the PyOpenGL-accelerate module ChimeraX uses for OpenGL graphics has not been updated for more than a year (Jan 2020) and there is no telling when an ARM version will become available.
>>
>> The following GitHub repository (focused on neuroimaging) describes some of the availability problems from scientific packages on ARM CPUs.
>>
>> https://github.com/neurolabusc/AppleSiliconForNeuroimaging <https://github.com/neurolabusc/AppleSiliconForNeuroimaging>
>>
>> Tom
>>
>>
>>> On Mar 21, 2021, at 7:40 PM, Jeffrey D. Hartgerink <jdh at rice.edu <mailto:jdh at rice.edu>> wrote:
>>>
>>> Are there any plans for an Apple Silicon (M1 chip) native version of ChimeraX? While things work ok via the Rosetta emulator, it would be great to have the performance from a native app.
>>>
>>> --------------------------------------
>>> Jeffrey D. Hartgerink, Ph.D.
>>> Prof. of Chemistry and Bioengineering
>>> Rice University, MS 602
>>> 6100 Main Street
>>> Houston, TX 77005
>>> jdh at rice.edu <mailto:jdh at rice.edu> / 713-348-4142
>>> hartgerink.rice.edu <http://hartgerink.rice.edu/>
>>> _______________________________________________
>>> ChimeraX-users mailing list
>>> ChimeraX-users at cgl.ucsf.edu <mailto:ChimeraX-users at cgl.ucsf.edu>
>>> Manage subscription:
>>> https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users <https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimerax-users/attachments/20210322/c4112a2a/attachment-0001.html>
More information about the ChimeraX-users
mailing list