> I hope you can list all of the groups of order < 8 without having to think too hard. Welp, guess I'm out.
Here is more recent video that beats those records: https://www.youtube.com/watch?v=jPyf5kIGoKA Except! Even this is now out of date, and I think BlueScuti has broken some of these records! The Tetris leaderboards are…
> “The pyramids seem like pretty monumental work” You don't say...
I ran with OMP_NUM_THREADS=1, but your point is well taken. As for the original post, I felt a bit embarrassed about my original comments, but I think the compilers actually did fairly well based on what they were…
I'm sure there's more to it, but just comparing the profile output shows aggressive use of prefetch and broadcast instructions.
I just did a test of OpenBLAS with Intel-compiled BLAS, and it was about 6 GFLOP/s vs 150 GFLOP/s, so I must admit that I was wrong here. Maybe in some sense 4% is not bad, but it's certainly not good. My faith in…
You are right, I just tested this out and my speed from BLAS to OpenBLAS went from 6 GFLOP/s to 150 GFLOP/s. I can only imagine what BLIS and MKL would give. I apologize for my ignorance. Apparently my faith in the…
I don't disagree, but where are those techniques presented in the article? It seems like she exploits the particular shape of her matrix to align better with cache. No BLAS library is going to figure that out. I am not…
How do you feel about Nvidia endorsing do concurrent migration to GPUs? Would that be classified as parallelization?
There is an implication here that the Fortran implementation of `SGEMM` is somehow inadequate. But any modern Fortran compiler will quite easily apply the AVX and FMA optimizations presented here without any additional…
Unfortunately I don't think the compilers will add it in time.
I have only looked at the GCC Fortran frontend. I would not say it is necessarily difficult but rather very ad-hoc and disconnected from the rest of gcc. I don't see many tools for specifying a grammar or tokens.…
I know someone who took that course. They did not have fond memories of it. My impression is that it can be a very frustrating way to learn mechanics if you don't have much interest in functional programming.
It's an excellent essay, and the Fortran community owes you a major gratitude for promoting these issues. But surely there loops can be safely parallelized if the iterations do not interact, e.g. per-element array…
Very true, and it opens the door to new optimizations which are not possible when going through a library (at least in the case of MPI).
I agree that it is not a parallel construct. But it can nonetheless be parallelized if certain criteria are met.
Do concurrent loops can also be parallelized.
I remember going to jai alai games in Miami as a kid. I was never very into sports, but it was fun to watch. As far as I could tell, the adults were there to bet on the games.
I have not yet seen anything like this, but I have observed the Intel compiler produce different bytecode on Intel and AMD machines. In one case, the compiler would use masking vector instructions on Intel but not on…
We work hard to retain floating point reproducibility in climate models. I have a presentation on this, if anyone is interested. https://www.marshallward.org/fortrancon2021/#/title-slide…
True but every kind is considered a type.
Fortran is no longer in ALL CAPS.
Fortran supports both of these, with `mod` as the C-like truncated modulo and `modulo` as the floored modulo. Having both is convenient, but you do get errors from people who don't realize the difference
I think the statement has different meanings to different people, but one "unsolved" problem is the ability to model the dynamics of small scales (the "turbulence") in terms of the large-scale "observed" flow. The…
We use biharmonic diffusion operators in oceanography as a basic turbulence model, which is effectively a fourth order derivative in space. It is like an accelerated diffusion which aggressively dissipates small scales…
> I hope you can list all of the groups of order < 8 without having to think too hard. Welp, guess I'm out.
Here is more recent video that beats those records: https://www.youtube.com/watch?v=jPyf5kIGoKA Except! Even this is now out of date, and I think BlueScuti has broken some of these records! The Tetris leaderboards are…
> “The pyramids seem like pretty monumental work” You don't say...
I ran with OMP_NUM_THREADS=1, but your point is well taken. As for the original post, I felt a bit embarrassed about my original comments, but I think the compilers actually did fairly well based on what they were…
I'm sure there's more to it, but just comparing the profile output shows aggressive use of prefetch and broadcast instructions.
I just did a test of OpenBLAS with Intel-compiled BLAS, and it was about 6 GFLOP/s vs 150 GFLOP/s, so I must admit that I was wrong here. Maybe in some sense 4% is not bad, but it's certainly not good. My faith in…
You are right, I just tested this out and my speed from BLAS to OpenBLAS went from 6 GFLOP/s to 150 GFLOP/s. I can only imagine what BLIS and MKL would give. I apologize for my ignorance. Apparently my faith in the…
I don't disagree, but where are those techniques presented in the article? It seems like she exploits the particular shape of her matrix to align better with cache. No BLAS library is going to figure that out. I am not…
How do you feel about Nvidia endorsing do concurrent migration to GPUs? Would that be classified as parallelization?
There is an implication here that the Fortran implementation of `SGEMM` is somehow inadequate. But any modern Fortran compiler will quite easily apply the AVX and FMA optimizations presented here without any additional…
Unfortunately I don't think the compilers will add it in time.
I have only looked at the GCC Fortran frontend. I would not say it is necessarily difficult but rather very ad-hoc and disconnected from the rest of gcc. I don't see many tools for specifying a grammar or tokens.…
I know someone who took that course. They did not have fond memories of it. My impression is that it can be a very frustrating way to learn mechanics if you don't have much interest in functional programming.
It's an excellent essay, and the Fortran community owes you a major gratitude for promoting these issues. But surely there loops can be safely parallelized if the iterations do not interact, e.g. per-element array…
Very true, and it opens the door to new optimizations which are not possible when going through a library (at least in the case of MPI).
I agree that it is not a parallel construct. But it can nonetheless be parallelized if certain criteria are met.
Do concurrent loops can also be parallelized.
I remember going to jai alai games in Miami as a kid. I was never very into sports, but it was fun to watch. As far as I could tell, the adults were there to bet on the games.
I have not yet seen anything like this, but I have observed the Intel compiler produce different bytecode on Intel and AMD machines. In one case, the compiler would use masking vector instructions on Intel but not on…
We work hard to retain floating point reproducibility in climate models. I have a presentation on this, if anyone is interested. https://www.marshallward.org/fortrancon2021/#/title-slide…
True but every kind is considered a type.
Fortran is no longer in ALL CAPS.
Fortran supports both of these, with `mod` as the C-like truncated modulo and `modulo` as the floored modulo. Having both is convenient, but you do get errors from people who don't realize the difference
I think the statement has different meanings to different people, but one "unsolved" problem is the ability to model the dynamics of small scales (the "turbulence") in terms of the large-scale "observed" flow. The…
We use biharmonic diffusion operators in oceanography as a basic turbulence model, which is effectively a fourth order derivative in space. It is like an accelerated diffusion which aggressively dissipates small scales…