Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

These core counts are insane. I’m curious about any programming languages that are designed to be easily to parallelize and how they will work on these 96 core chips


make -j works pretty darn well in my experience.

Honestly, the #1 programming language for parallelization, in practice, is bash scripting. you can convert any single-threaded program into a background thread with the & on the end, and then start running something else.

Yeah yeah yeah, people wanna be complicated with pthreads or async or other features. But... bash's "background" processing (&) gets a surprising amount of things done in my experience. Just spin up a program 300+ times with a & to make them all process in the background, and you're set.


I've found make -j doesn't actually scale very well when you have a ridiculous number of cores and less than, e.g., 2 GB RAM/core.


ram bandwidth matters in some cases, check for arrow/wide GMI3 in Genoa slides


C++ has been used on machines with very high CPU core counts for a long time. By now, things like std::async for spawning tasks on a different core are even part of the standard library.

Go is also really good at saturating many cores with its low-overhead goroutines.


Fortran is very well suited for highly parallalized workloads, given that all HPC tasks are basically parallelized matrix manipulations.

For some reason people have the notion that Fortran is still the punch-card days, but Fortran 08 is in fact widely used and quite friendly nowadays. If you're building a very-parallel application that could use something like MPI, you should very seriously consider Fortran.


Rust is very good for parallelizing code, especially if used with libraries like https://crates.io/crates/rayon


All languages implemented with llvm-mlir.

Others languages such Chapel, Halide probably will do fine


I'd use all of them for 3D! And MSVC supports parallel compilation since, like, 2009..?


Doing that in C is not that hard with OpenMP, you don't even have to fiddle with threads and/or manually parallelize your code. Just an example: https://tildesites.bowdoin.edu/~ltoma/teaching/cs3225-GIS/fa...


Go can utilize the full CPU with ease :)




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

Search: