Hacker News new | past | comments | ask | show | jobs | submit login

Fortran is widely used for scientific computing and in high performance computing some knowledge of assembly language is useful in making use of vector instructions - compiler auto-vectorisation still needs a lot of help.

Fortran and assembly language are key skills at every national supercomputing center in the world.




Yea, but embedded Fortran, and assembly of whatever architecture that voyager runs on is a different beast.


Point well taken. Couple that with the need for an intimate knowledge of idiosyncrasies endemic to salvaged 8086 chips operating in space.


Is it embedded Fortran or a Fortan cross complier for the target on the space craft.


Really ? I thought people who need super computing performance have moved onto programming for the gpu with cuda c. Are people actually writing fortran or gpu assembly for the gpu outside nvidia ?


Ah, the GPU hype. Here's something the GPU vendors don't tell you: a huge part of scientific computing doesn't get any speedup at all from GPUs. A good example is fluid dynamics research, or essentially anything that boils down to solving PDEs or doing huge sparse linear algebra problems.

Even for the fields where it makes sense, like molecular dynamics, it's not obvious that you get more performance per dollar than with CPUs. Shameless self-plug: http://asmunder.github.io/2015/04/Inaugural-post:-on-the-ben...


I guess they do have fortran cuda now: http://www.pgroup.com/lit/articles/insider/v1n3a2.htm

12 gb ram may not be enough for some physics apps, but it's made a big difference for workloads requiring under 12gb of memory, when you get a 250 gb/s data transfers on gddr5 over the 12gb/s for ddr3


Mainly because no one in hpc is trying...

The few that are are blowing things out of the water[0].

[0] https://www.hzdr.de/db/Cms?pNid=3227


Well, no. There are fundamental algorithmic reasons why some problems can exploit GPU power and some cannot. Look at any of the ~15 most popular molecular dynamics codes today, they all have some sort of GPU support. Look up something that solves an elliptic PDE, like incompressible Navier-Stokes, and you'll see no-one using GPUs.

As for the PIC code you link to: they don't mention any sort of fair benchmark anywhere, so if they are objectively "blowing things out of the water", they're rather silent about it.


The time-limiting step in molecular dynamics is a gigantic 3D fourier transform of the space containing the simulated atoms. This is relatively easy to parallelize provided you have fast communication between processors to synchronize data between between the timesteps.

I know less about Navier-Stokes solvers, but as far as I understand, it ends up as a linear system of equations that is far harder to parallelize.


> it ends up as a linear system of equations that is far harder to parallelize.

Yeah, basically this. If the fluid is compressible, you get a hyperbolic system with only "local interactions", and this is fairly easy to parallelize on standard CPU clusters by using domain decomposition. People have scaled this to millions of cores, but it's not very GPU-friendly.

If the fluid is incompressible, the problem is technically a differential-algebraic equation with an index-two constraint. To solve this you use a splitting method that gives you an elliptic (Poisson) equation for the pressure. This is a major headache even with the fastest interconnects we have today (we're talking 40 Gbit/s links), since the pressure at one point depends on the pressure at all the other points in your domain in each time step. For single-phase flow, you can use Fourier transforms to speed this up, but for two-phase flow you're outta luck.


I think for pure balls to the wall performance your still using Fortran probably the Intel compiler with the extensions for HPC/CUDA etc.


How much can understanding assembly be understood as a skill? Most of the skill that goes into optimization isn't very architecture dependent but CPU and algorithm dependent.


Looking at the compiler output.


Yea I guess I find it just a matter of reference and practice.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: