13
votes
Accepted
Why does sparse linear algebra have a low arithmetic intensity?
BLAS1-operations, BLAS2-operations, and sparse-operations share the same curse of low arithmetic intensity, that they perform $O(1)$ flops for each memory read (contrast this to a BLAS3-operation like ...
10
votes
Communication overhead in supercomputing
A long standing favorite benchmark in high performance computing has been the HPLinpack benchmark, which measures the speed of a computer system in floating point operations per second while solving a ...
8
votes
Accepted
Intel Knights Landing work loads vs NVIDIA GeForce
Like Brian said, the Xeon Phi cores are not at all comparable to the CUDA ones. The problem with the Phi is that it's somewhere between two horses.
If you are doing highly parallel floating point ...
8
votes
Python implementation for Frechet Distance
I realize this question was asked a while ago, but I recently needed the Freschet distance as well.
I couldn't find any implementations for Python, so I wrote my own based on the paper: "Computing ...
7
votes
Accepted
A good, simple book/resource on Parallel Programming in C++ for scientific computing
One of the first things that you need to understand about parallel programming is the difference between shared memory multiprocessor computer systems and distributed memory clusters.
A shared ...
7
votes
Intel Knights Landing work loads vs NVIDIA GeForce
CUDA cores aren't at all comparable to the separate processor cores in the Xeon Phi coprocessors. The Phi coprocessor cores are full fledged processors that can have their own loops, branching, etc. ...
7
votes
Questions on the theory of distributed numerical algebraic computation
Building such a library from scratch is a serious undertaking. The SLATE library, which targets the functionality you're looking at, has taken about 6 years with 4-7 full-time developers, most of ...
6
votes
Communication overhead in supercomputing
The honest answer is that we don't know. The answer depends heavily on what is actually being run and what code the user has written. As Brian Borchers points out, there's a big difference between two ...
6
votes
Borrow computational power from machines around me
You could install BOINC on those machines. When the computers become idle, the BOINC screensaver/client requests tasks from a server and computes them. See more information about it here. This is ...
6
votes
How to simulate over 1 billion particles?
A first step, if you "have never been up in computing", is to read the literature and see what others are doing and have done.
The second step is that you will likely learn that what you want to do ...
6
votes
Accepted
Can Julia be used to create a large-scale CFD software like OpenFOAM?
I think the question is just too subjective to answer. In the end, there are excellent C++ libraries for nearly everything that has to do with the solution of PDEs, whereas they are largely missing in ...
6
votes
PhD in scientific computing to be a scientific programmer
I think you are asking the wrong question.
You are asking "do I need a PhD for folks to hire me as a scientific programmer?" This is a kind of hypothetical. You're asking and getting ...
5
votes
Accepted
Borrow computational power from machines around me
You can use HTCondor that is designed exactly to "steal" cpu cycles from remote machines. It may be a little difficult to setup but I think this may be the best approach.
5
votes
Is it a good idea to use vector<vector<double>> to form a matrix class for high performance scientific computing code?
I don't recommend it, but not because of performance issues. It will be a little less performant than a traditional matrix, which are usually allocated as a big chunk of contiguous data that is ...
5
votes
HPC : should I compile on the head node or on a compute node?
Let me supply a belated answer from the POV of a cluster user and a cluster administrator.
A well-designed cluster will, in general, be as homogeneous as possible, with login-nodes being generally a ...
5
votes
Leveraging scipy for matrix free finite elements
I would say that the implementation + verification + unit testing would take you more than just 3 weeks. Although, if you are planning to invest that time, you might add that capabilities to ...
5
votes
Accepted
Where can an undergraduate go to find cores on a budget?
You need funding, you need a better algorithm, a better implementation, or you need to change your problem. To get funding, you need to work with your adviser. This could be about using grant money or ...
5
votes
Why does sparse linear algebra have a low arithmetic intensity?
This really depends on the operations you are including in your question. If you took the sparse equivalent of any level 1 BLAS or level 2 BLAS algorithm, then yes they are memory bound (not compute ...
5
votes
Accepted
How much space store a matrix of numbers?
If you consider a 4 by 4 matrix of integers, it will be stored in memory as a unique array of integers. Since each integer is 4 bytes ( 32 bits) (sometimes not, but it's not important here) then you ...
5
votes
Profiling scientific computing codes on MacOS
One way to approach this would be to record the performance information on your machine (compile with -pg (gprof) compiler option), run your program like you normally would, and write that data to a ...
4
votes
Working with large mesh files
My answer is primarily opinion-based, given my experience. In my work, I haven't (yet) dealt with meshes quite as large as what you're describing. However, I've seen large enough meshes to hint that ...
4
votes
Accepted
Leveraging scipy for matrix free finite elements
It turns out that scipy does indeed support this type of overloading.
One simply needs to write a class inheriting from ...
4
votes
simulation outputs differ across hardware platforms
How identical are your two runs? Same number of processors at least?
If you're doing a parallel reduction then one platform can use a different algorithm, so because of lack of associativity you get ...
4
votes
simulation outputs differ across hardware platforms
Have you considered the possibility that they're both wrong, or both "right"?
Do a quick backward error computation $\left\| L u - f\right\|$ (with requisite adjustments for you case) at the end of ...
4
votes
How to store a TB size array in C++ on a cluster
You could try using UPC++, which sets up a globally accessible address space distributed across your nodes.
A more standard approach would be to learn how to use MPI.
4
votes
Accepted
Pricing of HPC resources in terms of power usage
To my knowledge, yes and no.
When HPC centres (many of them) calculate the bill for companies and private individuals, they assume some average amount of power is going to be used and charge ...
4
votes
Problems on the algebraic theory of sparse matrices
your question is too general. It is very to hard to give specific advice. I will suggest you two books that you can use as first references, but they may not help much in terms of GPU computing for ...
3
votes
Accepted
How does MPI differentiate between two computers?
The standard is purposefully silent on these issues preferring to leave such issue to library implementers to figure out. There's no need to standardize such mechanisms. Most network hardware has a ...
3
votes
A good, simple book/resource on Parallel Programming in C++ for scientific computing
I quite liked Parallel Scientific Computing in C++ and MPI when I first used it few years ago. I've a feeling it's C++ is quite dated now and, as has already been observed, MPI and C++ don't play ...
3
votes
A good, simple book/resource on Parallel Programming in C++ for scientific computing
Here's a couple of resources for MPI for C language.
mpitutorial.com
A User's Guide to MPI by Peter Pacheco. This is accessible from the page that @BillGreene referenced in his comment, but this is ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
hpc × 145parallel-computing × 42
c++ × 12
mpi × 12
python × 10
software × 9
gpu × 9
numerics × 8
performance × 8
fortran × 7
molecular-dynamics × 7
pbs × 7
sparse-matrix × 6
libraries × 6
simulation × 5
finite-element × 4
optimization × 4
fluid-dynamics × 4
computational-physics × 4
cloud-computing × 4
linear-algebra × 3
reference-request × 3
computational-chemistry × 3
dense-matrix × 3
cuda × 3