Scaling multi-threaded applications on multi-core machines

I am working on a project, we need more productivity. Over time, we continued to develop the design in order to work more in parallel (with both flow and distribution). Then the last step was to move part of it to a new machine with 16 cores. I find that we need to rethink how we are doing something scalable for many cores in a shared memory model. For example, a standard memory allocator is not good enough.

What resources do people recommend?

So far, I have found Dr. Dobbs' Sutter column a good start. I just got the "Multiprocessor Programming Program" and the O'Reilly book in Intel Threading Building Blocks

+5
source share
8 answers

A few other books that will be useful:

Also, consider relying less on sharing status between concurrent processes. You will significantly increase the scale, much better if you can avoid this, because you can distribute independent units of work without doing any synchronization between them.

- , , . , . , , , , , .

+5

, Google Performance. malloc, . .

+3

monty python " - " - /, , ( ). erlang ( : http://www.pragprog.com/titles/jaerlang/programming-erlang). , , .

:

.Net F # ( ). JVM Scala ( , Erlang, ). , "fork join" Doug Lea Java, .

+2

FreeBSD FreeBSD 7. jemaloc , -, .

, , , , . ( , Firefox 3 jemalloc , - .)

+1

Hoard, .

Lock Free List. - #, . , , , , .

0

Hoard, Google Perftools jemalloc -. scalable_malloc Intel Threading Building Blocks, .

, ++ Windows, gcc. redhat ( linux ), , / .

Erlang, . Erlang , ( ). :)

4 16 / . , , , - .

0
0

All Articles