this post was submitted on 13 Sep 2023
24 points (92.9% liked)

Programming

17444 readers
184 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[โ€“] UlrikHD@programming.dev 1 points 1 year ago (1 children)

Interesting stuff, might give me an excuse to look into rust in the future. Thanks!

[โ€“] Turun@feddit.de 7 points 1 year ago* (last edited 1 year ago)

I personally did one project with PyO3 and it was a breeze.

For data analysis I initially implemented my physics model in python (say f=m*a), but during a fitting procedure (what is "a", given a measured "m" and "f"?) this part of the code is called thousands of times.

Writing such a simple function is rust (twi numbers in (m and a guess for a), one number out (predicted f)) was easy. Since there are no complex data structures involved the borrow checker was happy the whole way through. Rust has bindings for numpy with the ndarray crate/library, so even that was simple.

Simply writing the numerics in rust gave a 40x speedup in my case. I got another 2.5x by making the main loop of my calculation parallel. With the rayon crate this is again a single line change, turning for x in array {...} into for x in array.par_iter() {...}

I can't recommend it enough. If you have a single hot spot in your python code, this is the way to go, even if you are new to rust.