C++ Parallelization Libraries: OpenMP vs. Thread Building Blocks [closed]

I haven’t used TBB extensively, but my impression is that they complement each other more than competing. TBB provides threadsafe containers and some parallel algorithms, whereas OpenMP is more of a way to parallelise existing code. Personally I’ve found OpenMP very easy to drop into existing code where you have a parallelisable loop or bunch … Read more

How do SMP cores, processes, and threads work together exactly?

Cores (or CPUs) are the physical elements of your computer that execute code. Usually, each core has all necessary elements to perform computations, register files, interrupt lines etc. Most operating systems represent applications as processes. This means that the application has its own address space (== view of memory), where the OS makes sure that … Read more

Haskell lightweight threads overhead and use on multicores

GHC’s runtime provides an execution environment supporting billions of sparks, thousands of lightweight threads, which may be distributed over multiple hardware cores. Compile with -threaded and use the +RTS -N4 flags to set your desired number of cores. Specifically: does this mean that creating a lot of them (like 1000) will not have a drastic … Read more

How are you taking advantage of Multicore?

My research work includes work on compilers and on spam filtering. I also do a lot of ‘personal productivity’ Unix stuff. Plus I write and use software to administer classes that I teach, which includes grading, testing student code, tracking grades, and myriad other trivia. Multicore affects me not at all except as a research … Read more

Multithreading and multicore differences

Firstly is there a difference between multithreading and multicore? Yes. Multithreading and Multicore are different pieces of terminology that apply to different areas of computing. Multicore refers to a computer or processor that has more than one logical CPU core, and that can physically execute multiple instructions at the same time. A computer’s “core count” … Read more

Do the new C# 5.0 ‘async’ and ‘await’ keywords use multiple cores?

Two new keywords added to the C# 5.0 language are async and await, both of which work hand in hand to run a C# method asynchronously without blocking the calling thread. That gets across the purpose of the feature, but it gives too much “credit” to the async/await feature. Let me be very, very clear … Read more

How difficult is Haskell multi-threading?

What is the state of Haskell multi-threading? Mature. The implementation is around 15 years old, with transactional memory for 5 years. GHC is a widely used compiler, with large open source support, and commercial backing. How easy is it to introduce into programs? This depends on the algorithm. Sometimes it can be a one line … Read more

R package that automatically uses several cores?

R can only make use of multiple cores with the help of add-on packages, and only for some types of operation. The options are discussed in detail on the High Performance Computing Task View on CRAN Update: From R Version 2.14.0 add-on packages are not necessarily required due to the inclusion of the parallel package … Read more