I am always amazed when people think that using some 3rd party library would do a miracle. Libraries used don't matter at all. One can write multithreading program without ANY 3rd party libraries (I DID and I am very glad that I did not rely on any library because after many experiments with various 3rd party libraries I found that they all are very limited and slow). Plain Windows API is perfectly enough and in hands of skilled programmer is the fastest solution (no extra 3rd party layers + full control over what is really happening). What is limiting factor is whenever the memory/computation or communication-to-computation ratio and locality of reference. In current computers, single CPU core accessing cache is running 4x the speed of RAM so single core can saturate RAM. So whenever given application scales linearly or not depends mainly on memory/computation ratio. If your algorithm requires lots of CPU power (trigonometric / transcendental functions) compared to memory access it will scale. If it does not do lots of calculations but uses lots of data (more than cache size), then it will not scale linearly When the data fits in the L1 or L2 cache, it scales better than the alternatives.
because there is only ONE physical RAM and it is shared among all cores.
Best regards,
Tomasz Janeczko
amibroker.com
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.