LooseLab / minotourapp

Minotour API, web and client code
GNU General Public License v3.0
29 stars 2 forks source link

Compatibility with ARM based processors #316

Open sirselim opened 3 years ago

sirselim commented 3 years ago

Hi team, great looking tool that I'm excited to try.

The bulk of my work at the moment is on Nvidia Jetson boards running arm64 CPUs. I just tried running minotour (both docker and building) and am hitting issues with not running x86_x64 CPUs. I haven't really dug to far into the particular issues, but one dependency that doesn't have an arm version is centrifuge.

Is support for ARM something that you would consider? I guess there will be more and more people with Apple M1, M1 Pro and M1 Max as well...

mattloose commented 3 years ago

Hi,

Yes - this is something we have considered/are considering. Some of the issues are limited by external dependencies as you highlight. One possibility would be a slimmer docker that retained most functionality as a stepping stone to full compatibility.

Maybe we will get access to an M1 chip sometime soon to test their as well.

vivialyn14 commented 3 years ago

Hi @sirselim

One of the issues, certainly with docker at least with running ARM is our conda setup, which uses an x86 specific install. I'll have a play with an arm based docker image, and get back to you.

Hopefully I will have the opportunity to test an an M1!

sirselim commented 3 years ago

Hi @vivialyn14

Thanks for the reply. If its useful I'm always willing to test on the various arm-based systems we have, don't have any M1 Macs though. 😁

Centrifuge has been a sticking point for a lot of pipelines we've wanted to port across to arm devices. It's not an easy job recompiling it as it contains x86_x64 assembly code. So we're using kraken2 (which compiled with little issue to arm) and have just come across Sepia (https://github.com/hcdenbakker/sepia), a Rust-based classification tool based on kraken2 algorithms. I'm still very naive in the world of metagenomics but can't figure out exactly why centrifuge seems to get all the love in pipelines and work flows?

Adoni5 commented 3 years ago

People like Centrifuge because it's relatively fast and Index sizes are very small compared to other classifiers, so you can get away with laptop sized compute. Kraken 2 is definitely another viable alternative!