设置池分配

设置实时操作系统(RTOS)中每个CPU的池分配以进行自动负载平衡。

1378

输入/输出

datatype_icon

CPU池

要指派给系统中每个CPU的池。

数组中的每个元素代表一个CPU。数组索引0-N对应于CPU索引0-N

System and Timed Structures 将CPU同时指派给系统池和定时结构池,以实现未手动指派给特定CPU的所有线程的自动负载平衡。
System 将CPU指派给系统池,以实现非定时循环线程的自动负载平衡。
Timed Structures 将CPU指派给定时结构池,以实现定时循环线程的自动负载平衡。
Reserved 未给CPU指派池。CPU将预留给配置为手动处理器指派的定时循环。
datatype_icon

错误输入

该节点运行前发生的错误。

该节点根据标准错误处理方式处理该输入。

Standard Error Behavior

Default value: 无错误

datatype_icon

已指派CPU池

每个CPU的池分配。

System and Timed Structures 将CPU同时指派给系统池和定时结构池,以自动负载平衡未手动指派给特定CPU的线程。
System 将CPU指派给系统池,以实现非定时循环线程的自动负载平衡。
Timed Structures 将CPU指派给定时结构池,以实现定时循环线程的自动负载平衡。
Reserved 尚未给池指派CPU。CPU将预留给配置为手动处理器指派的定时循环。
datatype_icon

系统掩码

对应于系统池分配的位掩码。

datatype_icon

定时结构掩码

对应于定时结构池分配的位掩码。

datatype_icon

错误输出

错误信息。

该节点根据标准错误处理方式生成该输出。

Standard Error Behavior

最大化确定性定时循环的性能

通过将定时循环分配给Reserved的高索引CPU来最大化确定性定时循环中的性能。例如,如果实时操作系统(RTOS)包含索引为0-3的四个CPU内核,请考虑将CPU 3的状态设置为Reserved并将确定性定时循环分配给CPU 3。

将高性能和确定性定时循环分配给高索引CPU可最小化延迟,因为RTOS从最高索引CPU开始,并在调度定时循环时递减。如果同等优先级的多个定时循环同时被唤醒,在低索引CPU上执行的定时循环的唤醒延迟比高索引CPU上定时循环的延迟多若干毫秒。在非定时循环线程中,情况相反。因为这些线程从CPU 0开始依次向高索引CPU执行。NI建议将较低索引的CPU分配给系统池,将较高索引的CPU分配给确定性定时循环,从而最小化延迟。

将CPU设置为Reserved状态可确保CPU预留为仅运行通过手动分配指定的定时循环。如果只将一个定时循环分配给预留的CPU,可独占CPU的处理能力并实现高频率或吞吐率。

CPU使用率最大化

为了最大化处理器利用率,可以根据专用于定时循环与系统线程的总处理时间比例的估计,调整分配给每个池的CPU数量。可以使用RT获取CPU负载节点估计处理负载分配。

最大化CPU利用率的另一种方法是避免部分池重叠。如用户定义的系统池和定时结构池部分重叠,自动负载平衡过程可能无法做出最佳处理器利用的决策。

避免线程空闲

要避免系统线程空闲,可考虑为系统线程预留至少一个CPU。例如,如分配CPU 0至系统池,但不分配至定时结构池,则不要将任何定时循环分配至CPU 0。系统线程始终可使用CPU 0。