Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Mejorar el rendimiento con la computación paralela

Factores que afectan la velocidad

Algunos factores pueden afectar a la velocidad de ejecución del procesamiento paralelo:

  • Sobrecarga paralela. Hay sobrecarga en la llamada en lugar de.parforfor Si las evaluaciones de funciones son rápidas, esta sobrecarga podría llegar a ser apreciable. En particular, resolver un problema en paralelo puede ser más lento que resolver el problema en serie.

  • No hay bucles anidados.parfor Esto se describe en. no funciona en paralelo cuando se llama desde dentro de otro bucle.Funciones paralelas anidadasparforparfor Si ha programado sus funciones objetivo o restricción para aprovechar el procesamiento en paralelo, la limitación de ningún bucle anidado puede hacer que un solucionador se ejecute más despacio de lo que espera.parfor En particular, el cálculo paralelo de las diferencias finitas tiene prioridad, ya que es un bucle externo. Esto hace que cualquier código paralelo dentro del objetivo o las funciones de restricción se ejecuten en serie.

  • Al ejecutar serialmente, los bucles se ejecutan más despacio que los bucles.parforfor Por lo tanto, para obtener el mejor rendimiento, asegúrese de que solo las llamadas de bucle paralelo más externas.parfor Por ejemplo, supongamos que el código llama dentro de un bucle.fminconparfor Para obtener el mejor rendimiento en este caso, establezca la opción en.fminconUseParallelfalse

  • Pasar parámetros. Los parámetros se transfieren automáticamente a los equipos de trabajo durante la ejecución de cálculos paralelos. Si hay un gran número de parámetros, o toman una gran cantidad de memoria, pasarlos puede ralentizar la ejecución de su cálculo.

  • Contención de recursos: red y computación. Si la red de máquinas de trabajo tiene un ancho de banda bajo o una latencia alta, el cómputo podría ralentizarse.

Factores que afectan a los resultados

Algunos factores pueden afectar a los resultados numéricos al utilizar el procesamiento en paralelo. Hay más advertencias relacionadas con la lista en.parforParallel for-Loops (parfor) (Parallel Computing Toolbox)

  • Variables persistentes o globales. Si las funciones de objetivo o restricción utilizan variables globales o persistentes, estas variables pueden tener valores diferentes en diferentes procesadores de trabajo. Además, es posible que no se limpien correctamente en los procesadores de trabajo. Solvers puede lanzar errores como las discrepancias de tamaño.

  • Acceso a archivos externos. Se puede acceder a los archivos externos de forma impredecible durante un cálculo paralelo. El orden de los cálculos no se garantiza durante el procesamiento paralelo, por lo que se puede acceder a los archivos externos en orden impredecible, lo que conduce a resultados impredecibles.

  • Acceso a archivos externos. Si dos o más procesadores intentan leer un archivo externo simultáneamente, el archivo puede bloquearse, lo que lleva a un error de lectura y detiene la ejecución de la optimización.

  • Si la función objetiva llama, los resultados pueden ser poco fiables con la estimación de degradado paralela.Simulink®

  • Las funciones no computacionales, como, y, pueden comportarse mal cuando se utilizan en funciones objetivas o de restricción.inputplotkeyboard Cuando se llama en un bucle, estas funciones se ejecutan en equipos de trabajo.parfor Esto puede hacer que un trabajador no responda, ya que está esperando la entrada.

  • no permite ni declaraciones.parforbreakreturn

Buscando global optima

Para buscar optima global, un enfoque es evaluar un solucionador desde una variedad de puntos iniciales. Si distribuye esas evaluaciones en varios procesadores utilizando la función, deshabilite la estimación de degradado paralela, ya que los bucles no se pueden anidar.parforparfor Su optimización generalmente se ejecuta más rápidamente si distribuye las evaluaciones sobre todos los procesadores, en lugar de ejecutarlas en serie con la estimación de degradado paralela, por lo que deshabilitar la estimación paralela probablemente no ralentizará su cálculo. Sin embargo, si tiene más procesadores que puntos iniciales, no está claro si es mejor distribuir los puntos iniciales o habilitar la estimación de degradado paralela.

Si tiene un Global Optimization Toolbox licencia, puede utilizar el solucionador para examinar varios puntos de inicio en paralelo.MultiStart Mira y.Parallel Computing (Global Optimization Toolbox)Parallel MultiStart (Global Optimization Toolbox)

Temas relacionados