Thanks for the info, Dave.
I understand to go into Windows Task Manager, Details tab, and Set Affinity to accomplish this.? I am finding, that when Spot Collector is terminated and restarted, I have to do it all over again.? I don't see a method to "Save" the affinity that I have set.
I also notice that, when I set it, the box shows this as a RESTRICTION on which processors are allowed to run a particular program, and the default is to allow ALL processors to run all programs.
It's going to take a while to build up my spots database enough to see the effects, I'll look at it then.? My spots database currently has less than 200 entries.? I just cleared it trying to get better performance.? Oh well...? :-)
7 3
Earl / KD5XB
DM84 on six meters
e e
On Saturday, April 12th, 2025 at 12:52 AM, Dave AA6YQ <aa6yq@...> wrote:
toggle quoted message
Show quoted text
+ AA6YQ comments below
Oh my, I just realized the difference in cores and threads. I was thinking threads, as in giving giving three THREADS to Spot Collector. Is it instead three cores / six threads?
+ The terms threads and cores refer to different aspects of a CPU's functionality.
Threads
A thread is a sequence of instructions that a CPU executes. Threads are managed by the Windows and represent the smallest unit of processing. An application may be composed of a single thread, or it may accomplish its work with multiple threads running in parallel. SpotCollector, for example, employs multiple threads that collect spots from DX Clusters and insert them into its Spot Database in parallel while enabling you to filter and sort the Spot Database Display.
A CPU can be optimized to rapidly switch among multiple threads, for example by maintaining a separate register set for reach thread to avoid the need to save the current thread’s registers to memory and load the new thread’s registers from memory when switching between threads. At the extreme, a single CPU can appear to run multiple threads simultaneously – though it is actually switching among them.
Threads improve computational efficiency by allowing better utilization of a CPU’s resources; for example, a CPU can be executing threads A and B while thread C is waiting for data to be read from an SSD. However, two threads running on the same CPU do not yield a doubling of performance.
Cores
A core is a single CPU capable of executing one thread at a time, possibly with the ability to rapidly switch among multiple threads.
Modern microprocessors can include multiple cores, all with the ability to access primary memory (RAM) and secondary memory (solid state or rotating). To minimize memory contention, each core is provided with a cache memory (fast RAM) that maintains the subset of information from primary memory needed by the thread it is currently running. In general, bigger caches produce better performance.
Multiple cores exploit the parallelism both among and within the applications you are running. For example, each of SpotCollector’s threads can profitably run on separate cores, though there will be some contention over access to the Spot Database. There is less contention among separate applications – like DXKeeper and PropView – especially when they don’t read or write the same files.
Decisions
If you're contemplating the purchase of a new PC, then you can choose the number of cores you want based on an optimum assignment of applications to cores.
If you're trying to optimize the the performance of a PC you already possess, then the process is to assign its cores to applications in the most performance-profitable manner.
With respect to CPU and primary memory (RAM), SpotCollector is the most consumptive DXLab application. Start by assigning it 2 or 3 cores.
If you have configured SpotCollector to generate a propagation forecast for each active station, assigning a core to PropView and the VOACAP engine would likely be performance-profitable as well.
73,
Dave, AA6YQ (co-designer of 4 minicomputers and 1 microprocessor for Data General Corp back in the 1970s).