|
|
|
Ask HN: Resources to Learn Scientific Computing?
|
|
10 points
by TripleH
1856 days ago
|
|
After some years of software engineering (mobile apps and back end development) in classic business domains, I recently joined a company in a scientific domain (space). I gathered along the way knowledge of how to architecture and build systems depending on the expected volumetry (numbers of active users) and its distribution in time (periods of activity). Now I'm faced with the challenge of turning Matlab (or equivalent) scripts of the research team designed to run on a single machine for a single data point, into a system able to perform those computations on a lot more data and eventually in a distributed manner. I am well aware there is no silver bullet and will have to compose a solution based on the specifics of my use case. That's why I'm asking you, the truly diverse HN community, for the best resources you know on the subject. |
|
But moving past that, first of all there is no book that would help you here. Most introductory textbooks will focus on implementing numerical methods and the math behind those methods. You most definitely should not try to write any numerical code yourself. What you need is a general know how of how to build a simulation pipeline. There is no textbook or class that covers this as far as I know. Graduate students learn it on the job.
Your MATLAB/Python scripts are already using the most optimized libraries. For parallelization, you have two options. There is OpenMPI, which can be used with most languages and MATLAB has its own built in parallelism library. OpenMPI is much more technical and you need to actually understand what the code is doing to use it, so this is not an option for you. I suggest you get acquainted with MATLAB and do everything in MATLAB. If they have code written in other languages it is easier to rewrite it in MATLAB than to try to do anything else. Translating numpy to MATLAB is not very hard. Since they have a MATLAB license you might benefit from some MATLAB training that they might have access to. I know MATLAB offers online classes and seminars and maybe even technical support. Thinking about it, a book on the MATLAB environment might be very useful for you. I cannot give you any suggestions though.
And ignore the other comments. They aren't any good. You most definitely don't want to rewrite your simulation in FORTRAN. MATLAB is already using FORTRAN under the hood.