TravisWheelerLab / NINJA

Nearly Infinite Neighbor Joining Application
MIT License
5 stars 7 forks source link

Is this program considering supporting the aarch64 architecture? #44

Closed z4668640 closed 8 months ago

z4668640 commented 11 months ago

As the title shows, I now need to run it on an ARM chip. How can I compile it successfully? image image

traviswheeler commented 11 months ago

Thanks for your interest in this implementation of NINJA. This repository is an "almost complete" reimplementation of the Java implementation at this site. The software generally works, but there remain a couple of small bugs, and the project is on hold (and not under active development) while we await the time to wrap it up to completion. For now, your best bet is probably to use the Java version listed in the previous sentence.

I'll leave this issue open, since this is a feature we'd like to support when we wrap things up

z4668640 commented 11 months ago

Thanks for your interest in this implementation of NINJA. This repository is an "almost complete" reimplementation of the Java implementation at this site. The software generally works, but there remain a couple of small bugs, and the project is on hold (and not under active development) while we await the time to wrap it up to completion. For now, your best bet is probably to use the Java version listed in the previous sentence.

I'll leave this issue open, since this is a feature we'd like to support when we wrap things up

Thank you for your reply, but I'm afraid not. Since your software is a dependency on another software, I expect this to be difficult to migrate. https://github.com/Dfam-consortium/RepeatModeler

traviswheeler commented 11 months ago

Ah, yes. For that dependency, the specific release (0.98-cluster_only) of NINJA is the right one.

Have you tried compiling under Rosetta (https://support.apple.com/en-us/HT211861)?

z4668640 commented 11 months ago

Ah, yes. For that dependency, the specific release (0.98-cluster_only) of NINJA is the right one.

Have you tried compiling under Rosetta (https://support.apple.com/en-us/HT211861)?

No, I'm not using an apple. I use a Linux system. I'll look into the problem myself first. Thank you.

z4668640 commented 10 months ago

Ah, yes. For that dependency, the specific release (0.98-cluster_only) of NINJA is the right one.

Have you tried compiling under Rosetta (https://support.apple.com/en-us/HT211861)?

I may have found a solution to this problem.

  1. First we need to remove the "-mssse3" parameter from line 36 of the Makefile
  2. Second, we need to replace lines 8, 9, and 10 of the distancecalculater.hpp file with the following
    #include <xmmintrin.h>        /* SSE  */
    #include <emmintrin.h>        /* SSE2 */
    #include <tmmintrin.h>      /* SSE3 */

    replace with #include "sse2neon.h"

  3. Third, download the sse2neon.h file from this address and place it in the same directory as the DistanceCalculator.hpp file. sse2neon.h The download address is as follows: https://github.com/DLTcollab/sse2neon/blob/master/sse2neon.h
z4668640 commented 10 months ago

I refer to the Intel's official description: https://github.com/DLTcollab/sse2neon

martin-g commented 8 months ago

I've opened a PR that makes the changes suggested by @z4668640 at https://github.com/TravisWheelerLab/NINJA/issues/44#issuecomment-1865781967

z4668640 commented 8 months ago

I've opened a PR that makes the changes suggested by @z4668640 at #44 (comment)

Thank you very much for your help. But I must warn you that my method is only one possibility. He hasn't been rigorously tested.

martin-g commented 8 months ago

I have used this solution in several other projects and it worked well!

I also added a CI job that runs make check on Linux ARM64!