Establecer afinidad del procesador para el motor MATLAB (Windows 7)

Estoy desarrollando una aplicación en c ++. Uno de los componentes de la aplicación usa Matlab (a través del motor Matlab) para el procesamiento de datos. Al mismo tiempo, un sistema de adquisición de datos está transmitiendo datos al disco. Ocasionalmente, durante los períodos de procesamiento intensivo de Matlab, el sistema de adquisición se bloquea. Al configurar la afinidad del procesador de Matlab a un subconjunto de procesadores disponibles, este problema se resuelve. Sin embargo, como la aplicación se inicia varias veces al día y en varias máquinas, establecer la afinidad manualmente cada vez es inconveniente. El truco de establecer la afinidad del procesador a través de la línea de comandos de un acceso directo no funciona, ya que el motor se inicia desde mi aplicación, no a través de un acceso directo. He estado buscando una manera de establecer programáticamente la afinidad, pero con un éxito limitado.

He considerado las siguientes opciones (clasificadas en orden de preferencia):

Especifique la afinidad del procesador por el motor matlab desde la aplicación, cuando se inicie el motor. Especifique una afinidad de procesador predeterminada para el motor matlab, por separado de la aplicación completa de Matlab. Como último recurso, establezca una afinidad predeterminada para Matlab (usos con y sin motor). Esto es lo menos deseable, ya que Matlab se usa para otros fines en las máquinas de implementación, y sería preferible no limitarlo para otros usos.

¿Es posible configurar la afinidad del procesador desde mi aplicación, y si es así, cómo? Si no, ¿cuál es la forma correcta de abordar este problema? Cualquier consejo sobre estas opciones u otras sugerencias / soluciones serán bienvenidas.

Respuestas a la pregunta(6)

Su respuesta a la pregunta