
Nuts and Bolts of Multithreaded Programming (2011) - fspacef
https://software.intel.com/en-us/articles/nuts-and-bolts-of-multithreaded-programming
======
fspacef
This is required reading as part of ME344: Introduction to High Performance
Computing at Stanford.

I think it gives a great high level overview of how parallel programming
works. Great starting point for those interested in learning more about HPC
systems!

------
willtim
Given that the sustainability of Intel's profit margins are dependent on it, I
am surprised they do not put more effort into making parallel programming
easier. For example, GHC Haskell has a very promising parallelism/concurrency
story with its many available programming models, including software
transactional memory and lightweight threads, yet it is Microsoft funding it
and not Intel.

~~~
vilya
Maybe the effort just isn't where you're looking? Intel provides the Threading
Building Blocks library for C++; some top notch debugging & profiling tools
with multi-threading support; very good documentation; and they do quite a bit
of community outreach to educate about and promote multi-threaded programming.
(I'm not affiliated with them, just grateful for all of that stuff!)

~~~
willtim
I'm aware of TBB, but IMHO C++ is not the future of parallel and concurrent
programming, or at least not the future I am hoping for.

~~~
CyberDildonics
What is one example of haskell being used effectively for parallel execution
in a real world scenario?

~~~
willtim
Haskell is used for critical projects in production at Standard Chartered,
Barclays and Facebook. There are also numerous startups. For both parallelism
and concurrency, Haskell has a particularly good story. There's now even an
O'Reilly book: "Parallel and Concurrent Programming in Haskell"

[http://chimera.labs.oreilly.com/books/1230000000929/index.ht...](http://chimera.labs.oreilly.com/books/1230000000929/index.html)

------
hamandcheese
Although it was updated in 2011, the HN title is a bit misleading.

> As Intel puts two cores on a single piece of silicon and as multi-socket
> systems continue to grow, shared memory systems are going to become the
> norm.

Clearly this was originally published quite a bit earlier.

------
kulu2002
Good introductory article for cores, threads, shared memories and all. Would
have been good if there were few lines about debugging/ troubleshooting multi-
threaded systems

------
fizixer
Title mentions multithreaded programming, while the first line of the text (as
well as major emphasis through the article) is on parallel programming.

And surprisingly, there is no mention of GPU.

Almost as if they want you to think parallelism can only be achieved through
CPUs (cores, and threads) but don't want to admit it in the title.

~~~
nine_k
Can a SIMD system be really considered "multi-threaded"?

~~~
chrisseaton
SIMD is the classic example of how you don't need concurrency to have
parallelism.

