Earlier quoted context omitted.
How much does this particular result change when running in release mode?
On my machine, running the debug executable on the medium-size dataset takes ~14.5 seconds, and release mode takes ~0.8 seconds.
A look at the Mojo language for bioinformatics
41–50 of 124 posts
Re: A look at the Mojo language for bioinformatics
#42Earlier quoted context omitted.
"Swift for Tensorflow" never had any real backing apart from the announcement though.
Apparently it had Google's money backing, for what it is worth. I never believed into it, because Swift is as relevant as Objective-C outside NeXT/Apple's platforms, and not the kind of programming language that the research community cares about.
You mean they paid to have it created, like they pay for thousands of other things.
But it was never really pushed, the way they push things they want to promote.
Re: A look at the Mojo language for bioinformatics
#43>>> As a bioinformatician who is obsessed with high-performance, high-level programming, that's right in my wheelhouse!... Mojo currently only runs on Ubuntu and MacOS, and I run neither. So, I can't run any Mojo code 1. Back to the rust vs mojo article that kicked this off... this isnt someone who is going to use rust. 2. Availably, portability, ease of use... These are the reasons python is winning. 3. I am baffled…
Author here. I do know about VMs. Is it too lazy for me to write that article and not bother to install a VM with Mojo (and Rust and Julia, to benchmark in the same environment)? Maybe. If this was for my work I certainly would have felt compelled to. On the other hand, the fact that Mojo doesn't run on Windows and most Linux distros is a point in itself. And also, would the blog post really be substantially improved…
Yes.
Would you talk about a book you didn't read? Or a movie you didn't see? Not on any meaningful level.
Re: A look at the Mojo language for bioinformatics
#44Earlier quoted context omitted.
Well, for the domains Mojo targets, Python is king. So a faster-Python-like language would have more potential audiences. A fast Ruby-like language, not so much, as Ruby was never that special in those domains, or in most places outside web development, and even for that it kind of lost steam in the past 10 years. Besides people opting for closer to C speed had Rust, Go, Java, Swift, and other options to go to, all w…
I used to be quite sceptical given how Swift for Tensorflow went, however since NVidia decided to partner with Modular, alongside their ongoing CUDA JIT bindings for Python, I think Mojo might actually work out.
https://news.ycombinator.com/threads?id=chrislattner
Here's his comment on swift for tensorflow:
Re: A look at the Mojo language for bioinformatics
#45As someone who practices bioinformatics, it doesn’t seem appealing. Bioinformatics is like 0.1% dealing with FASTQ files and the rest is using the ecosystem of libraries for statistics and plotting. Many of them in R, by the way.
I got my start at a NGS facility, so handling FASTQ was closer to 80% of my time, so any speedups would have been greatly appreciated.
Re: A look at the Mojo language for bioinformatics
#46Earlier quoted context omitted.
On my machine, running the debug executable on the medium-size dataset takes ~14.5 seconds, and release mode takes ~0.8 seconds.
do you know why debug mode for rust is so slow? is it also compiling without any optimization by default? it's it checks for overflow?
Debug mode is designed to build as-fast-as-possible while still being correct, so that you can run your binary (with debug symbols) ASAP.
Overflow checks are present even in release mode, and some write-ups seem to indicate they have less overhead than you’d think.
Rust lets your configure your cargo configs to apply some optimisation passes even in debug, if you wish. There’s also a config to have your dependencies optimised (even in debug) if you want. The Bevy tutorial walks through doing this, as a concrete example.
Re: A look at the Mojo language for bioinformatics
#47As someone who practices bioinformatics, it doesn’t seem appealing. Bioinformatics is like 0.1% dealing with FASTQ files and the rest is using the ecosystem of libraries for statistics and plotting. Many of them in R, by the way.
As someone who is considering a switch from generic software engineering towards bioinformatics, what would you say the pain points are? If this is not the way to remove workflow friction, what is?
Re: A look at the Mojo language for bioinformatics
#48The language is far from stable, but I have had a LOT of fun writing Mojo code. I was surprised by that! The only promising new languages for low-level numerical coding that can dislodge C/C++/Fortran somewhat, in my opinion, have been Julia/Rust. I feel like I can update that last list to be Julia/Rust/Mojo now. But, for my work, C++/Fortran reign supreme. I really wish Julia had easy AOT compilation and no GC, that…
> I really wish Julia had easy AOT compilation and no GC, that would be perfect I pretty strongly disagree with the no gc part of this. A well written GC has the same throughout (or higher) than reference counting for most applications, and the Rust approach is very cool, but a significant usability cliff for users that are domain first, CS second. A GC is a pretty good compromise for 99% of users since it is a minor…
I don't find ownership models that difficult. It's things one should be thinking of anyway. I think this provides a good example of where stricter checking/an ownership model like Rust has makes it easier than languages that do not have it (in this case, C++): https://blog.dureuill.net/articles/too-dangerous-cpp/
Re: A look at the Mojo language for bioinformatics
#49Earlier quoted context omitted.
On my machine, running the debug executable on the medium-size dataset takes ~14.5 seconds, and release mode takes ~0.8 seconds.
do you know why debug mode for rust is so slow? is it also compiling without any optimization by default? it's it checks for overflow?
There's also some debug information that is present in the file in debug mode, which leads to a larger binary size, but shouldn't meaningfully affect performance except in very simple/short programs.
Re: A look at the Mojo language for bioinformatics
#50Great post, but I think the author missed a few advantages of Mojo: * Mojo provides first-class support for AoT compilation of standalone binaries [1]. Julia provides second-class support at best. * Mojo aims to provide first-class support for traits and a modern Rust-like memory ownership model. Julia has second-class support for traits ("Tim Holy trait trick") and uses a garbage collector. To be clear, I really lik…
True, but the title of the blog is about Bioinformatics, and like another comment said: > Bioinformatics is like 0.1% dealing with FASTQ files and the rest is using the ecosystem of libraries for statistics and plotting. Many of them in R Considering that, do you need AOT, memory ownership for doing plotting and statistics? I'd argue not, and that's why R and Python are so popular in Bio.