Will multiple-processor PCs and/or the Intel Hyperthreading Technology affect the operability of Condor Engineering's products?

The implementation of HyperThreading, (also known as simultaneous multithreading or SMT), within the Intel processor family allows more than one process or thread to execute at the same time. Multiple-processor PCs also allow more than one process or thread to execute simultaneously. For certain types of applications, both of these implementations can improve performance by reducing context switching between processes because more than one process is active at the same time.

Condor Application Programmer Interface Products

The benefit of HyperThreading or multi-processor PCs is extremely limited for processes or threads that share a single hardware resource, (such as an ARINC or MIL-STD-1553 device). Thread-sharing of a single hardware resource implies only one thread (or process) can execute at any given point in time. If multiple threads access a single hardware resource simultaneously, conflicts between the hardware interface definition for the differing threads can result in catastrophic device operations. For this reason, enabling HyperThreading in customer-built Condor API versions or customer-extensions of the Condor API’s is not recommended. It is also not recommended to host Condor product-based applications on multi-processor PCs.

If an application based on any Condor Engineering product is required to execute on any system supporting some type of multithreading, all application thread accesses to the respective product API should be synchronized using some form of resource lock such as a semaphore or mutex. In addition, HyperThreading can usually be disabled from the PC BIOS.

While some of the Condor ARINC products support resource synchronization, it is advisable that you contact Condor support if you have any requirements for application support of SMT or multi-processor systems.

Condor Applications

Operation of some Condor Engineering products can be affected by either multi-processor PCs or the Hyperthreading Technology. These products include CEI-LV and the CSDB API. Both of these products use the Windows Multimedia Timer feature to implement software scheduled message transmission and periodic data logging. When multiple threads are processed simultaneously, the potential for corruption of the hardware operations is introduced into the application. Thus, a host consisting of multi-processor PCs should be avoided, and Hyperthreading should be disabled, when required.