On 21/08/2019 08:26, Claude Frantz wrote:
Hi all,
Starting with the disclosure of some vulnerabilities related to the
operation of the CPU itself, some effort has been make changing the
microcode, the BIOS, the operation of the OS. Some of these
vulnerabilities are named spectre_v2, spec_store_bypass, mds, l1tf,
spectre_v1, meltdown.
All these additions have reduced the performance of the computer
systems, but this amount remain still obscure. Nearly in the same
time, WSJT-X has evolute and many routines have been changed notably.
Further, Qt5 has evolued too.
In the past, I was able to run WSJT-X in MSK144 mode with "Decode
Menu" set to "Deep". After all the above mentioned evolutions, I can
only run with "Decode Menu" set to "Fast" on exactly the same computer
now. But all updates have always be included. Now, I have only limited
performances in MSK144 on the save computer.
Now, I want to known which components have the most amount of
responsibility in the degraded situation. I want to determine which
modifications would restore better performances and of which amount.
I consider that we have to accept the degradation resulting from the
changed BIOS and microcode, and from the change in the kernel code.
But the comparison of CPU's becomes more difficult.
But what increase of performance would result in changing from the 32
bit to the 64 mode ? Would the increase of RAM space produce a better
performance ? Would the increase of the number of CPU's (of the same
speed) give me better performance ? Would the increase of speed of the
same number of CPU's give me better performance ? Is it better to
avoid the hyper-threading mode ?
Many questions, but what is your opinion ?
Best wishes,
Claude (DJ0OT)
Hi Claude,
the first thing you must do is to check you are comparing like with
like. The FTol parameter has a major bearing on the consumption of CPU
resource in MSK144 reception mode, unless you are comparing performance
between versions using the same value for FTol you are not doing a valid
test.
With respect to the performance advantage of using a 64-bit instruction
set, the considerably larger number of general purpose CPU registers
allows compilers to emit more efficient code where values in registers
are not having to be copied to RAM and back to free registers for other
computations (register spills), this can have a significant advantage in
CPU bound algorithms like the MSK144 decoder. I believe there is also
some advantage in that the emulation of 32-bit instructions on a 64-bit
processor is not cost free compared with running the same code on a
32-bit processor. The extra address space when using a 64-bit processor
is not particularly beneficial to WSJT-X, although on a machine running
many processes, hard memory page faults are less likely if all processes
can have more of their memory pages in physical memory. Extra unused
physical memory addressable in a 64-bit processor system should be used
by the operating system for file cacheing and that in turn will speed up
disk I/O bound processes, possibly freeing up CPU resource to other CPU
bound processes.
With respect to Qt5, there are not really any routines in WSJT-X that
are CPU bound while using Qt code. The parts running Qt code are
virtually all I/O bound mostly waiting for user input or updating the
display in response to I/O based events.
On the recently revealed, and mostly mitigated, vulnerabilities you
mention; they are in the domain of the operating system kernel rather
than the BIOS or firmware until the real fix via newer processor
generations are adopted (9th generation "Coffee Lake" in the case of
Intel Core CPUs). The kernel mitigations involve some level of
pessimization with the slow down being greatest on the oldest processor
models, expected performance impacts of mitigations are between 30% down
to as low as 2% on newer CPUs like the 8th generation "Coffee Lake"
Intel Core CPUs.
73
Bill
G4WJS.
_______________________________________________
wsjt-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wsjt-devel