Where should I make heavy computations ? Client or server side?
Consider both situations:  If the computation is client-side, then your client gets loaded, the computation power of the client computer (which maybe is just a mobile phone or whatever) comes into play, and it won't matter much whether other users of the site are doing computations at the same time.
On the other hand, if the computation is done server-side, then your server gets loaded, the computation time in a single-user situation is probably smaller (because your server probably is more powerful than the average client computer), but it will drop dramatically in case you have lots of users accessing your server at the same time.
Other aspects come into play:

If you do it server-side, you should ensure that no private data gets leaked in the process of transmitting the parameters or the results (so use https or similar).
Doing it server-side allows for later upgrading of the computational power (maybe split the task onto several nodes in order to have smaller computation time for higher server costs).
Doing it client-side might allow to do it even off-line, given a proper caching mechanism.

So, all in all, your question is too broad and underspecified to give a clear answer.
I have a desktop application, made in Python, with PyQT and scipy / numpy. 
The aim of the program is, to find the optimal set of parameters for a differential equation, given some data. 
Thus, we use a numerical solver and an optimization routine from numpy. The computation is quite eavy, but also quick (30 sec max), but can become longer (several hours) if we use custom parameters space exploration.
The next step is to "put it on the cloud", so the user doesn't have to bother how to install the application. 
Thus, we want to create a Flask application, with display using d3.js or something like that. 
I have never done any JS, so I wanted to know what is the best architecture :

the user uploads his data, they are sent on the server, it performs the computations and send them back => we can use scipy / numpy on the server, but too many simultaneous connections can shut down everything.
the user uploads his data, they are processed in JavaScript, on the client side => no more problem on the server, but I have to discover a new language and implement scientific computations myself (and I think it will be longer than the Fortran routines from numpy)

Using / learning JS is not the real problem, being efficient with it is more problematic. 
Which is the best option for future modifications (the computations are longer, we want to provide a clustering of the results...) and for development time.
What would you do ? 
Thanks.