I started running some reality checks. I hope experiments like this would re-enforce our assessment about Julia’s greatness in performance, as compared to the Python+Numba ecosystem.
If anyone is interested in running additional reality checks, there are quite a few examples at this repo. Let me know if you want to collaborate so we don’t duplicate any efforts.
I don’t understand why you code the functions as loops. Unless I missed something, they just vectorize a Black-Scholes. You could just broadcast, which would (I expect) do the same thing, but be more idiomatic.
The code is intentionally made to be exactly the same as in Python’s implementation
The point that I’m trying to prove -
Without additional effort in code optimization, a Julia program should run faster by default. If the code sucks (like in this case) then the Python version should equally suck and therefore it would still be a fair comparison.
I did not say that the code does “sucks”, it is just that one could write it differently.
Also, if I remember correctly, you can get call from the put prices from parity, or vice versa. I would just return either (for both Python and Julia, to be consistent). YMMV.
IHaha… I thought that might be a strong word when I wrote the post but that’s how Americans describe these things (I hear them all the time from my kids and got influenced )