Hot answers tagged

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 ...
rchilton1980's user avatar
  • 4,822
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 ...
Brian Borchers's user avatar
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 ...
LKlevin's user avatar
  • 2,493
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 ...
Julius's user avatar
  • 285
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 ...
Brian Borchers's user avatar
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. ...
Brian Borchers's user avatar
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 ...
Neil Lindquist's user avatar
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 ...
Bill Barth's user avatar
  • 10.9k
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 ...
Juan M. Bello-Rivas's user avatar
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 ...
Wolfgang Bangerth's user avatar
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 ...
Wolfgang Bangerth's user avatar
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 ...
Richard's user avatar
  • 3,921
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.
Carles Fenoy's user avatar
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 ...
Reid.Atcheson's user avatar
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 ...
Nox's user avatar
  • 341
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 ...
nicoguaro's user avatar
  • 8,370
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 ...
Chris Rackauckas's user avatar
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 ...
Reid.Atcheson's user avatar
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 ...
VoB's user avatar
  • 540
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 ...
MPIchael's user avatar
  • 2,627
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 ...
LedHead's user avatar
  • 1,223
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 ...
user3482876's user avatar
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 ...
Victor Eijkhout's user avatar
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 ...
user14717's user avatar
  • 2,135
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.
Richard's user avatar
  • 3,921
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 ...
Abdullah Ali Sivas's user avatar
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 ...
Abdullah Ali Sivas's user avatar
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 ...
Bill Barth's user avatar
  • 10.9k
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 ...
High Performance Mark's user avatar
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 ...
LedHead's user avatar
  • 1,223

Only top scored, non community-wiki answers of a minimum length are eligible