All Questions
11,504
questions
172
votes
8
answers
141k
views
Recommendations for a usable, fast C++ matrix library?
Does anyone have recommendations on a usable, fast C++ matrix library?
What I mean by usable is the following:
Matrix objects have an intuitive interface (ex.: I can use rows and columns while ...
105
votes
14
answers
12k
views
Is it worthwhile to write unit tests for scientific research codes?
I am strongly convinced of the value of using tests that verify a complete program (e.g. convergence tests), including an automated set of regression tests. After reading some programming books, I've ...
97
votes
19
answers
134k
views
Is there a high quality nonlinear programming solver for Python?
I have several challenging non-convex global optimization problems to solve. Currently I use MATLAB's Optimization Toolbox (specifically, fmincon() with algorithm=<...
94
votes
10
answers
26k
views
What kinds of problems lend themselves well to GPU computing?
So I've got a decent head for what problems I work with are best one in serial, and which can be managed in parallel. But right now, I don't have much of an idea of what's best handled by CPU-based ...
78
votes
5
answers
21k
views
How much better are Fortran compilers really?
This question is an extension of two discussions that came up recently in the replies to "C++ vs Fortran for HPC". And it is a bit more of a challenge than a question...
One of the most often-heard ...
72
votes
5
answers
47k
views
How do I take the FFT of unevenly spaced data?
The Fast Fourier Transform algorithm computes a Fourier decomposition under the assumption that its input points are equally spaced in the time domain, $t_k = kT$. What if they're not? Is there ...
68
votes
10
answers
16k
views
What are some good strategies for improving the serial performance of my code?
I work in computational science, and as a result, I spend a non-trivial amount of my time trying to increase the scientific throughput of many codes, as well as understanding the efficiency of these ...
66
votes
13
answers
51k
views
C++ vs Fortran for HPC
In my computational science PhD program, we are working almost exclusively in C++ and Fortran. It seems like some professors prefer one over the other. I am wondering which one is 'better' or if one ...
61
votes
4
answers
11k
views
How mature is the "Julia" scientific computing language project?
I'm considering learning a new language to use for numerical/simulation modelling projects, as a (partial) replacement for the C++ and Python that I currently use. I came across Julia, which sounds ...
58
votes
17
answers
4k
views
Is it common not to use libraries for standard numerical algorithms, and why?
A lot of numerical algorithms (integration, differentiation, interpolation, special functions, etc.) are available in scientific computation libraries like GSL. But I often see code with "hand-rolled" ...
58
votes
4
answers
9k
views
What guidelines should I follow when choosing a sparse linear system solver?
Sparse linear systems turn up with increasing frequency in applications. One has a lot of routines to choose from for solving these systems. At the highest level, there is a watershed between direct (...
57
votes
7
answers
22k
views
Is it a good idea to use vector<vector<double>> to form a matrix class for high performance scientific computing code?
Is it a good idea to use vector<vector<double>> (using std) to form a matrix class for high performance scientific computing code?
If the answer is no. ...
57
votes
3
answers
39k
views
What are the conceptual differences between the finite element and finite volume method?
There is an obvious difference between finite difference and the finite volume method (moving from point definition of the equations to integral averages over cells). But I find FEM and FVM to be very ...
57
votes
3
answers
26k
views
Why is division so much more complex than other arithmetic operations?
I recently encountered a case where I needed an integer division operation on a chip that lacked one (ARM Cortex-A8). While trying to research why that must be, I found out that in general division ...
56
votes
7
answers
8k
views
What core skills should every computational scientist have? [closed]
Every scientist needs to know a bit about statistics: what correlation means, what a confidence interval is, and so on. Similarly, every scientist ought to know a bit about computing: the question is, ...