Appreciate this post. I remember when I first started using Julia, I wanted to type every argument to every function because I thought static typing made me hip. Ran into a lot of problems with my types not being wide enough, etc. and had no performance impact.
Also, good to know about the NamedTuple. I've been away from Julia for about a year and am starting to get back into some development with it.
On another note, I just found out today that my department's HPC is still running Julia 0.4 and since we are in between IT people are not going to update it. Considering rewriting my project in Fortran or C++, waiting for the day when Julia is a first-class language
Julia 1.5 and 1.6 are going to have some really nice features performance-wise (1.5beta has cut a lot of allocations from my code and feels noticeably snappier than some older version).
Once they come out it might be worth having a push to get your cluster updated. I'm sure folks in the Julia slack (check out #HPC and #distributed) would be happy to help if they can, even if it's just at the level of building a local install in your user directory.
Try if the generic binaries just work for you. A lot of work has gone into making sure things just work even without root privileges, so you shouldn't have to wait for IT to get it set up for you.
Hopefully one day, Julia will include a static type checker. Until then, I think it's advisable to type every function just for the error messages alone: you'll always get dispatch errors on your functions, instead of some library functions instead. Makes things a lot easier to track down.
Thanks for posting —- I hit an issue recently this would have prevented: goal was to connect neural nets to probability distributions, the nn library took Float32 and the distribution library took Float64. Double-precision uncertainty seems counter to the purpose of uncertainty!
Better to not constrain the type of the inputs, unless it is a big problem
[+] [-] ohsonice|5 years ago|reply
Also, good to know about the NamedTuple. I've been away from Julia for about a year and am starting to get back into some development with it.
On another note, I just found out today that my department's HPC is still running Julia 0.4 and since we are in between IT people are not going to update it. Considering rewriting my project in Fortran or C++, waiting for the day when Julia is a first-class language
[+] [-] cbkeller|5 years ago|reply
Once they come out it might be worth having a push to get your cluster updated. I'm sure folks in the Julia slack (check out #HPC and #distributed) would be happy to help if they can, even if it's just at the level of building a local install in your user directory.
[+] [-] KenoFischer|5 years ago|reply
[+] [-] smabie|5 years ago|reply
[+] [-] bionhoward|5 years ago|reply
Better to not constrain the type of the inputs, unless it is a big problem