Certain functions in Surfer 15 and above are multi-threaded. These processes include workflows that can be very CPU intensive and time-consuming, such as gridding and generation of color relief maps. Multithreading was enabled for these workflows to speed up processing time.
The remaining Surfer processes - as well of all processes in Surfer versions 14 and earlier - are single threaded. This means the user interface, gridding, import/export, etc all share one thread and the redraw to regenerate the offscreen image of the window contents runs on a second thread. The redraw of the screen contents can proceed at the same time as other tasks (like user interface changes, gridding, etc). However, the redraw thread is not used very heavily since redraw usually happens fairly quickly.
It is up to Windows how those threads are mapped to processors (or cores in a multi-core CPU). In general though, a single threaded application can only use 100% of a single core processor, 50% of both cores in a dual processor, 25% of all 4 cores in a quad core processor, etc. On a dual core CPU (where a single threaded application always uses both cores at 50% each), to get both cores running at 100%, you could get a big process running on the main thread (say a large gridding process) and then trigger a massive redraw to get the second thread running.
Updated December 2021