Settings

Theme

Auto-parallelizer: #pragma loop

2 points by boas · 3 comments · 1 min read


I just discovered that MSVC++ can automatically run each iteration of a loop in parallel in separate threads. Add "#pragma loop(hint_parallel(8))" and "#pragma loop(ivdep)" before the loop, and compile with the /Qpar option. This simple change sped up my cryoablation simulation code by 4x.

2 threads
boasOP

A lot of the radiology software that I write involves iterating over a 3D grid. The auto-parallelizer lets you easily process each 2D slice on a different processor core. My laptop has 2 cores x 2 hyperthreads per core = 4 virtual cores, so 4x speedup.

dalke

You might also be interested in OpenMP, which does similar things for more compilers than MSVC++.

  • boasOP

    Thanks! I'll look into this. I also use g++ on Linux, so a cross-platform solution would be nice.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection