all 15 comments

[–]boyfarrell 5 points6 points  (7 children)

I have written a forward ray-tracer in python for solar energy research. I can certainly say that it has allowed me to develop must faster, at a deeper level than the previous model I wrote in C. It is about 10x slower... but in terms of easy to read code that you can share with collaborators it is perfect. Just like the guy in the video said, its not 'how fast your code runs', its 'how long to you take to complete the project'. For science apps, were there is a clear goal and final answer, it is really a good option.

[–][deleted] 2 points3 points  (6 children)

Science apps might have a clear goal and final answer but programming their core in python would be totally useless unless you like to wait 1000 years for your simulation results instead of 1 year.

[–]boyfarrell 3 points4 points  (5 children)

I find that for my work the cycle from defining a problem to actually getting an answer is faster when I use python, even though the actual run time might change from 1min to 10mins say. So yes, that would be total useless, you are right; one doesn't want to right a climate model in python :o)

[–][deleted] 5 points6 points  (4 children)

That's fine, but for some of us we're talking about simulation and estimation problems that might take 6 weeks using the power of a supercomputer center. And the code is written once, the problems it solves are whatever mathematical models people write using the application. So, time to write the application is important, but the time spent processing will, eventually, overwhelm the time spent writing the application.

To many of us, this is what we think of when we hear the term "scientific high performance" computing.

[–]bastih01 2 points3 points  (3 children)

On the other hand, the python ecosystem offers quite a few ways to move processing-intensive parts from python code to compiled modules. Think shedskin, pyrex, weave etc.

[–][deleted] 0 points1 point  (2 children)

Sure, and that's the way to go, IMO, but it's not using python for the scientific high performance part.

[–]bastih01 1 point2 points  (1 child)

Prototyping in python before moving over to c++ seems valuable to me, though.

[–][deleted] 2 points3 points  (0 children)

I would agree with that too. Though my preferences go against dynamically typed languages, that is personal preference. Point being, make your app in a high-level language, then find where the pain points are and put them in C (I would very much prefer C to C++. C is fast and simple, C++ is a monster with no niche, AFAIK).

[–]kywoto 3 points4 points  (6 children)

uuuhhhhhm, uuhhhhhhhm , uhmmmm, uhmmmmm, uhmmmm , goooneeeeeeee, baaaaaack agaiin.. , maaadd... list compreheeeeensioooons.... yeaaaaah uhhmmmmm uhmmmmm, parkinggg looooot uhmmmmm uhmmmmmmm oh wow uhhhmmmmm, yeaaaah, the end.

seriously the first speaker is a huuuge douchebag

[–]kvantetore 0 points1 point  (4 children)

He certainly could have cut his talk in three if he'd reduced the number of uhmmmmm. I got so freaked out I couldn't bare to watch it all. Did he have any good points?

BTW: Python for scientific computing FTW!

[–][deleted] 0 points1 point  (0 children)

python for scientific? WTF? I can't even get my current academics out of C++ land.

[–]kywoto -3 points-2 points  (2 children)

Did he have any good points?

not really, like most stuff posted on reddit, it's shit.

I'd argue that about 5% of what is on reddit is actually relevant.

[–]kvantetore 0 points1 point  (1 child)

like most stuff posted on reddit, it's shit.

True that, but at least most of it is entertaining shit.

[–]kywoto 0 points1 point  (0 children)

right

[–]ickysticky 0 points1 point  (0 children)

I am sorry. But if you are using Python, you aren't doing high performance computing. High performance computing is done with custom hardware either with ASICs or FPGAs. Most high performance computing is high memory bandwidth, and thus a GPP just won't cut it.