If you are *physicist* and you look at the future of computer architectures, 
you can think that it's inevitable that sooner or later multi-core computers 
will adopt an architecture where memory is not shared, each core has its own 
memory (plus a bit of memory for message caching), and sends messages to other 
cores. For such hypothetical computer architecture an actor-based programming 
language is quite fitting. So it's good for D to have something like actors.

But several practical considerations make such model appear unrealistic. So I 
think a structure closer to the reality will be the same with units that don't 
share a single memory and send messages to each other. But the units themselves 
will be composed by several cores that share a single memory (plus caches), and 
each core will have advanced SIMD instructions (see AVX instructions that 
perform a kind of vectorized 'if' too).

(Beside such structure there can be something like a GPU, with many more tiny 
cores, see the recent NVIDIA Tesla.)

So a programming language that wants to be efficient needs to use well such 
two-level architecture (the Chapel language seem able to adapt to that, it has 
domains for its memory, etc.). So maybe an actor-like-based concurrency design 
is not enough. D has array ops that once improved and well implemented can be 
use SIMD instructions in a good enough way.

Bye,
bearophile

Reply via email to