Certain functions in Surfer 15 and above are multi-threaded. These processes include gridding and generation of color relief maps; workflows that can be very CPU intensive and time-consuming. Multithreading was enabled for these workflows to speed up processing time.
The remaining Surfer 15 and above processes - as well of all of Surfer's processes in versions 14 and earlier - are single threaded. This means that all the user-interface commands, operations, etc. share one thread, and the redraw of a plot document runs on a second thread. This allows you to redraw the plot document on one core or processor, while performing other tasks in Surfer (like gridding a large data set) or performing tasks in other applications on another core or processor.
Surfer will send the processing requirements to Windows, and it is up to Windows how those threads are mapped to processors (or cores in a multi-core CPU). In general, a single threaded application can 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.
Surfer will only use both cores to 100% in a dual core processor if you start a big process on one core (like grid a large data set) and then trigger a massive redraw (like dragging a window over a very complicated plot document). However, usually the redraw happens relatively quickly and the redraw thread goes back to waiting (at which point you get back to 50% on both cores again).
Extra RAM is the best way to improve the performance of Surfer with large files. Under 32-bit versions of Windows, the Operating System limits the amount of RAM for any given process to 2 GB, with a limit on total RAM to 4 GB. For more RAM utilization, use a 64-bit Operating System and the 64-bit version of Surfer.
Updated September 3, 2020